SSH3: Brža, bogatija sigurna ljuska koja koristi HTTP/3
Nedavno postalo poznato zvanično lansiranje prve eksperimentalne verzije servera i klijenta za SSH3 protokol dizajniran kao dopuna HTTP3 protokolu i koji koristi QUIC (bazirano na UDP), TLS 1.3 koji koristi prednosti HTTP mehanizama za autentifikaciju korisnika, kao i za uspostavljanje sigurnog komunikacijskog kanala
SSH3 koristi mehanizme autorizacije zasnovane na HTTP protokolu, koji omogućavaju nove metode provjere autentičnosti, pored klasične autentifikacije pomoću lozinke i para ključeva, plus u SSH3 možete konfigurirati pristup udaljenom serveru preko provajdera identiteta organizacije ili putem Google naloga ili GitHub-a. SSH3 je baziran na HTTP/3 i QUIC-u i, pored normalnog TCP prosljeđivanja, također nudi prosljeđivanje UDP portova i brže, sigurnije uspostavljanje sesije.
O SSH3
Programeri projekta spominju da je stvaranje SSH3 nastao kao rezultat potpune revizije SSH protokola, koju provodi nezavisna grupa istraživača odvojena od timova koji rade na projektima poput OpenSSH i drugim implementacijama klasičnog SSH protokola. U SSH3, semantika klasičnog SSH protokola implementirana je putem HTTP mehanizama, koji ne samo da omogućava dodatne mogućnosti, već i osigurava da su aktivnosti vezane za SSH skrivene između ostalog prometa, između ostalog, SSH3 omogućava sljedeća poboljšanja u odnosu na SSH2 protokol nije mogao pružiti, kao i mnoge popularne OpenSSH funkcije:
- Značajno brže uspostavljanje sesije
- Nove HTTP metode provjere autentičnosti, kao što su OAuth 2.0 i OpenID Connect, uz klasičnu SSH autentifikaciju.
- Parsing ~/.ssh/authorized_keys na serveru.
Parsira ~/.ssh/config na klijentu i obrađuje opcije Hostname, User i Portconfig IdentityFile (ostale opcije se trenutno zanemaruju)
Provjera autentičnosti servera zasnovana na certifikatima - Otpornost na napade skeniranja portova: vaš SSH3 server može postati nevidljiv drugim korisnicima Interneta
- Prosljeđivanje UDP portova – Sada možete pristupiti svom QUIC, DNS, RTP ili bilo kojem UDP baziranom serveru kojem se može pristupiti samo sa vašeg SSH3 hosta.
- X.509 certifikati: Sada možete koristiti svoje klasične HTTPS certifikate za autentifikaciju vašeg SSH3 servera. Ovaj mehanizam je sigurniji od klasičnog SSHv2 glavnog mehanizma ključa.
- Mogućnost sakrivanja servera iza tajne veze.
- Sve funkcije omogućene modernim QUIC protokolom: uključujući migraciju veze i višestruke veze
- Automatski koristite autentifikaciju javnog ključa ssh-agenta
- Prosljeđivanje SSH agenta za korištenje vaših lokalnih ključeva na vašem udaljenom serveru
- Sigurna autentifikacija korisnika bez ključa koristeći OpenID Connect.
Za šifriranje komunikacijskog kanala, SSH3 koristi TLS 1.3 protokol a mogu se koristiti i tradicionalne metode zasnovane na lozinkama i javnim ključevima (RSA i EdDSA/ed25519). Dodatno, SSH3 nudi mogućnost korištenja metoda zasnovanih na OAuth 2.0 protokolu, omogućavajući prijenos autentifikacije vanjskim provajderima.
Još jedan Prednosti SSH3 su u tome što nudi znatno brže uspostavljanje sesije od SSH2, Na primjer, uspostavljanje nove sesije sa SSH2 može potrajati 5 do 7 mrežnih iteracija (kružno putovanje), što korisnik može lako primijetiti jer SSH3 treba samo 3 iteracije.
Ako ste zainteresovani da saznate više o tome, trebalo bi da znate da su klijent i server napisani u Go i distribuirani pod licencom Apache 2.0, možete pogledati detalje Na sledećem linku.
Osim toga, vrijedno je spomenuti da je SSH3 još uvijek eksperimentalan i da se njegova upotreba ne preporučuje u produkcijskim ili kritičnim okruženjima i kao takva se preporučuje njegova instalacija samo da bi se saznalo o njegovim funkcionalnostima ili da bi se moglo testirati.
Preuzmite i instalirajte SSH3
Za zainteresovani da mogu implementirati SSH3 server za testiranje, To možete učiniti kompajliranjem izvornog koda pomoću Go slijedeći upute koje dijelimo u nastavku.
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
Kada je ovo urađeno, sada nastavljamo da dodajemo našu varijablu okruženja u .bashrc sa:
export PATH=$PATH:/path/to/the/ssh3/directory
Što se tiče implementacije servera, pošto SSH3 radi preko HTTP3, sertifikat je neophodan i može se generisati pomoću skripte:
sh ./generate_openssl_selfsigned_certificate.sh
Na kraju, pozivam vas da pogledate dokumentaciju o korištenju i implementaciji dodatnih funkcija u sljedeći link.