# RDP-FIDO-GATE — installation et configuration (étape par étape)

Bureau à distance (RDP) sécurisé avec une **barrière obligatoire par clé matérielle FIDO2/WebAuthn**. Le port RDP
reste bloqué par le pare-feu en permanence et ne s'ouvre **que pour votre IP, pendant environ 90 secondes**, après que vous avez touché
la clé. Nécessite Windows 10 1903+ (WebAuthn + Windows Firewall). Il n'y a pas de service hébergé — vous le
téléchargez et l'installez vous-même.

Deux composants et leurs ports :

| Composant | Où il s'exécute | Ports |
|-----------|---------------|-------|
| **Gate** | machine cible (le PC auquel vous vous connectez) | **7440/TCP** — contrôle + confirmation FIDO ; **3389/TCP** — RDP (ouvert à la demande) |
| **Client** | votre machine | connexions sortantes vers les ports 7440 et 3389 de l'hôte |
| **FIDO Stream** (optionnel) | hôte | **7441/UDP** — vidéo, audio et entrées du mode à faible latence ; ouvert par session, uniquement pour votre IP |

---

## Step 1. Host — installer le gate

1. Téléchargez **[RdpFido-Setup.exe](https://accounts.new-imobile.com/updates/RdpFido-Setup.exe)** sur la machine cible, exécutez-le et choisissez **Host** (Windows demandera une confirmation d'administrateur). Il installe le gate ; vous pouvez aussi télécharger directement **[RdpFidoGate-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoGate-Setup.msi)**.
2. L'installateur active le Remote Desktop (avec NLA), lie un certificat TLS au port du gate **7440**, puis enregistre et démarre le service du gate. Le port RDP continue de fonctionner comme avant — il ne se ferme qu'au moment de l'enregistrement de la première clé.
3. La dernière page de l'installateur affiche un **code d'enregistrement à usage unique** (valable 15 minutes, avec un bouton « Copier le code »), ainsi que les adresses de la machine et le port du gate.
4. **Notez :** l'adresse de l'hôte (nom / IP publique), le port **7440** et le **code**. Si le code a expiré, exécutez `RdpFidoGate.exe code` en tant qu'administrateur.

Installation silencieuse (p. ex. via un outil de gestion) : `msiexec /i RdpFidoGate-Setup.msi /qn`

Sans assistance avec l'installateur combiné : `RdpFido-Setup.exe host`

---

## Step 2. Redirection de ports du routeur (si l'hôte est derrière NAT/un routeur) — REQUIS pour l'accès depuis internet

Si vous vous connectez **depuis internet** et que la machine cible se trouve derrière un routeur domestique/de bureau, vous
devez **rediriger deux ports** sur le routeur vers l'adresse LAN de l'hôte. Sans cela, le client n'atteint
ni le gate ni le RDP.

Redirigez (Port Forwarding / Virtual Servers / NAT dans l'administration du routeur) :

| Port externe | Protocole | → IP interne (LAN de l'hôte) | Port interne |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x` (IP LAN de l'hôte) | **7440** |
| **3389** | TCP | même IP LAN de l'hôte | **3389** |
| **7441** | UDP | même IP LAN de l'hôte | **7441** — uniquement si vous utilisez FIDO Stream depuis internet |

Procédure :
1. Trouvez l'IP LAN de l'hôte : `ipconfig` → « Adresse IPv4 » (par ex. `192.168.1.50`).
2. **Réservez cette adresse** pour l'hôte (réservation DHCP par MAC dans le routeur) — sinon elle peut changer.
3. Dans le routeur : **Port Forwarding / Virtual Servers** → ajoutez les deux règles du tableau
   (port externe = port interne, protocole TCP, IP interne = LAN de l'hôte).
4. Trouvez votre **IP publique** (sur l'hôte, ouvrez `https://api.ipify.org`, ou la « WAN IP » du routeur). Si votre
   IP est **dynamique**, configurez le **DDNS** (dans le routeur ou via no-ip/DuckDNS) et utilisez le nom DDNS au lieu de l'IP.

> Sécurité : seul le gate (7440) écoute vers l'extérieur. Le RDP (3389) est **fermé** depuis l'extérieur jusqu'à ce que vous
> confirmiez avec la clé — il s'ouvre alors de façon étroite, pour votre IP uniquement, pendant ~90 s. Rediriger le 3389 n'accorde
> pas l'accès en soi ; cela laisse seulement la « fenêtre » temporaire passer à travers le routeur.

---

## Step 3. Client — installer et enregistrer

1. Installez le client : exécutez **[RdpFido-Setup.exe](https://accounts.new-imobile.com/updates/RdpFido-Setup.exe)** et choisissez **Client** (par utilisateur, sans droits d'administrateur), ou directement **[RdpFidoClient-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoClient-Setup.msi)**.
2. **Activation** via AccountServer : saisissez votre e-mail → un code vous est envoyé par courriel → saisissez-le.
   Délai de grâce d'activation de 14 jours ; palier gratuit = jusqu'à 10 sessions enregistrées, payant = sans limite.
3. **Ajouter une session :**
   - Adresse : l'IP publique ou le nom DDNS de l'hôte (du Step 2), ou l'adresse LAN si vous êtes sur le même réseau.
   - Port du gate : **7440**.
   - Protocole : **RDP (mstsc)** ou **FIDO Stream** — voir le Step 5.
   - Saisissez le **code à usage unique** du Step 1 et **enregistrez votre clé FIDO2** (touchez).

---

## Step 4. Se connecter

Choisissez la session → **touchez la clé** → le gate la vérifie et **ouvre le 3389 pour votre IP actuelle pendant
~90 s** → le client lance `mstsc` et vous connecte automatiquement. Toutes les 30 s, le gate réaffirme le
blocage, de sorte que la fenêtre reste étroite et limitée à l'IP.

---

## Step 5 (optionnel). FIDO Stream — mode à faible latence pour les jeux et la vidéo

FIDO Stream est un second mode de connexion à côté du RDP : l'écran et l'audio de l'hôte ainsi que vos entrées passent par UDP avec encodage matériel, de sorte que la latence « clic-photon » sur un LAN est d'environ 25–45 ms. Le même toucher de la clé l'ouvre ; le gate ouvre l'UDP 7441 uniquement pour votre IP et uniquement pour la session. Rien de plus n'est installé : l'agent hôte est dans le gate, la visionneuse dans le client (gate en version 1.15 ou plus récente sur l'hôte).

1. Dans les paramètres de la session, choisissez **Protocole : FIDO Stream (jeux, faible latence)**.
2. Laissez les paramètres sur **Automatique** pour le premier essai. Leur signification :
   - **Équilibre** — un curseur allant de **Lien médiocre** (résolution plus basse, HEVC, plus de correction d'erreurs) à **PC faibles** (encodeur matériel uniquement, préréglage le plus rapide, résolution native) ; **Ajuster l'équilibre automatiquement** le déplace vers le goulot d'étranglement actuel.
   - **Son de l'hôte** et **Envoyer mon microphone à l'hôte** — le son dans les deux sens.
   - **Capturer la souris au démarrage (jeux)** — mouvement relatif de la souris pour les jeux de tir.
   - **Connexion** — **Automatique (traverser le NAT)**, **Cet ordinateur appelle l'hôte** (nécessite la redirection du 7441/UDP vers l'hôte) ou **L'hôte appelle cet ordinateur** (lorsque votre PC a une adresse publique).
   - **Encodeur (hôte)** — Automatique / NVIDIA NVENC (direct) / Matériel (tout GPU) / Logiciel (CPU) ; **Décodeur** — Automatique / Matériel (GPU) / Logiciel (CPU).
3. Connectez-vous comme d'habitude : choisissez la session → touchez la clé → la fenêtre du flux s'ouvre.

Raccourcis dans la fenêtre du flux : **Ctrl+Alt+Home** capture/libère la souris, **Ctrl+Alt+Enter** bascule le plein écran, **Ctrl+Alt+End** déconnecte.

Prérequis : Windows 10 1903+ des deux côtés ; pour la latence la plus faible, un GPU avec encodeur matériel sur l'hôte (NVIDIA, Intel ou AMD). Le HEVC n'est utilisé que si le client dispose d'un décodeur GPU ; sinon le flux revient automatiquement au H.264. Diagnostic sur l'hôte (en tant qu'administrateur) : `RdpFidoGate.exe stream encoders` liste les encodeurs disponibles, `RdpFidoGate.exe stream encoders --bench` mesure chacun d'eux, `RdpFidoGate.exe stream selftest` exécute capture → encodage → décodage sans réseau. Les détails sont écrits dans `gate.log` sur l'hôte et `client.log` sur le client.

---

## Vérification et dépannage

- Depuis le client : `Test-NetConnection <public-ip-or-DDNS> -Port 7440` → devrait donner
  `TcpTestSucceeded : True`. Si `False` — le port 7440 n'est pas redirigé, ou le pare-feu de l'hôte le bloque.
- Le port **3389 est fermé depuis l'extérieur jusqu'à ce que vous confirmiez avec la clé** — c'est attendu (ne le testez pas avant le toucher).
- « La session ne s'ouvre pas » : vérifiez que 1) le service du gate est en cours d'exécution sur l'hôte, 2) **les deux** ports
  sont redirigés sur le routeur vers l'IP LAN actuelle de l'hôte, 3) l'IP publique n'a pas changé (utilisez le DDNS si elle est dynamique).
- Plusieurs hôtes derrière un même routeur : utilisez des ports externes distincts (par ex. host-2 → externe 7441→7440,
  3390→3389) et saisissez ces ports externes dans la session du client.
- FIDO Stream ne démarre pas : le gate sur l'hôte doit être en version 1.15 ou plus récente (le client l'indique), et pour l'accès depuis internet, soit le 7441/UDP est redirigé vers l'hôte, soit la session utilise **L'hôte appelle cet ordinateur**.

---

## Désinstallation

Sur l'hôte, en tant qu'administrateur : `powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
(supprime le service, restaure les règles du pare-feu). Ensuite, supprimez éventuellement les règles de redirection de ports sur le routeur.
