První oficiální verze experimentální implementace serveru a klienta pro protokol SSH3 je nyní k dispozici. Je postavena na HTTP/3 a využívá QUIC (založený na UDP) a TLS 1.3 k vytvoření zabezpečeného komunikačního kanálu a mechanismy HTTP pro autentizaci uživatelů. Projekt vyvíjí François Michel, doktorand na Katolické univerzitě v Lovani (Belgie), za účasti Oliviera Bonaventure, profesora na téže univerzitě, známého vývojem subsystému Multipath TCP a kódu pro směrování segmentů IPv6 pro jádro. Linux, a také spoluautorem 10 RFC a návrhů více než 60 síťových specifikací. Implementace klientských a serverových referencí jsou napsány v jazyce Go a distribuovány pod licencí Apache 2.0.
Vývoj SSH3 byl výsledkem kompletního přepracování protokolu SSH, které provedla samostatná skupina výzkumníků nezávislá na OpenSSH a dalších projektech vyvíjejících implementace klasického protokolu SSH. SSH3 implementuje sémantiku klasického protokolu SSH prostřednictvím mechanismů HTTP, což umožňuje několik dalších funkcí a zajišťuje skrytí aktivit souvisejících s SSH mezi ostatním provozem.
Při použití SSH3 je server nerozeznatelný od HTTP serveru a přijímá požadavky na síťovém portu 443 (HTTPS). Provoz SSH3 je sloučen se standardním HTTP provozem, což ztěžuje provádění útoků skenováním portů a identifikaci SSH serverů pro účely bruteforce hesel. Pro komplikaci útoků na servery Kromě toho, že SSH3 zná, zda na dané IP adrese existuje server, může také specifikovat tajný identifikátor serveru SSH3. Bez správného identifikátoru bude server zpracovávat odpovědi jako běžný HTTPS server a nebude indikovat, že je možné připojení SSH3. Pokud například zadáte identifikátor „e6ae772cbdaafd6918865cc2ce449dae“, můžete se k serveru připojit pouze prostřednictvím URL „https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae“. Pokud je identifikátor nesprávný, server vrátí standardní chybu „404“.
Mezi rozšířenou funkcionalitou SSH3 je zmíněna možnost použití certifikátů X.509 a metod OAuth 2.0/OpenID Connect pro autentizaci, kromě klasických metod SSH; podpora přesměrování UDP portů přes SSH tunel kromě možnosti přesměrování TCP portů (například pro přesměrování QUIC, DNS a RTP); využití rozšířených funkcí protokolu QUIC, jako je migrace připojení bez odpojení a navazování vícecestných připojení pro paralelizaci provozu napříč více trasami.
Významné zkrácení doby navazování připojení je obzvláště patrné při použití SSH3. Připojení k serveru SSH3 vyžaduje pouze tři síťové přenosy, zatímco SSHv2 vyžaduje pět až sedm výměn paketů. Doby odezvy klávesnice pro navázané relace SSH3 a SSHv2 jsou srovnatelné.

SSH3 používá k šifrování komunikačního kanálu protokol TLS 1.3 a může využívat klasické metody ověřování založené na hesle a veřejném klíči (RSA a EdDSA/ed25519). SSH3 může také využívat metody založené na protokolu OAuth 2.0, což umožňuje delegovat ověřování na poskytovatele třetích stran, například k poskytování ověřených přihlášení pomocí účtů Google, Microsoft a GitHub. Kromě klíčů SSH lze k připojení k serverům pomocí klíčů použít certifikáty X.509, které se používají pro HTTPS.
Publikovaná implementace klienta a serveru SSH3 podporuje mnoho základních funkcí OpenSSH, včetně:
- Podpora pro soubor ~/.ssh/authorized_keys s nastavením klíčů server.
- Možnost použití konfiguračního souboru ~/.ssh/config na straně klienta. Aktuálně jsou podporovány parametry Hostname, User, Port a IdentityFile, ostatní jsou ignorovány.
- Podpora ověřování připojení k serveru na základě certifikátů.
- Podpora mechanismu known_hosts (v situacích, kdy se nepoužívají certifikáty X.509).
- Podpora pro klienta pracujícího s OpenSSH Agentem (ssh-agent) a automatické použití agenta pro autentizaci pomocí veřejného klíče.
- Podpora přesměrování přes SSH agenta pro použití lokálních klíčů na externím serveru.
- Přímé přesměrování TCP portů.
Zdroj: opennet.ru
