Den første officielle udgave af den eksperimentelle implementering af server og klient til SSH3-protokollen er tilgængelig. Den er designet som en overbygning over HTTP/3-protokollen, der bruger QUIC (baseret på UDP) og TLS 1.3 til etablering af en sikker kommunikationskanal samt HTTP-mekanismer til brugerautentifikation. Projektet udvikles af François Michel, ph.d.-studerende ved Katolsk Universitet Leuven (Belgien), i samarbejde med Olivier Bonaventure, professor ved samme universitet, som er kendt for udviklingen af Multipath TCP-undersystemet og koden til segment-routing af IPv6 for Linux-kernen, samt medforfatter af 10 RFC'er og udkast til mere end 60 netværksspecifikationer. Koden til den referenceimplementation af klienten og serveren er skrevet i Go og distribueres under Apache 2.0-licensen.
Udviklingen af SSH3 blev resultatet af en total revision af SSH-protokollen, udført af en separat gruppe forskere uafhængigt af OpenSSH og andre projekter, der udvikler implementationer af den klassiske SSH-protokol. I SSH3 er semantikken af den klassiske SSH-protokol realiseret gennem HTTP-mekanismer, hvilket muliggør nogle ekstra funktioner og sikrer, at SSH-relateret aktivitet skjules blandt anden trafik.
Når SSH3 bruges, er serveren ikke til at skelne fra en HTTP-server og accepterer anmodninger på port 443 (HTTPS). SSH3-trafikken flyder sammen med typisk HTTP-trafik, hvilket gør det sværere at udføre angreb, der har at gøre med portscanning og opdagelse af SSH-servere til password cracking. For at komplicere angreb på servere SSH3 kan derudover specificeres en hemmelig sti-identifikator for SSH3-serveren, udover at kende oplysningerne om serverens eksistens på en given IP-adresse. Uden korrekt identifikator vil serveren behandle anmodninger som en almindelig HTTPS-server og ikke afsløre muligheden for at oprette forbindelse via SSH3. For eksempel, med identifikatoren "e6ae772cbdaafd6918865cc2ce449dae" kan man alene tilslutte sig serveren via URL "https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae", mens der gives en standard fejl "404", hvis identifikatoren er angivet forkert.
Fra den udvidede funktionalitet af SSH3 nævnes muligheden for at bruge X.509-certifikater og OAuth 2.0/OpenID Connect-metoder til autentificering, udover de klassiske SSH-metoder; støtte til UDP-portviderekobling gennem SSH-tunnel ud over muligheden for TCP-portviderekobling (f.eks. til QUIC, DNS og RTP); anvendelse af de udvidede funktioner i QUIC-protokollen, såsom forbindelsesmigration uden afbrydelse og opsætning af multipath-forbindelser til paralleldistribution af trafik på flere ruter.
Der er en væsentlig reduktion i forbindelsestid ved brug af SSH3. Ved tilslutning til en SSH3-server kræves der kun 3 netværksiterationer (Round Trip), mens der for SSHv2 kræves 5-7 iterationer af pakkeudveksling. Reaktionstiden ved tastaturinput for allerede etablerede sessioner i SSH3 og SSHv2 ligger på samme niveau.

Til kryptering af kommunikationskanalen i SSH3 anvendes TLS 1.3-protokollen, mens klassiske metoder baseret på adgangskoder og offentlige nøgler (RSA og EdDSA/ed25519) kan anvendes til autentificering. Derudover kan metoder baseret på OAuth 2.0-protokollen anvendes i SSH3 til at outsource autentificeringen til tredjepartsudbydere, f.eks. til at sikre login med bekræftelse gennem Google-, Microsoft- og GitHub-konti. Til forbindelse til servere baseret på nøgler kan X.509-certifikater også anvendes udover SSH-nøgler, som bruges til HTTPS.
Den publicerede implementering af SSH3-klient og server understøtter mange af de grundlæggende funktioner i OpenSSH, herunder:
- Støtte til filen ~/ .ssh/authorized_keys med nøgleindstillinger for serveren.
- Mulighed for at bruge konfigurationsfilen ~/ .ssh/config på klientsiden. I øjeblikket understøttes parametrene Hostname, User, Port og IdentityFile, mens de øvrige ignoreres.
- Støtte til autentificering af forbindelser til servere baseret på certifikater.
- Støtte til known_hosts-mekanismen (i situationer hvor X.509-certifikater ikke anvendes).
- Støtte til klientens brug med OpenSSH Agent (ssh-agent) og automatisk brug af agenten til autentificering med offentlige nøgler.
- Støtte til viderekoblingsfunktionen gennem SSH-agenten for at bruge lokale nøgler på en ekstern server.
- Direkte viderekobling af TCP-porte.
Kilde: opennet.ru
