La crittografia autenticata restituisce due cose insieme: testo cifrato che nasconde il contenuto e un tag che consente al destinatario di rilevare manomissioni. In passato queste funzioni venivano assemblate da pezzi separati, e le cattive combinazioni producevano guasti sottili. Le costruzioni moderne fissano la combinazione e le condizioni in cui vale. La parola autenticata qui si riferisce al tag, non a una persona.

Entrambe le garanzie riguardano il pacchetto protetto e nulla al di fuori.

Due garanzie in una costruzione

La crittografia risponde se un osservatore può leggere questo; l’integrità risponde se è stato alterato. Un tunnel ha bisogno di entrambe, perché il contenuto modificato è peggio di quello illeggibile. AEAD definisce come combinarle sotto una chiave, insieme ai dati associati che vengono autenticati ma non cifrati. Il destinatario rifiuta l’input che non supera il controllo.

I dati associati legano i campi visibili al controllo. Quali campi dipende dal protocollo, e non è una promessa che ogni indirizzo esterno sia diventato segreto: un campo può essere coperto dal tag e restare leggibile sulla rete.

Il nonce non è un dettaglio

Chiavi e nonce vanno gestiti correttamente, e il riuso di un nonce fallisce male. Ripetere un nonce sotto una chiave può rivelare relazioni tra messaggi e minare del tutto la garanzia di integrità. Per questo il protocollo, non l’applicazione, possiede la generazione e l’ordine dei nonce.

È una condizione della garanzia, non un suggerimento implementativo. Nonce trascurati non offrono la proprietà annunciata.

La protezione dalla ripetizione è stato separato

Un vecchio pacchetto valido può essere ripetuto mentre il suo tag resta intatto, perché il tag prova l’autenticità e non la freschezza. Gestire la ripetizione richiede uno stato proprio: numeri di sequenza, una finestra e una regola su cosa accettare. Quello stato vive nell’implementazione del protocollo e non ha nulla a che vedere con la scelta del cifrario. Un tunnel con cifratura forte e senza protezione dalla ripetizione accetta ancora il traffico di ieri.

I due meccanismi cooperano senza essere lo stesso, e uno può essere corretto mentre l’altro manca.

Cosa il tag non vi dice

L’identità del peer è stabilita da certificati o chiavi precondivise, non dal fatto che un cifrario sia autenticato. Instradamento, risoluzione dei nomi e politica di registrazione dell’operatore stanno fuori dal confine crittografico. Una negoziazione di algoritmo riuscita dice solo che i due estremi hanno concordato una suite, parla di compatibilità, non della qualità dell’implementazione su ciascun lato.

Per gli utenti: scegliete una configurazione di protocollo mantenuta e supportata. AEAD è una proprietà di quella configurazione, non un invito a costruire cifratura a mano attorno a un tunnel.

Annotate quale suite è stata negoziata, se la protezione dalla ripetizione è attiva e come vengono identificati i peer. Tre fatti, tre garanzie diverse.

Articoli correlati