
Protocollo shell veloce e sicuro basato su HTTP/3, QUIC e TLS 1.3. Supporta OAuth2, OpenID Connect e l'autenticazione SSH classica con port forwarding UDP e funzionalità di server nascosto.
[!NOTE] SSH3 è probabilmente destinato a cambiare nome. Rimane il protocollo di connessione SSH (RFC4254) eseguito su HTTP/3 Extended connect, ma le modifiche necessarie sono pesanti e troppo lontane dalla filosofia delle implementazioni SSH popolari per essere considerate per l'integrazione. La bozza di specifica è già stata rinominata ("Remote Terminals over HTTP/3"), ma abbiamo bisogno di tempo per trovare un bel nome permanente.
SSH3 è una revisione completa del protocollo SSH, che mappa la sua semantica sui meccanismi HTTP. Nasce dal nostro lavoro di ricerca e noi (ricercatori) lo abbiamo recentemente proposto come Internet-Draft (draft-michel-remote-terminal-http3-00).
In poche parole, SSH3 utilizza QUIC+TLS1.3 per stabilire un canale sicuro e i meccanismi di Autorizzazione HTTP per l'autenticazione degli utenti. Tra gli altri, SSH3 consente i seguenti miglioramenti:
[!TIP] Vuoi iniziare velocemente? Scopri come installare SSH3. Imparerai a configurare un server SSH3 e usare il client SSH3.
Più veloce per lo stabilimento della sessione, non per il throughput! SSH3 offre uno stabilimento della sessione significativamente più veloce di SSHv2. Stabilire una nuova sessione con SSHv2 può richiedere da 5 a 7 round-trip time di rete, cosa facilmente notabile dall'utente. SSH3 necessita solo di 3 round-trip time. La latenza di digitazione in una sessione in esecuzione rimane invariata.
SSH3 (sopra) VS SSHv2 (sotto) stabilimento della sessione con un ping di 100 ms verso il server.
Mentre SSHv2 definisce i propri protocolli per l'autenticazione degli utenti e lo stabilimento del canale sicuro, SSH3 si affida ai meccanismi robusti e collaudati di TLS 1.3, QUIC e HTTP. Questi protocolli sono già ampiamente utilizzati per proteggere applicazioni critiche per la sicurezza su Internet come l'e-commerce e l'home banking.
SSH3 implementa già i comuni metodi di autenticazione basati su password e chiave pubblica (RSA e EdDSA/ed25519). Supporta anche nuovi metodi di autenticazione come OAuth 2.0 e consente di accedere ai propri server utilizzando gli account Google/Microsoft/Github.
Sebbene SSH3 mostri promesse per uno stabilimento più veloce della sessione, è ancora in una fase iniziale di proof-of-concept. Come per ogni nuovo protocollo complesso, è necessaria una revisione crittografica esperta su un periodo esteso prima di poter trarre conclusioni di sicurezza ragionevoli.
Stiamo sviluppando SSH3 come progetto open source per facilitare il feedback e l'analisi della comunità. Tuttavia, non possiamo ancora approvare la sua idoneità per sistemi di produzione senza ulteriore revisione tra pari. Collabora con noi se hai competenze rilevanti!
Dato lo stato attuale di prototipo, consigliamo di testare SSH3 in ambienti sandbox o reti private. Sii consapevole che rendere i server sperimentali direttamente accessibili da Internet potrebbe introdurre rischi prima di una valutazione di sicurezza approfondita.
Sebbene nascondere i server dietro percorsi segreti abbia potenziali benefici, ciò non annulla la necessità di una rigorosa analisi delle vulnerabilità prima di entrare in produzione. Siamo entusiasti delle future possibilità di SSH3 ma incoraggiamo ulteriori controlli prima.
Usando SSH3, puoi evitare il solito stress degli attacchi di scansione e dizionario contro il tuo server SSH. Analogamente ai tuoi documenti segreti di Google Drive, il tuo server SSH3 può essere nascosto dietro un link segreto e rispondere solo ai tentativi di autenticazione che hanno effettuato una richiesta HTTP a questo specifico link, come il seguente:
ssh3-server -bind 192.0.2.0:443 -url-path <my-long-secret>
Sostituendo <my-long-secret> con, ad esempio, il valore casuale M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU, il tuo server SSH3 risponderà solo ai tentativi di connessione SSH3 effettuati all'URL https://192.0.2.0:443/M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU e risponderà con un 404 Not Found alle altre richieste. Gli attaccanti e i crawler su Internet non possono quindi rilevare la presenza del tuo server SSH3. Vedranno solo un semplice server web che risponde con codici di stato 404 a ogni richiesta.
NOTA BENE: posizionare il tuo server SSH3 dietro un URL segreto può ridurre l'impatto degli attacchi di scansione ma non deve e non potrà mai sostituire i meccanismi di autenticazione classici. Il link segreto dovrebbe essere usato solo per evitare che il tuo host venga scoperto. Conoscere l'URL segreto non dovrebbe concedere a nessuno l'accesso al tuo server. Usa i meccanismi di autenticazione classici descritti sopra per proteggere il tuo server.
SSH3 fornisce nuove funzionalità che non potevano essere fornite dal protocollo SSHv2.