Na voljo je prva uradna različica eksperimentalne izvedbe strežnika in odjemalca za protokol SSH3, ki je zasnovan kot nadgradnja protokola HTTP/3, ki uporablja QUIC (na osnovi UDP) in TLS 1.3 za vzpostavitev zaščitenega komunikacijskega kanala ter mehanizme HTTP za avtentikacijo uporabnikov. Projekt razvija François Michel, doktorski študent Katoliške univerze v Lövnu (Belgija), v sodelovanju z Olivierjem Bonaventurejem, profesorjem na isti univerzi, znanim po razvoju podskupine Multipath TCP in kode segmentne usmerjanja IPv6 za jedro Linuxa, ter soavtorjem 10 RFC in osnutkov več kot 60 mrežnih specifikacij. Koda referenčne izvedbe odjemalca in strežnika je napisana v jeziku Go in se distribuiranja pod licenco Apache 2.0.
Razvoj SSH3 je bil rezultat popolne revizije protokola SSH, ki jo je izvedla ločena skupina raziskovalcev neodvisno od OpenSSH in drugih projektov, ki razvijajo izvedbe klasičnega protokola SSH. V SSH3 je semantika klasičnega protokola SSH realizirana prek mehanizmov HTTP, kar je omogočilo dodatne možnosti in zagotavljanje prikrivanja dejavnosti, povezanih z SSH, med drugim prometom.
Pri uporabi SSH3 je strežnik nedoločljiv od HTTP-strežnika in sprejema zahteve na 443 omrežnem portu (HTTPS), promet SSH3 pa se zliva s tipičnim HTTP-prometom, kar otežuje izvedbo napadov, povezanih s skeniranjem vrat in odkrivanjem SSH-strežnikov za ugibanje gesel. Za otežitev napadov na servere SSH3, poleg poznavanja informacij o prisotnosti strežnika na določenem IP-naslovu, lahko vključuje tudi tajno pot-identifikator SSH3-strežnika. Brez pravilne obravnave identifikatorja strežnik obravnava odgovore kot navaden HTTPS-strežnik in ne razkrije dejstva o možnosti povezovanja prek SSH3. Na primer, z identifikatorjem 'e6ae772cbdaafd6918865cc2ce449dae' se lahko povežete na strežnik samo preko URL-ja 'https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae', če pa je identifikator naveden nepravilno, bo strežnik vrnil standardno napako '404'.
V razširjeni funkcionalnosti SSH3 se omenjajo možnosti uporabe za avtentikacijo certifikatov X.509 ter metod OAuth 2.0/OpenID Connect, poleg klasičnih metod SSH; podpora usmerjanju UDP pristanišč preko SSH tunela poleg možnosti usmerjanja TCP pristanišč (na primer, za preusmerjanje QUIC, DNS in RTP); uporaba razširjenih funkcij protokola QUIC, kot so migracija povezav brez prekinitev in vzpostavitev multipath povezav za paralelizacijo prometa po več poteh.
Izpostavljeno je tudi pomembno zmanjšanje časa za vzpostavitev povezave pri uporabi SSH3. Pri povezovanju s strežnikom SSH3 je potrebno izvesti le 3 omrežne iteracije (Round Trip), medtem ko za SSHv2 poteka 5-7 iteracij izmenjave paketov. Čas odziva na tipkovni vnos za že vzpostavljene seje v SSH3 in SSHv2 je na enaki ravni.

Za šifriranje komunikacijskega kanala v SSH3 je vključen protokol TLS 1.3, za avtentikacijo pa se lahko uporabijo klasične metode na osnovi gesel in javnih ključev (RSA in EdDSA/ed25519). Poleg tega se v SSH3 lahko uporabljajo metode na osnovi protokola OAuth 2.0, ki omogočajo prenos avtentikacije na zunanje ponudnike, na primer, za zagotavljanje prijave z potrditvijo preko računov v storitvah Google, Microsoft in GitHub. Za povezovanje s strežniki preko ključev, poleg SSH ključev, lahko uporabite tudi certifikate X.509, uporabljene za HTTPS.
Objavljena implementacija odjemalca in strežnika SSH3 podpira številne osnovne možnosti OpenSSH, med katerimi so:
- Podpora datoteki ~/ .ssh / authorized_keys s nastavitvami ključev na strežnikom.
- Možnost uporabe datoteke za konfiguracijo ~/ .ssh / config na strani odjemalca. Trenutno so podprte nastavitve Hostname, User, Port in IdentityFile, ostale pa se ignorirajo.
- Podpora avtentikaciji povezave s strežnikom na osnovi certifikatov.
- Podpora mehanizmu known_hosts (v primerih, ko se ne uporabljajo certifikati X.509).
- Podpora delu odjemalca z OpenSSH Agent (ssh-agent) in samodejna uporaba agenta za avtentikacijo z javnimi ključi.
- Podpora za funkcijo preusmeritve preko SSH agenta za uporabo lokalnih ključev na zunanjih strežnikih.
- Neposredno preusmerjanje TCP pristanišč.
Izvor: opennet.ru
