OpenSSH e crittografia post-quantistica: sicurezza SSH per il futuro

OpenSSH supporta algoritmi ibridi post-quantistici per proteggere le sessioni SSH dalle minacce future legate ai computer quantistici. Diventa così possibile mantenere sicure le comunicazioni anche in presenza di potenziali attacchi futuri, anticipando eventuali vulnerabilità degli algoritmi classici come RSA o Diffie-Hellman.

OpenSSH è uno degli strumenti più diffusi per stabile connessioni SSH e da tempo sta adottando misure per proteggere le comunicazioni contro le minacce future derivanti dai computer quantistici. Dal 2022, con la versione 9.0, OpenSSH supporta algoritmi di key agreement post-quantistici (KexAlgorithms) per rendere le sessioni SSH più resistenti agli attacchi del futuro.

Cos’è la crittografia post-quantistica?

Come abbiamo visto in altri nostri articoli, la crittografia post-quantistica riguarda metodi crittografici progettati per essere sicuri anche contro attacchi condotti da computer quantistici, dispositivi che sfruttano i principi della meccanica quantistica per risolvere problemi matematici complessi molto più rapidamente rispetto ai computer classici.

Alcuni algoritmi oggi comunemente usati per stabilire chiavi crittografiche (come RSA, ECDSA, Diffie-Hellman) si basano su problemi matematici (fattorizzazione, logaritmo discreto) che potrebbero essere risolti in tempi praticabili da un computer quantistico sufficientemente potente (abbiamo visto quanto è davvero sicuro RSA). Ciò comporta che una sessione SSH protetta con questi algoritmi oggi potrebbe essere catturata oggi e poi, in futuro, decifrata (“store now, decrypt later“). Quando la maturazione dei computer quantistici lo permetterà.

OpenSSH e l’adozione degli algoritmi post-quantistici

Dal rilascio della versione 9.0 nel 2022, OpenSSH ha incluso di default il supporto a un algoritmo post-quantistico chiamato sntrup761x25519-sha512. Successivamente, con la versione 9.9 e la successiva 10.0, è stato introdotto e reso predefinito un secondo algoritmo, mlkem768x25519-sha256, che oggi rappresenta il nuovo standard raccomandato per la negoziazione delle chiavi (KexAlgorithms).

Questi algoritmi sono ibridi, nel senso che combinano tecniche post-quantistiche con metodi classici (come X25519, basato su Curve25519), per mantenere un livello di sicurezza almeno equivalente a quello degli algoritmi classici più sicuri, anche nel caso in cui emergessero vulnerabilità nei nuovi schemi post-quantistici.

Messaggi di avviso e migrazione forzata

Con OpenSSH 10.1, è stata introdotto un avviso che segnala quando una connessione utilizza algoritmi non post-quantistici per la negoziazione delle chiavi:

** WARNING: connection is not using a post-quantum kex exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html

La notifica è mostrata di default per incentivare l’adozione degli algoritmi più sicuri, ma può essere disabilitato selettivamente tramite l’opzione WarnWeakCrypto nel file di configurazione ssh_config.

Perché preoccuparsi ora, se i computer quantistici “di massa” ancora non esistono?

Il motivo è legato proprio alla natura delle cosiddette minacce future e del fenomeno del “store now, decrypt later“, come evidenziato in precedenza. Anche se l’arrivo di computer quantistici abbastanza potenti da minacciare la crittografia è stimato tra 5 e 20 anni, un attaccante potrebbe registrare oggi tutte le comunicazioni cifrate e poi, in futuro, decifrarle quando dispone della potenza necessaria.

Quindi, aggiornare ora le infrastrutture per adottare algoritmi post-quantistici significa proteggere la riservatezza delle comunicazioni già oggi, anticipando la futura capacità di decifrare dati che invece ai giorni nostri appaiono al sicuro.

È vero che Windows 10 e Windows 11 integrano OpenSSH?

OpenSSH è integrato ufficialmente anche in Windows a partire da Windows 10, versione 1809 (rilasciata nell’ottobre 2018) e nelle versioni successive, inclusi Windows 11 e Windows Server recenti.

La versione di OpenSSH inclusa in Windows è una build ufficiale e mantenuta da Microsoft. È aggiornata regolarmente tramite Windows Update, e si basa sul codice sorgente OpenSSH del progetto OpenBSD. Offre sia il client (ssh.exe) sia il server (sshd.exe), permettendo agli utenti Windows di connettersi a server SSH o anche di esporre un server SSH su Windows senza installare software di terze parti. La configurazione e i file di configurazione sono simili a quelli delle versioni Unix/Linux di OpenSSH, con alcune differenze dovute all’ambiente Windows.

La release inclusa in Windows tende ad avere un certo ritardo rispetto alle ultime versioni del progetto OpenSSH. Ad esempio, le funzionalità più recenti come gli algoritmi post-quantistici non son completamente disponibili in Windows: è necessario che Microsoft aggiorni la build ufficiale.

Per verificare la versione di OpenSSH su Windows, basta aprire una finestra PowerShell o il Prompt dei comandi e digitare quanto segue (attenzione perché la V deve essere maiuscola):

ssh -V

Ti consigliamo anche

Link copiato negli appunti