SSH3: Rýchlejší a bohatší bezpečný shell pomocou HTTP/3
Nedávno sa stalo známe oficiálne spustenie prvej experimentálnej verzie servera a klienta pre Protokol SSH3 navrhnutý ako doplnok k protokolu HTTP3 a ktorý používa QUIC (založené na UDP), TLS 1.3, ktorý využíva mechanizmy HTTP na autentifikáciu používateľov, ako aj na vytvorenie zabezpečeného komunikačného kanála
SSH3 používa autorizačné mechanizmy založené na protokole HTTP, ktoré okrem klasickej autentifikácie pomocou hesla a páru kľúčov umožňujú aj nové metódy autentifikácie, navyše v SSH3 si môžete nakonfigurovať prístup na vzdialený server cez poskytovateľa identity organizácie alebo pomocou Google účtu či GitHub. SSH3 je založený na HTTP/3 a QUIC a okrem bežného presmerovania TCP ponúka aj presmerovanie portov UDP a rýchlejšie a bezpečnejšie vytvorenie relácie.
O SSH3
Vývojári projektu uvádzajú, že vytvorenie SSH3 vznikol ako výsledok kompletnej revízie protokolu SSH, ktorú vykonáva nezávislá skupina výskumníkov oddelených od tímov pracujúcich na projektoch ako OpenSSH a iných implementáciách klasického protokolu SSH. In SSH3, sémantika klasického protokolu SSH je implementovaná prostredníctvom mechanizmov HTTP, čo nielenže umožňuje ďalšie možnosti, ale okrem iného zabezpečuje, že aktivity súvisiace s SSH sú skryté medzi ostatnou prevádzkou, SSH3 umožňuje nasledujúce vylepšenia oproti protokolu SSH2 nemôže poskytnúť, rovnako ako mnoho populárnych funkcií OpenSSH:
- Výrazne rýchlejšie vytvorenie relácie
- Nové metódy autentifikácie HTTP, ako napríklad OAuth 2.0 a OpenID Connect, okrem klasickej autentifikácie SSH.
- Analýza ~/.ssh/authorized_keys na serveri.
Analyzuje ~/.ssh/config na klientovi a spracováva možnosti Hostname, User a Portconfig IdentityFile (ostatné možnosti sú momentálne ignorované)
Autentifikácia servera založená na certifikáte - Odolnosť proti útokom skenovania portov: váš server SSH3 sa môže stať neviditeľným pre ostatných používateľov internetu
- Presmerovanie portov UDP – Teraz máte prístup k svojmu QUIC, DNS, RTP alebo akémukoľvek serveru založenému na UDP, ku ktorému je možné pristupovať iba z vášho hostiteľa SSH3.
- Certifikáty X.509: Teraz môžete použiť svoje klasické HTTPS certifikáty na autentifikáciu vášho SSH3 servera. Tento mechanizmus je bezpečnejší ako klasický mechanizmus hostiteľského kľúča SSHv2.
- Schopnosť skryť server za tajný odkaz.
- Všetky funkcie povolené moderným protokolom QUIC: vrátane migrácie pripojení a viaccestných pripojení
- Automaticky používať autentifikáciu verejným kľúčom ssh-agent
- Preposielanie agenta SSH na použitie miestnych kľúčov na vzdialenom serveri
- Zabezpečte bezkľúčovú autentifikáciu používateľov pomocou OpenID Connect.
Na šifrovanie komunikačného kanála používa SSH3 protokol TLS 1.3 a možno použiť tradičné metódy založené na heslách a verejných kľúčoch (RSA a EdDSA/ed25519). SSH3 navyše ponúka možnosť použitia metód založených na protokole OAuth 2.0, čo umožňuje prenos autentifikácie na externých poskytovateľov.
Ďalší z nich Silnou stránkou SSH3 je, že ponúka výrazne rýchlejšie vytvorenie relácie ako SSH2, Napríklad vytvorenie novej relácie s SSH2 môže trvať 5 až 7 iterácií siete (spiatočná cesta), čo si používateľ môže ľahko všimnúť, pretože SSH3 potrebuje iba 3 iterácie.
Ak máte záujem dozvedieť sa o ňom viac, mali by ste vedieť, že klient a server sú napísané v Go a distribuované pod licenciou Apache 2.0, podrobnosti si môžete prečítať Na nasledujúcom odkaze.
Okrem toho stojí za zmienku, že SSH3 je stále experimentálny a jeho použitie sa neodporúča pre produkčné alebo kritické prostredia, a preto sa jeho inštalácia odporúča len preto, aby ste sa dozvedeli o jeho funkciách alebo aby ste si ho mohli otestovať.
Stiahnite si a nainštalujte SSH3
pre záujem o implementáciu servera SSH3 na testovanie, Môžete to urobiť kompiláciou zdrojového kódu pomocou Go podľa pokynov, ktoré zdieľame nižšie.
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
Keď to urobíme, teraz pristúpime k pridávaniu našej premennej prostredia do súboru .bashrc s:
export PATH=$PATH:/path/to/the/ssh3/directory
Čo sa týka implementácie servera, keďže SSH3 beží cez HTTP3, je potrebný certifikát, ktorý je možné vygenerovať pomocou skriptu:
sh ./generate_openssl_selfsigned_certificate.sh
Nakoniec vás pozývam, aby ste si prečítali dokumentáciu o používaní a implementácii dodatočných funkcií v nasledujúci odkaz.