Superare dhparam -check sembra un verdetto sulla configurazione Diffie-Hellman della vostra VPN. Non lo è. Il comando confronta un file di parametri con l’aritmetica che dichiara di soddisfare, e non dice nulla sul fatto che la dimensione del gruppo corrisponda alla vostra politica o che il tunnel carichi quel file. Leggerlo come una revisione di sicurezza è l’ipotesi che conviene correggere per prima.

Un file di parametri contiene un numero primo e un generatore. La validità è una proprietà di quei numeri, mentre la forza è un giudizio sul vostro modello di minaccia e sui vostri pari, e le due cose non sono intercambiabili.

Cosa conferma davvero il controllo di validità

Eseguite il controllo sul file che avete e leggete la risposta. openssl dhparam -in dh.pem -check -noout esegue i controlli dei parametri e sopprime l’output codificato. Un messaggio che i parametri sembrano corretti significa che i valori sono strutturalmente coerenti; non significa che un gruppo corto sia accettabile nel vostro ambiente.

La generazione senza -dsaparam produce numeri primi sicuri, dove anche (p-1)/2 è primo, ed è per questo che richiede così tanto tempo. Il percorso in stile DSA costruisce i parametri più in fretta e li converte in forma DH, e il manuale OpenSSL collega a questo uso requisiti aggiuntivi di chiavi nuove. Nessuna delle due costruzioni è un segreto di sessione: il file è materiale di configurazione pubblico, non la chiave privata del certificato né il segreto condiviso del canale di controllo.

Leggete dimensione e generatore prima di giudicare il file

Un risultato di validità significa di più quando sapete cosa è stato validato. Stampate i parametri con openssl dhparam -in dh.pem -text -noout, poi annotate la lunghezza del primo e il valore del generatore.

Confrontate quella lunghezza con una politica scritta invece che con un’abitudine. Se il vostro requisito è un gruppo con nome approvato da uno stack TLS moderno, un file generato a mano può essere l’artefatto del tutto sbagliato. Annotate entrambi i numeri nel registro delle modifiche perché il prossimo revisore non debba ricavarli di nuovo.

Non trasformate un’ispezione in una rigenerazione

Il modo di fallire qui è un comando che sembra un controllo e si comporta come un generatore. Aggiungere una lunghezza in bit, come in openssl dhparam -check 2048, chiede nuovi parametri e il file di input viene ignorato. Un’opzione del generatore può fare lo stesso. Se volevate solo ispezionare, passate -in e -check e nulla che descriva una dimensione.

Scrivere l’output sopra il percorso originale merita la stessa diffidenza, perché il manuale avverte che la scrittura su file non è atomica. Un arresto anomalo a metà scrittura lascia un file di parametri troncato e un servizio che non si avvierà.

Allineate il gruppo al protocollo, non a una moda

La politica di dimensione è una decisione che lo strumento non può leggere al posto vostro. Un gruppo di campo finito da 2048 bit è un minimo comune e i gruppi più grandi costano tempo di stretta di mano, quindi scegliete la cifra che la vostra linea di base nomina e scrivetela. I gruppi molto usati non sono deboli perché sono pubblici; l’oscurità non aggiunge nulla qui.

Dove lo stack supporta gruppi con nome approvati, seguite quella disposizione documentata invece di generare parametri insoliti per farli sembrare unici. Un gruppo con nome è qualcosa che un pari può riconoscere e un revisore può cercare, il che vale più di un file su misura che nessuno può classificare.

Confermate che la VPN carichi il file

Un file di parametri corretto che nessun processo legge non cambia nulla. In OpenVPN la direttiva del server è dh con un percorso, e le installazioni che si basano su ECDH o sullo scambio di chiavi TLS 1.3 possono impostare dh none. Controllate la configurazione in esecuzione, non un modello, poi confermate che client e pari negoziano la stessa costruzione.

Chiudete il cerchio con le prove che vi servono davvero: il gruppo negoziato dal tunnel, la lunghezza dei parametri nel file e la riga di politica che quella lunghezza soddisfa. Un controllo superato è una sola voce di quell’elenco. Trattarlo come la risposta intera è il modo in cui un gruppo corto sopravvive a un audit che avrebbe dovuto coglierlo.

Articoli correlati