Ir pieejams pirmais oficiālais eksperimentālā SSH3 protokola servera un klienta izlaides, kas veidots kā paplašinājums HTTP/3 protokolam, izmantojot QUIC (balstīts uz UDP) un TLS 1.3, lai izveidotu drošu saziņas kanālu un HTTP mehānismus lietotāju autentifikācijai. Projektu izstrādā Fransuā Mišels (François Michel), Luvēnas katoliskā universitātes (Beļģija) students, kopā ar Olivjē Bonaventūru (Olivier Bonaventure), tā paša universitātes profesoru, kurš pazīstams ar Multipath TCP apakšsistēmas un IPv6 segmentu maršrutēšanas koda izstrādi Linux kodola izstrādē, kā arī ir 10 RFC un vairāk nekā 60 tīkla specifikāciju melnrakstu līdzautors. Klienta un servera standarta versijas kods ir rakstīts valodā Go un tiek izplatīts ar Apache 2.0 licenci.
SSH3 izstrāde ir rezultāts pilnīgai SSH protokola pārskatīšanai, ko veica atsevišķa pētnieku grupa neatkarīgi no OpenSSH un citiem projektiem, kas strādā pie klasiskā SSH protokola. SSH3 semantika ir īstenota caur HTTP mehānismiem, kas ļāva ieviest papildu iespējas un nodrošināt SSH aktivitātes slēpšanu citu trafika ietvaros.
Izmantojot SSH3, servers nav atšķirams no HTTP servera un pieņem pieprasījumus uz 443. tīkla portu (HTTPS), bet SSH3 satiksme tiek apvienota ar parasto HTTP satiksmi, kas apgrūtina uzbrukumus, kas saistīti ar portu skenēšanu un SSH serveru atklāšanu paroles piekļūšanai. Lai apgrūtinātu uzbrukumu veikšanu uz serverus SSH3, papildus zināšanām par servera esamību noteiktā IP adresē, var norādīt arī slepenu SSH3 servera identifikācijas ceļu. Bez pareizā identifikatora pieprasījuma serveris apstrādās atbildes kā parasts HTTPS servers un nesniegs informāciju par SSH3 savienojuma pieejamību. Piemēram, norādot identifikatoru «e6ae772cbdaafd6918865cc2ce449dae», savienojums ar serveri ir iespējams tikai, izmantojot URL «https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae», un, ja identifikators ir norādīts nepareizi, serveris atgriezīs standarta kļūdu «404».
SSH3 paplašinātajā funkcionalitātē tiek minēta iespēja izmantot X.509 sertifikātus un OAuth 2.0/OpenID Connect autentifikācijai, kā arī klasiskās SSH autentifikācijas metodes; UDP portu pārsūtīšanas atbalsts caur SSH tuneli papildus TCP portu pārsūtīšanas iespējai (piemēram, QUIC, DNS un RTP) ; uzlabotā QUIC protokola funkciju lietošana, piemēram, savienojumu migrācija bez pieslēguma pārtraukšanas un multipath savienojumu izveide, lai paralēli pārsūtītu satiksmi pa vairākiem maršrutiem.
Īpaši jāuzsver ievērojams savienojuma izveides laika samazinājums, izmantojot SSH3. Pieslēdzoties SSH3 serverim, ir nepieciešamas tikai 3 tīkla iterācijas (Round Trip), kamēr SSHv2 ir nepieciešamas 5-7 pakotņu apmaiņas iterācijas. Tastatūras ievades reakcijas laiks jau izveidotajiem SSH3 un SSHv2 sesijām ir līdzīgs.

Lai nodrošinātu saziņas kanāla šifrēšanu, SSH3 izmanto TLS 1.3 protokolu, un autentifikācijai var izmantot klasiskās metodes, kas balstītas uz parolēm un atslēgām (RSA un EdDSA/ed25519). Tāpat SSH3 var izmantot OAuth 2.0 protokola pamatā balstītas metodes, kas ļauj pārcelt autentifikāciju uz trešo pušu pakalpojumiem, piemēram, lai nodrošinātu ieeju ar apstiprināšanu, izmantojot Google, Microsoft un GitHub kontus. Savienojumiem ar serveriem, izmantojot atslēgas, papildus SSH atslēgām var izmantot X.509 sertifikātus, kas tiek izmantoti HTTPS.
Publicētā SSH3 klienta un servera īstenošana atbalsta daudzas OpenSSH pamata funkcijas, starp kurām:
- Atbalsts failam ~/.".ssh/authorized_keys ar atslēgu iestatījumiem uz serveri.
- Iespēju izmantot ~/.".ssh/config konfigurācijas failu klienta pusē. Pašlaik tiek atbalstīti parametri Hostname, User, Port un IdentityFile, bet pārējie tiek ignorēti.
- Atbalsts sertifikātu bāzes autentifikācijai, pieslēdzoties serverim.
- Atbalsts known_hosts mehānismam (situācijās, kad nav izmantoti X.509 sertifikāti).
- Atbalsts klientam strādāt ar OpenSSH aģentu (ssh-agent) un automātisku aģenta izmantošanu autentifikācijai ar atvērtajām atslēgām.
- Atbalsts SSH aģenta pārsūtīšanas funkcijai, lai izmantotu lokālās atslēgas ārējā serverī.
- Tieša TCP portu pārsūtīšana.
Avots: opennet.lv
