Neseniai tapo žinoma oficialiai pristatyta pirmoji eksperimentinė versija serverio ir kliento SSH3 protokolas, sukurtas kaip HTTP3 protokolo papildymas ir kuris naudoja QUIC (pagrįstą UDP), TLS 1.3, kuris naudojasi HTTP mechanizmais vartotojo autentifikavimui, taip pat saugiam ryšio kanalui sukurti
SSH3 naudoja HTTP protokolu pagrįstus autorizavimo mechanizmus, kurie leidžia naujus autentifikavimo metodus, be klasikinio autentifikavimo naudojant slaptažodį ir raktų porą, be to, SSH3 galite sukonfigūruoti prieigą prie nuotolinio serverio per organizacijos tapatybės teikėją arba naudodami „Google“ paskyrą arba „GitHub“. SSH3 yra pagrįstas HTTP/3 ir QUIC ir, be įprasto TCP persiuntimo, taip pat siūlo UDP prievado persiuntimą ir greitesnį bei saugesnį seanso nustatymą.
Apie SSH3
Projekto kūrėjai mini, kad SSH3 sukūrimas atsirado dėl visiškos SSH protokolo peržiūros, kurią vykdo nepriklausoma tyrėjų grupė, atskirta nuo komandų, dirbančių su tokiais projektais kaip OpenSSH ir kiti klasikinio SSH protokolo diegimai. Į SSH3, klasikinio SSH protokolo semantika įgyvendinama naudojant HTTP mechanizmus, kuri ne tik suteikia papildomų galimybių, bet ir užtikrina, kad su SSH susijusi veikla būtų paslėpta tarp kitų srautų, be kita ko, SSH3 leidžia atlikti toliau nurodytus SSH2 protokolo patobulinimus negalėjo pateikti, taip pat daugelio populiarių OpenSSH funkcijų:
- Žymiai greitesnis seanso nustatymas
- Nauji HTTP autentifikavimo metodai, tokie kaip OAuth 2.0 ir OpenID Connect, be klasikinio SSH autentifikavimo.
- Nagrinėjama ~/.ssh/authorized_keys serveryje.
Kliente analizuoja ~/.ssh/config ir tvarko pagrindinio kompiuterio pavadinimo, naudotojo ir portconfig tapatybės failo parinktis (kitos parinktys šiuo metu ignoruojamos)
Sertifikatais pagrįstas serverio autentifikavimas - Patvarumas prieš prievadų nuskaitymo atakas: jūsų SSH3 serveris gali tapti nematomas kitiems interneto vartotojams
- UDP prievado persiuntimas – dabar galite pasiekti savo QUIC, DNS, RTP arba bet kurį UDP pagrįstą serverį, kurį galima pasiekti tik iš jūsų SSH3 pagrindinio kompiuterio.
- X.509 sertifikatai: dabar galite naudoti klasikinius HTTPS sertifikatus SSH3 serveriui autentifikuoti. Šis mechanizmas yra saugesnis nei klasikinis SSHv2 pagrindinio kompiuterio rakto mechanizmas.
- Galimybė paslėpti serverį už slaptos nuorodos.
- Visos funkcijos, kurias įgalina modernus QUIC protokolas: įskaitant ryšio perkėlimą ir kelių krypčių ryšius
- Automatiškai naudoti ssh-agent viešojo rakto autentifikavimą
- SSH agento persiuntimas, kad būtų galima naudoti vietinius raktus nuotoliniame serveryje
- Saugus beraktis vartotojo autentifikavimas naudojant OpenID Connect.
Ryšio kanalui užšifruoti SSH3 naudoja TLS 1.3 protokolą ir gali būti naudojami tradiciniai slaptažodžiais ir viešaisiais raktais pagrįsti metodai (RSA ir EdDSA/ed25519). Be to, SSH3 siūlo galimybę naudoti metodus, pagrįstus OAuth 2.0 protokolu, leidžiantį autentifikavimą perduoti išoriniams tiekėjams.
Kitas iš SSH3 pranašumai yra tai, kad jis siūlo žymiai greitesnį seanso nustatymą nei SSH2, Pavyzdžiui, norint sukurti naują seansą su SSH2, gali prireikti 5–7 tinklo iteracijų (atgal ir atgal), o tai vartotojas gali lengvai pastebėti, nes SSH3 reikia tik 3 iteracijų.
Jei norite sužinoti daugiau apie tai, turėtumėte žinoti, kad klientas ir serveris yra parašyti Go ir platinami pagal Apache 2.0 licenciją, galite peržiūrėti išsamią informaciją Šioje nuorodoje.
Be to, verta paminėti, kad SSH3 vis dar yra eksperimentinis ir jo nerekomenduojama naudoti gamybinėje ar kritinėje aplinkoje, todėl jį įdiegti rekomenduojama tik norint sužinoti apie jo funkcijas arba norint išbandyti.
Atsisiųskite ir įdiekite SSH3
Už domina galimybė įdiegti SSH3 serverį testavimui, Tai galite padaryti sudarę šaltinio kodą naudodami „Go“, vadovaudamiesi toliau pateiktomis instrukcijomis.
git clone https://github.com/francoismichel/ssh3 cd ssh3 go build -o ssh3 cmd/ssh3/main.go CGO_ENABLED=1 go build -o ssh3-server cmd/ssh3-server/main.go
Kai tai bus padaryta, mes toliau pridedame aplinkos kintamąjį į .bashrc su:
export PATH=$PATH:/path/to/the/ssh3/directory
Kalbant apie serverio diegimą, kadangi SSH3 veikia per HTTP3, būtinas sertifikatas, kurį galima sugeneruoti naudojant scenarijų:
sh ./generate_openssl_selfsigned_certificate.sh
Galiausiai kviečiu susipažinti su dokumentacija apie papildomų funkcijų naudojimą ir įgyvendinimą sekanti nuoroda.