Esimese ametliku väljaande katseversioon SSH3 protokolli serverist ja kliendist, mis on vormistatud HTTP/3 protokolli pealisehitusena, kasutades QUIC (UDP-põhisel) ja TLS 1.3, et luua kaitstud sidekanal ja HTTP mehhanisme kasutaja autentimiseks. Projekti arendab François Michel, Leuveni katoliikliku ülikooli doktorant (Belgia), koostöös Olivier Bonaventure'iga, sama ülikooli professoriga, kes on tuntud Multipath TCP alamsüsteemi ja IPv6 segmentide suunamise koodi arendamisega Linuxi tuumas, samuti 10 RFC kaasautori ja enam kui 60 võrgustiku spetsifikatsiooni eelnõu kaasautorina. Kliendi ja serveri viidatud teostuse kood on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi alusel.
SSH3 arendamine on olnud igaühe põhjaliku ülevaatuse tulemuseks SSH protokollist, mida on viinud läbi eraldi teadlaste grupp iseseisvalt OpenSSH ja teiste klassikalise SSH protokolli teostuste projektidest. SSH3 semantika klassikalisest SSH protokollist on rakendatud HTTP mehhanismide kaudu, mis on võimaldanud rakendada täiendavaid funktsioone ja peita SSH-tegevust teiste andmevoogude seas.
SSH3 kasutamisel ei eristu server HTTP-serverist ja aktsepteerib päringuid 443. võrgupordil (HTTPS), samas kui SSH3 liiklus seguneb tavalise HTTP-liiklusega, mis toob kaasa rünnakute, sealhulgas sadama skaneerimise ja SSH-serverite avastamisega seotud rünnakute keerukuse. Rünnakute keerukuse suurendamiseks serverid SSH3, peale teadmise serveri olemasolust antud IP-aadressil, võib kasutada ka salajast SSH3-serveri identifikaatoriteed. Kui õige identifikaator ei ole esitatud, käsitleb server vastuseid nagu tavaline HTTPS-server ja ei paljasta SSH3 ühendamise võimalust. Näiteks, identifikaatori „e6ae772cbdaafd6918865cc2ce449dae“ määramisel saab serveriga ühenduda ainult URL kaudu „https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae“, ja kui identifikaator on vale, annab server tavalise „404“ vea.
SSH3 laiem funktsionaalsus hõlmab X.509 sertifikaatide ja OAuth 2.0/OpenID Connect meetodite kasutamise võimalust autentimise jaoks, lisaks traditsioonilistele SSH meetoditele; UDP-portide suunamise tugi SSH-tunneli kaudu, koos TCP-portide suunamise võimalusega (näiteks QUIC, DNS ja RTP edastamiseks); QUIC protokolli täiustatud funktsioonide, nagu katkestusteta ühenduste migratsioon ja multipath-ühenduste loomine, kasutamine, et jagada liiklust mitmete marsruutide vahel.
SSH3 kasutamisel on märkimisväärselt vähenenud ühenduse loomise aeg. SSH3 serveriga ühenduse loomisel tuleb läbi viia vaid 3 võrgu ringkäiku (Round Trip), samas kui SSHv2 puhul on vajalik 5-7 pakettide vahetuse iteratsiooni. SSH3 ja SSHv2 juba loodud seansside klaviatuuri sisendi reageerimisajad on samal tasemel.

SSH3 kasutab sidekanali krüpteerimiseks TLS 1.3 protokolli, autentimiseks on võimalik kasutada klassikalisi meetodeid, mis põhinevad paroolidel ja avalikel võtmetel (RSA ja EdDSA/ed25519). Samuti on SSH3-s võimalik rakendada OAuth 2.0 protokolli põhiseid meetodeid, mis võimaldavad autentimise delegeerimist kolmandate osapoolte pakkujatele, näiteks Google’i, Microsofti ja GitHub’i kontode kaudu sisselogimise kinnitamiseks. Serveritele ühenduste loomiseks, lisaks SSH võtmetele, on võimalik kasutada ka X.509 sertifikaate, mida kasutatakse HTTPS-i jaoks.
Avaldatud SSH3 klientide ja serverite teostus toetab paljusid OpenSSH põhiomadusi, sealhulgas:
- Support for the file ~/ .ssh/authorized_keys with key settings on serveris.
- Kliendi poolel on võimalik kasutada konfigureerimisfaili ~/ .ssh/config. Praegu toetatakse parameetreid Hostname, User, Port ja IdentityFile, kõik muud ignored.
- Tugi sertifikaatide põhisele autentimisele serverisse ühendamisel.
- Tugi known_hosts mehhanismile (olukordades, kus X.509 sertifikaate ei kasutata).
- SSH-agensi (ssh-agent) toetamine ja automaatne agendi kasutamine avalike võtmete autentimisel.
- SSH-agendi kaudu suunamise funktsiooni tugi kohalike võtmete kasutamiseks välistel serveritel.
- Otsene TCP-portide edastamine.
Allikas: opennet.ru
