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

È disponibile il primo rilascio ufficiale di una implementazione sperimentale di server e client per il protocollo SSH3, strutturato come un'estensione del protocollo HTTP/3, che utilizza 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 Leuven (Belgio), con la partecipazione di Olivier Bonaventure, professore della stessa università, noto per lo sviluppo del sottosistema Multipath TCP e del codice di segment routing IPv6 per il kernel Linux, nonché coautore di 10 RFC e redattore di oltre 60 specifiche di rete. Il codice di riferimento dell'implementazione del client e del server è scritto in Go e distribuito sotto licenza Apache 2.0.

Lo sviluppo di SSH3 è stato il risultato di una revisione completa del protocollo SSH, effettuata da un gruppo separato di ricercatori indipendentemente da OpenSSH e altri progetti che sviluppano implementazioni del classico protocollo SSH. In SSH3, la semantica del classico protocollo SSH è realizzata attraverso meccanismi HTTP, permettendo l'implementazione di ulteriori funzionalità e garantendo l'occultamento delle attività legate a SSH tra il traffico normale.

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 più difficile condurre attacchi legati alla scansione delle porte e all'individuazione dei server SSH per tentativi di accesso. Per complicare ulteriormente la realizzazione di attacchi su server SSH3, oltre alla conoscenza della disponibilità del server all'indirizzo IP specificato, può specificare un percorso segreto identificativo del server SSH3. Senza un identificatore corretto, il server gestirà le risposte come un normale server HTTPS e non indicherà la possibilità di connessione tramite SSH3. Ad esempio, specificando l'identificatore "e6ae772cbdaafd6918865cc2ce449dae", per connettersi al server è possibile utilizzare solo l'URL "https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae"; se l'identificatore è errato, il server restituirà un errore comune "404".

Tra le funzionalità avanzate di SSH3 si segnala la possibilità di utilizzare i certificati X.509 e i metodi OAuth 2.0/OpenID Connect per l'autenticazione, oltre ai metodi SSH classici; supporto per il reindirizzamento delle porte UDP tramite tunnel SSH, oltre alla possibilità di reindirizzare le porte TCP (ad esempio, per il passaggio di QUIC, DNS e RTP); utilizzo di funzionalità avanzate del protocollo QUIC, come la migrazione delle connessioni senza interruzione e l'instaurazione di connessioni multipath per parallelizzare il traffico su più percorsi.

Viene evidenziata una significativa riduzione del tempo di connessione quando si utilizza SSH3. Quando ci si connette a un server, SSH3 richiede solo 3 iterazioni di rete (Round Trip), mentre per SSHv2 vengono eseguite 5-7 iterazioni per lo scambio di pacchetti. Il tempo di risposta per l'input da tastiera per le sessioni già stabilite in SSH3 e SSHv2 è pressoché equivalente.

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

Per la crittografia del canale di comunicazione in SSH3 viene utilizzato il protocollo TLS 1.3, mentre per l'autenticazione si possono impiegare metodi tradizionali 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 esternalizzare l'autenticazione a fornitori terzi, ad esempio, per permettere l'accesso con verifica tramite account Google, Microsoft e GitHub. Per connettersi ai server tramite chiavi, oltre alle chiavi SSH, è possibile utilizzare certificati X.509 impiegati per HTTPS.

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

  • Supporto per il file ~/.ssh/authorized_keys con configurazioni 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 il funzionamento del client con OpenSSH Agent (ssh-agent) e utilizzo automatico dell'agente per l'autenticazione tramite chiavi pubbliche.
  • Supporto per la funzione di reindirizzamento tramite SSH-agent per utilizzare chiavi locali su server esterni.
  • Passaggio diretto delle porte TCP.

Fonte: opennet.ru

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