È stato presentato SSH3, una variante del protocollo SSH che utilizza HTTP/3

È disponibile il primo rilascio ufficiale della realizzazione sperimentale di un server e di un client per il protocollo SSH3, strutturato come un'estensione sopra il protocollo HTTP/3, utilizzando QUIC (basato su UDP) e TLS 1.3 per stabilire un canale di comunicazione sicuro e meccanismi HTTP per l'autenticazione degli utenti. Il progetto è sviluppato da François Michel, dottorando presso l'Università Cattolica di Lovanio (Belgio), con la partecipazione di Olivier Bonaventure, professore presso la stessa università, noto per lo sviluppo del sottosistema Multipath TCP e del codice di instradamento dei segmenti IPv6 per il kernel di Linux, nonché coautore di 10 RFC e di bozze di oltre 60 specifiche di rete. Il codice di riferimento per l'implementazione di client e server è scritto in linguaggio Go ed è distribuito con licenza Apache 2.0.

Lo sviluppo di SSH3 è il risultato di una revisione completa del protocollo SSH, condotta da un gruppo separato di ricercatori indipendenti da OpenSSH e da altri progetti che sviluppano implementazioni del protocollo SSH classico. In SSH3, la semantica del protocollo SSH classico è realizzata attraverso meccanismi HTTP, consentendo di implementare alcune funzionalità aggiuntive e di nascondere l'attività legata a SSH tra altro traffico.

Utilizzando SSH3, il server è indistinguibile da un server HTTP e accetta richieste sulla porta di rete 443 (HTTPS), mentre il traffico SSH3 si mescola con il traffico HTTP standard, rendendo difficile l'esecuzione di attacchi legati alla scansione delle porte e all'individuazione dei server SSH per il recupero delle password. Per complicare l'esecuzione di attacchi su servers SSH3, oltre alla conoscenza dell'esistenza di un server a un determinato indirizzo IP, è possibile specificare un percorso segreto che funge da identificatore del server SSH3. Senza l'utilizzo dell'identificatore corretto, il server tratterà le richieste come un normale server HTTPS e non segnalerà la possibilità di connessione tramite SSH3. Ad esempio, specificando l'identificatore «e6ae772cbdaafd6918865cc2ce449dae», è possibile collegarsi al server solo tramite URL «https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae», mentre se l'identificatore viene specificato in modo errato, il server restituirà un errore standard «404».

Dalla funzionalità avanzata di SSH3 si menziona la possibilità di utilizzare certificati X.509 e metodi OAuth 2.0/OpenID Connect per l'autenticazione, oltre ai metodi SSH classici; supporto per la redirezione delle porte UDP attraverso un tunnel SSH in aggiunta alla possibilità di redirezione delle porte TCP (ad esempio, per il forwarding di QUIC, DNS e RTP); utilizzo di funzionalità avanzate del protocollo QUIC, come la migrazione delle connessioni senza interruzione della connessione e l'instaurazione di connessioni multipath per parallelizzare il traffico attraverso più percorsi.

Si evidenzia una significativa riduzione del tempo di connessione utilizzando SSH3. Quando ci si connette a un server SSH3, sono necessarie solo 3 iterazioni di rete (Round Trip), mentre per SSHv2 vengono eseguite 5-7 iterazioni scambiando pacchetti. Il tempo di reazione per l'input da tastiera per le sessioni già stabilite in SSH3 e SSHv2 è su un livello simile.

È stato presentato SSH3, una variante del protocollo SSH che utilizza HTTP/3

Per la crittografia del canale in SSH3 viene utilizzato il protocollo TLS 1.3, mentre per l'autenticazione si possono utilizzare metodi classici basati su password e chiavi pubbliche (RSA e EdDSA/ed25519). Inoltre, in SSH3 possono essere utilizzati metodi basati sul protocollo OAuth 2.0, che consentono di delegare l'autenticazione a provider esterni, ad esempio, per facilitare l'accesso con conferma tramite account nei servizi Google, Microsoft e GitHub. Per la connessione ai server utilizzando le chiavi, oltre alle chiavi SSH, possono essere utilizzati certificati X.509, utilizzati per HTTPS.

L'implementazione pubblicata del client e del server SSH3 supporta molte funzionalità di base di OpenSSH, tra cui:

  • Supporto per il file ~/.ssh/authorized_keys con impostazioni delle chiavi su server.
  • Possibilità di utilizzare il file di configurazione ~/.ssh/config lato client. Attualmente sono supportati i parametri Hostname, User, Port e IdentityFile, mentre gli altri vengono ignorati.
  • Supporto per l'autenticazione della connessione al server basata su certificati.
  • Supporto per il meccanismo known_hosts (in situazioni in cui non vengono utilizzati certificati X.509).
  • Supporto per l'utilizzo del client con OpenSSH Agent (ssh-agent) e utilizzo automatico dell'agente per l'autenticazione tramite chiavi pubbliche.
  • Supporto per la funzione di redirezione tramite SSH agent per l'uso di chiavi locali su un server esterno.
  • Forwarding diretto delle porte TCP.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster