- SSH3 est un protocole de shell sécurisé de nouvelle génération fonctionnant au-dessus de HTTP/3, et améliore fortement la vitesse d’établissement de session par rapport au SSHv2 traditionnel
- Il établit un canal sécurisé via QUIC et TLS 1.3, et prend en charge des mécanismes d’authentification modernes comme OAuth 2.0 et OpenID Connect
- Le serveur peut être dissimulé derrière un chemin secret, ce qui le rend plus résistant à des attaques comme le scan de ports, tout en offrant de nouvelles fonctionnalités comme le port forwarding UDP et le multipath QUIC
- Il a déjà adopté plusieurs fonctions clés d’OpenSSH, mais le projet est encore au stade expérimental et son déploiement en environnement de production n’est pas recommandé
- Beaucoup estiment que le nom SSH3 n’est pas approprié ; le brouillon de standardisation a donc été renommé en « Remote Terminals over HTTP/3 », et un changement de nom est en cours
Présentation du projet SSH3 et son importance
- SSH3 est une solution open source qui redessine le protocole SSH existant pour l’adapter à HTTP/3 et aux technologies web modernes
- Il réinterprète la sémantique du protocole de connexion SSH existant (RFC4254) au-dessus de HTTP/3 Extended CONNECT et d’un canal QUIC + TLS 1.3
- Il a été proposé sous la forme du brouillon Internet IETF draft-michel-remote-terminal-http3, avec à la clé une forte réduction de la latence d’établissement de session et divers avantages, comme l’extension vers des méthodes d’authentification modernes
- Par rapport aux autres implémentations SSH, il se distingue par des idées innovantes comme l’usage de QUIC et la configuration de serveurs dissimulés
Fonctions et caractéristiques principales
- Établissement de session rapide
- Alors qu’une connexion SSHv2 classique nécessite en moyenne 5 à 7 allers-retours réseau, SSH3 n’en demande que 3, ce qui réduit fortement la latence perçue par l’utilisateur
- La latence de saisie au clavier reste au niveau habituel
- Sécurité renforcée
- Basé sur TLS1.3, QUIC et l’authentification HTTP, il s’appuie sur des protocoles de sécurité éprouvés déjà utilisés dans le e-commerce et la banque en ligne
- Il prend en charge les méthodes à clé publique basées sur RSA et EdDSA/ed25519, ainsi que diverses méthodes d’authentification comme OAuth 2.0 et OpenID Connect
- Il est également possible de se connecter avec un compte Google, Microsoft ou Github
- Fonction de dissimulation du serveur
- Le serveur peut être placé derrière une URL secrète spécifique (par ex.
https://192.0.2.0:443/M3MzkxYWMx...) et ne répond que lorsqu’une requête d’authentification est envoyée vers cette URL
- Pour toutes les autres requêtes, il renvoie 404 Not Found, ce qui empêche les attaquants et crawlers sur Internet de détecter l’existence du serveur
- Toutefois, ce chemin secret ne remplace pas l’authentification ; il est donc vivement recommandé d’utiliser un mécanisme d’authentification distinct (clé publique, mot de passe, OIDC, etc.)
- Projet expérimental en développement continu
- Une validation structurelle rigoureuse de la sécurité reste nécessaire, et son adoption sur des serveurs de production n’est pas recommandée
- Le projet recueille actuellement les retours de la communauté dans des environnements expérimentaux ou des réseaux fermés
- Compatibilité OpenSSH et fonctions supplémentaires
- Analyse de ~/.ssh/authorized_keys et known_hosts, intégration avec ssh-agent, port forwarding TCP/UDP, prise en charge de Proxy Jump
- La prise en charge du forwarding UDP permet l’accès à des serveurs basés sur UDP, comme les services DNS, RTP et QUIC, via un chemin QUIC datagram
- Fonction d’authentification serveur de niveau HTTPS via des certificats X.509
- Authentification sans clé (Keyless) : via OpenID Connect, il est possible de se connecter sans copier de clé publique, uniquement avec un SSO d’entreprise ou un compte externe comme Google ou Github
Conclusion
- SSH3 est un projet open source expérimental qui fait évoluer l’environnement SSH en y introduisant des protocoles réseau modernes et des mécanismes d’authentification modernes
- Il renforce fortement la vitesse, la flexibilité et la sécurité, mais il faut rester prudent avant tout usage en production tant qu’il n’a pas été suffisamment validé
- Il offre une expérience utilisateur proche d’OpenSSH, tout en ajoutant de nombreuses nouvelles fonctionnalités.
- Avec une évaluation de sécurité sérieuse et la participation de la communauté, il pourrait s’imposer comme le SSH de nouvelle génération
1 commentaires
Avis Hacker News
ssh3, donc j’ai apprécié de voir tout en haut du dépôt : « SSH3 va être renommé. Pour l’instant, il s’agit encore du SSH Connection Protocol (RFC4254) fonctionnant au-dessus de HTTP/3 Extended CONNECT, mais il y a trop de changements nécessaires et c’est trop différent de SSH existant pour pouvoir être intégré facilement. Le brouillon de spécification a déjà été renommé en “Remote Terminals over HTTP/3”, et nous avons besoin de temps pour trouver un meilleur nom pérenne. »SSH/3(dans l’esprit SSH + HTTP/3).SSH2/3pourrait aller aussi, puisque c’est surtout SSH2 au-dessus de HTTP/3.scpdepuis différents endroits du monde, j’attends un vrai gain de vitesse.ssh3, le head-of-line blocking a probablement disparu ; si on multiplexe plusieurs ports ou connexions sur une même connexion physique, ce sera plus rapide.Set-Locationest préférable àcd, et un nom commeremote-terminals-over-http3est meilleur quessh3.