Megjelent az SSH3 protokoll kísérleti megvalósításának első hivatalos kiadása, amely a HTTP/3 protokoll fölött kiegészítőként működik, a QUIC (UDP-alapú) és a TLS 1.3 segítségével biztosítva a védett kommunikációs csatorna létrehozását, valamint a felhasználók azonosítására szolgáló HTTP mechanizmusokat. A projektet François Michel, a Leuven Katolikus Egyetem (Belgium) doktorandusza fejleszti, Olivier Bonaventure, a hét egyetem professzora, aki híres a Multipath TCP alrendszer fejlesztéséről és az IPv6 szegmensek irányítására vonatkozó kódjairól a Linux kernelhez, valamint 10 RFC és 60 hálózati specifikációs tervezet társszerzője, közreműködésével.
Az SSH3 fejlesztése a SSH protokoll teljes újjáélesztésének eredménye, amelyet egy külön kutatócsoport függetlenül hajtott végre az OpenSSH és más, a klasszikus SSH protokoll megvalósításain dolgozó projektekhez képest. Az SSH3-ban a klasszikus SSH protokoll szemantikai elemeit HTTP mechanizmusokkal valósították meg, lehetővé téve ezzel néhány további funkció bevezetését, és elrejtve az SSH tevékenységhez kapcsolódó forgalmat más forgalmak között.
SSH3 használatakor a szerver megkülönböztethetetlen egy HTTP-szervertől, és a 443-as hálózati porton (HTTPS) fogadja a kéréseket, miközben az SSH3 forgalma elolvad a tipikus HTTP-forgalomban, ami megnehezíti a portszkenneléssel és az SSH-szerverek jelszómegtalálásához kapcsolódó támadások végrehajtását. A támadások megnehezítése érdekében szerverek SSH3 használatához, a megadott IP-címhez való hozzáférés tudásán túl, titkos SSH3-szerver azonosítót is meg lehet adni. A helyes azonosító megadása nélkül a szerver a válaszokat normál HTTPS-szerverként dolgozza fel, és nem mutatja ki, hogy van lehetőség SSH3 kapcsolatra. Például a „e6ae772cbdaafd6918865cc2ce449dae” azonosító megadásával a szerverhez csak a „https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae” URL-en keresztül lehet csatlakozni, és ha az azonosító hibásan van megadva, a szerver a szokásos „404” hibát adja vissza.
Az SSH3 kibővített funkciói között említést nyer a X.509 tanúsítványok és az OAuth 2.0/OpenID Connect módszerek használatának lehetősége a klasszikus SSH módszerek mellett; a UDP-portok SSH-alagúton való átirányításának támogatása a TCP-portok átirányítási lehetősége mellett (például QUIC, DNS és RTP átjárásra); a QUIC protokoll kiterjesztett funkcióinak használata, mint például a kapcsolatmegszakítás nélküli kapcsolatvándorlás és a multipath-kapcsolatok létrehozása a forgalom párhuzamos elosztására több útvonalon.
Külön kiemelendő az SSH3-alapú kapcsolatok létrehozásának jelentős időcsökkentése. Az SSH3 szerverhez való csatlakozáskor mindössze 3 hálózati iteráció (Round Trip) szükséges, míg az SSHv2-nek 5-7 csomagcserére van szüksége. Az billentyűzetbevitel reakcióideje már létrejött SSH3 és SSHv2 munkamenetek esetén megegyező szinten van.

Az SSH3 kommunikációs csatornájának titkosításához a TLS 1.3 protokollt használják, az autentikációhoz pedig klasszikus jelszó alapú és nyilvános kulcsos (RSA és EdDSA/ed25519) módszereket lehet alkalmazni. Továbbá, az SSH3-ban használandók az OAuth 2.0 protokoll alapján működő azonosítási módszerek is, amelyek lehetővé teszik az autentikáció áthelyezését külső szolgáltatókra, például Google, Microsoft és GitHub fiókokon keresztüli belépéssel. A kulcsok alapján történő szerverkapcsolathoz az SSH-kulcsok mellett használhatóak a HTTPS-hez használt X.509 tanúsítványok is.
A közzétett SSH3 kliens és szerver megvalósítása számos alapvető OpenSSH funkciót támogat, többek között:
- Az ~ / .ssh / authorized_keys fájl támogatása a kulcsbeállításokhoz. szerveren.
- Lehetőség van a ~ / .ssh / config fájl használatára a kliensoldalon. Jelenleg támogatott paraméterek: Hostname, User, Port és IdentityFile, a többi figyelmen kívül hagyva.
- Az autentikáció támogatása a szerverhez tanúsítványok alapján.
- A known_hosts mechanizmus támogatása (olyan esetekben, amikor nem használnak X.509 tanúsítványokat).
- A kliens OpenSSH Agent (ssh-agent) támogatása és az ügynök automatikus használata a nyilvános kulcsos autentikációhoz.
- SSH-ügynökön keresztüli irányítás támogatása helyi kulcsok külső szerveren történő használatához.
- Közvetlen TCP-portok átjárása.
Forrás: opennet.ru
