I vecchi elenchi di digest si leggono come un verbale di decisioni crittografiche, e non lo sono. Nomi come SHA1, DSA-SHA1-old o RSA-SHA1-2 stanno uno accanto all’altro nelle vecchie build di OpenSSL perché la libreria registrava diversi punti di ingresso attorno a macchinari hash correlati. Un’etichetta RSA o DSA in quell’elenco non dice nulla su ciò che OpenVPN ha fatto a un pacchetto. Quello che state leggendo è l’inventario della libreria, non il record di una sessione.

Tre cose vanno separate prima che qualsiasi conclusione abbia senso: il nome registrato, il calcolo del digest che gli sta sotto e l’operazione che lo consuma.

Una registrazione è un’interfaccia, non un giudizio di robustezza

In OpenSSL 1.0.2 la tabella di registrazione dei digest collega nomi, alias e implementazioni in un unico file. Il vecchio descrittore DSS1 è il caso più chiaro: riporta la lunghezza dell’output di SHA-1 e chiama la routine di finalizzazione di SHA-1 pur portando un nome che suggerisce un algoritmo del tutto diverso. Lettere aggiuntive in una registrazione non implicano quindi un hash diverso, un output più lungo né un nuovo livello di sicurezza.

La stessa fonte conserva le relazioni di alias per i chiamanti più vecchi, il che spiega perché un elenco appaia affollato. È documentazione di compatibilità, non la promessa che un fornitore OpenSSL attuale esponga nomi identici.

I nomi di firma non creano firme

Un framework di firma può legare un digest all’interfaccia di un altro algoritmo perché i chiamanti esistenti continuino a compilare. Una vera firma a chiave pubblica richiede sia una chiave sia il passo di firma che la usa, e nessuno dei due è fornito da un nome in un menu. Una voce di digest di sapore RSA è un nome che un chiamante può usare, non la prova che ogni pacchetto VPN portasse una firma RSA.

È in questo passo che i testi più vecchi scivolano nel folclore. Se dovete sapere come sono stati autenticati i pacchetti, individuate l’opzione che ha scelto il meccanismo e leggete cosa fa nella versione che eseguite davvero. La pagina di manuale fornita con quella versione è l’unica descrizione che corrisponde al programma davanti a voi. Le guide archiviate descrivono la versione per cui sono state scritte, che può essere indietro di diverse convenzioni di denominazione.

Trovate l’opzione che ha consumato il nome

Nel caso di autenticazione dei pacchetti documentato da OpenVPN 2.6, auth seleziona un digest usato da HMAC, una costruzione di autenticazione dei messaggi con chiave anziché una firma di certificato. L’algoritmo di firma del certificato TLS è una proprietà separata della stretta di mano.

Con un cifrario dati AEAD l’impostazione separata auth smette di applicarsi al canale dati, mentre il suo ruolo per tls-auth resta una questione distinta. Un elenco di digest non può quindi dirvi quale hash proteggeva i pacchetti attuali, quale suite TLS è stata negoziata o come è stato firmato il certificato della controparte. Solo la configurazione effettiva più la versione possono rispondere, e solo per la connessione davanti a voi.

Annotate ciò che avete davvero

Annotate la versione di OpenVPN, la libreria crittografica collegata, le opzioni esatte nel profilo e il risultato di una connessione reale. Quell’insieme risponde a domande che uno screenshot di un menu di digest non può, e sopravvive al prossimo aggiornamento perché nomina versioni anziché impressioni.

Soprattutto, non scegliete un alias vecchio perché il suo nome suona più forte o più specifico. Scegliete la politica supportata per l’intera connessione e trattate i vecchi nomi come un resoconto di come una libreria si presentava in passato.

Articoli correlati