28/09/2025

SSH3 – Un accès SSH plus rapide & sécurisé avec HTTP/3

Par admin

SSH3 - Un accès SSH plus rapide & sécurisé avec HTTP/3

Et si je vous disais qu’il existe un futur où vous allez pouvoir vous connecter en SSH à votre serveur de production avec votre compte Google et que celui-ci serait totalement invisible aux yeux du monde ?

Et bien ça arrive bientôt et ça s’appelle SSH3 !

Alors déjà, pas de panique, je vais pas vous sortir le speech classique du “Oh regardez, un nouveau protocole qui va révolutionner le monde”. Non non, l’histoire est beaucoup plus tordue que ça car SSH3, c’est un symptôme d’un phénomène beaucoup plus gros qui est en train de se passer sous notre nez et qui est la “webisation” d’Internet (oui, je viens d’inventer ce mot).

Car pendant que tout le monde s’excitait tous sur ChatGPT et les IA génératives, des chercheurs belges de l’UCLouvain étaient tranquillement en train de planifier la disparition des serveurs SSH de la surface d’Internet. Et je dis bien “disparaître” dans le sens où votre serveur
devient invisible aux scans de ports
, car votre serveur SSH peut maintenant se planquer derrière ce qui ressemble à un banal site web.

Pour réussir ce tour de magie, SSH3 utilise HTTP/3 et QUIC au lieu du bon vieux protocole SSH traditionnel. Et là vous me dites “Mais Korben, c’est quoi le rapport avec l’invisibilité ?” Bah c’est simple, comme SSH3 tourne sur les mêmes ports que n’importe quel site HTTPS, impossible de distinguer un serveur SSH3 d’un serveur web lambda. Vous pourriez même planquer votre serveur SSH derrière une URL secrète… Tentez ensuite un scan de ports, et vous ne verrez rien de plus qu’un stupide serveur web…

Ce que j’appelle “webisation”, c’est en fait l’absorption totale de l’infrastructure système par les technologies du web. Et même SSH, le protocole le plus fondamental de l’administration système présent depuis 1995, va devoir capituler face à HTTP/3.

C’est la victoire finale du navigateur sur le terminal, et personne n’en cause vraiment… Avec SSH3, vous allez donc pouvoir utiliser vos certificats Let’s Encrypt pour authentifier votre serveur et
le GitHub du projet
explique que c’est plus sécurisé que les clés d’hôtes SSH classiques car votre terminal vérifiera le certificat comme le fait votre navigateur.

Mais attendez, le délire va encore plus loin puisque OAuth 2.0 et OpenID Connect sont également supportés nativement. Vous allez donc pouvoir vous connecter à votre serveur de prod avec votre compte Google, Microsoft ou GitHub.
Et si j’en crois le draft IETF
, c’est parfaitement légitime et sécurisé grâce à l’authentification HTTP standard.

Alors évidemment, l’idée de se logger sur un serveur critique avec son compte Gmail, ça peut faire peur mais on fait déjà confiance à ces mêmes providers pour notre authentification partout ailleurs, donc un de plus ou un de moins… Puis j’imagine que vous pourrez aussi mettre en place votre propre provider, ce qui vous permettra d’éviter les GAFAM tout en ayant une gestion plus simple des accès à vos machines.

Au niveau perfs, SSH3 établit une connexion en seulement 3 round-trips contre 5 à 7 pour SSH classique. Sur une connexion avec 100ms de latence, ça fait une différence énorme. Et en bonus SSH3 supporte le port forwarding UDP en plus du TCP. Cela veut dire que vous pouvez enfin “tunneler” du QUIC, du DNS ou du RTP correctement… Ce projet a explosé en décembre 2023 quand François Michel et Olivier Bonaventure ont publié leur papier mais attention, c’est encore expérimental. Les développeurs le répètent partout : Ne mettez pas ça en prod tout de suite !

Alors est-ce qu’on doit s’inquiéter de cette uniformisation des protocoles ?

Peut-être car si tout le monde utilise les mêmes briques de base, une faille dans QUIC ou HTTP/3 pourrait affecter absolument TOUT. Mais d’un autre côté, concentrer les efforts de sécurité sur moins de protocoles, c’est aussi moins de surface d’attaque à surveiller.

Maintenant pour tester SSH3, c’est simple si vous avez Go installé :

go install github.com/francoismichel/ssh3/cmd/...@latest

Ensuite côté serveur, générez votre certificat avec

`ssh3-server -generate-selfsigned-cert localhost`

Et lancez le serveur. Ensuite, côté client, connectez-vous avec

`ssh3 user@server`

SSH3 est aussi rétrocompatible avec pas mal de features OpenSSH… Par exemple le proxy jump fonctionne, les fichiers de config ~/.ssh/config sont parsés, les clés RSA et ed25519 sont supportées. Les dev ont vraiment pensé à faciliter la transition et ça c’est cool !

Après comme je sais que vous n’aimez pas le changement parce que ça réveille en vous de vieux traumatises d’enfance, rassurez-vous, SSH3 n’est pas encore prêt pour remplacer OpenSSH demain matin. Le code n’a pas été audité niveau sécu, les perfs en throughput TCP sont moins bonnes qu’OpenSSH, et il manque encore des fonctionnalités. Mais le concept est là, et il semble très solide !

Ce qui est sûr, c’est que SSH3 ouvre des perspectives assez folles comme cette possibilité d’avoir des serveurs complètement invisibles, accessibles uniquement via des URLs secrètes, avec de l’auth SSO d’entreprise et des certificats standards. C’est un sacré changement de paradigme dans la façon dont on accède à nos machines… Car oui, pourquoi continuer à maintenir des protocoles séparés quand on peut réutiliser les briques modernes du web ? QUIC apporte la fiabilité, TLS 1.3 la sécurité, HTTP/3 la flexibilité.

Alors pourquoi réinventer ou maintenir une vieille roue ?

Bref, c’est un projet à suivre. Tout se passe sur
le GitHub de François Michel
et les contributions sont les bienvenues, surtout si vous avez des compétences en crypto ou en sécurité réseau.

Source

Source : korben.info