Ti connetti via SSH al tuo server e vedi questo:

** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.

Spaventoso. Analizziamolo.

La Minaccia: Store Now, Decrypt Later

La crittografia SSH di oggi è matematicamente forte; romperla richiederebbe a un computer classico milioni di anni.

Ma i computer quantistici giocano con regole diverse. Un computer quantistico sufficientemente potente che esegue l'algoritmo di Shor può rompere la matematica che protegge la maggior parte della crittografia a chiave pubblica di oggi in ore, non milioni di anni.

Ecco la parte inquietante: computer quantistici abbastanza potenti per farlo non esistono ancora. Quindi perché preoccuparsi ora?

Perché gli avversari, specialmente gli stati-nazione, stanno già registrando il traffico crittografato oggi con l'intenzione di decrittografarlo in seguito quando l'hardware quantistico sarà maturo. Questo è l'attacco "store now, decrypt later" (SNDL). Se stai inviando qualcosa di sensibile via SSH che deve rimanere segreto per i prossimi 10-20 anni, sei già a rischio.

Classico vs Post-Quantum Key Exchange

Tutti gli algoritmi classici (Diffie-Hellman, curve ellittiche) sono vulnerabili ai computer quantistici che eseguono l'algoritmo di Shor.

Post-Quantum (sicuri contro i computer quantistici)

AlgoritmoVersione OpenSSHNote
sntrup761x25519-sha512@openssh.com8.5+Disponibile ora. Ibrido: NTRU Prime + X25519.
mlkem768x25519-sha2569.9+Gold standard. Ibrido: ML-KEM-768 + X25519. Standardizzato NIST FIPS 203.

Entrambi sono algoritmi ibridi: sovrappongono un algoritmo post-quantistico a uno classico. Questo significa che ottieni il meglio di entrambi i mondi.

mlkem768x25519-sha256 è quello da preferire a lungo termine. ML-KEM (precedentemente Kyber) è stato selezionato dal NIST come meccanismo standard di incapsulamento della chiave post-quantistica nel 2024.

La Soluzione

Passo 1: Modifica /etc/ssh/sshd_config

Aggiungi l'algoritmo PQ all'inizio della lista. OpenSSH negozia in ordine; il primo match vince.

Se sei su OpenSSH 9.9+:

KexAlgorithms mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

Se sei su OpenSSH 8.5–9.8:

KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

Passo 2: Valida e Riavvia

Valida sempre prima di riavviare: sudo sshd -t

Se nessun errore: sudo systemctl restart sshd

TL;DR

L'era quantistica non è ancora arrivata, ma la finestra per prepararsi è ora. Aggiornare KexAlgorithms richiede due minuti ed è una delle vittorie più facili nell'hardening dei server moderni.