La crittografia nasconde i byte; l'autenticazione li dimostra
Riservatezza e integrità sono proprietà separate, ed è possibile avere la prima senza la seconda. Un cifrario che si limita a nascondere i dati decritterà qualsiasi cosa gli venga data, inclusi i byte che un attaccante ha alterato lungo il percorso, e consegnerà il risultato all'applicazione come se nulla fosse.
La crittografia autenticata chiude quel divario. Insieme al testo cifrato produce un tag di autenticazione, e la decrittazione fallisce del tutto quando il tag non corrisponde. Per una cassaforte questo conta più di quanto sembri: l'alternativa è visualizzare silenziosamente un file manipolato.
Cosa combina davvero AES-GCM
AES-GCM è una costruzione consolidata che fornisce entrambe le proprietà in una volta. Crittografa con AES in modalità counter e calcola un tag di autenticazione sul testo cifrato, così che una singola operazione offra riservatezza e rilevamento delle manomissioni.
La costruzione vale solo quanto i suoi input. Dipende da un nonce unico per ogni crittografia sotto una data chiave, e dal fatto che quella chiave sia derivata e memorizzata correttamente. Nessuno dei due è implicato dal nome dell'algoritmo.
Perché la gestione dei nonce è la modalità di guasto silenziosa
Un nonce è un valore che non deve mai ripetersi per la stessa chiave. Riutilizzarne uno in una costruzione in modalità counter mina le garanzie che la modalità dovrebbe fornire e può esporre relazioni tra i record crittografati.
Questo è un dettaglio di implementazione che nessuna scheda dello store menzionerà, ed è uno dei modi più comuni in cui un design altrimenti standard va storto. È una domanda legittima da porre a qualsiasi cassaforte che pubblichi documentazione tecnica.
La derivazione delle chiavi e la conservazione delle chiavi sono controlli separati
Derivare una chiave da ciò che digiti è un problema; mantenere sicura quella chiave derivata mentre l'app è chiusa è un altro. Una cassaforte può fare bene il primo e male il secondo.
Trattali come due domande con due risposte: quale funzione trasforma la credenziale in materiale di chiave e a quale costo, e dove risiede la chiave risultante tra una sessione e l'altra. Gli archivi di chiavi della piattaforma esistono proprio per rispondere alla seconda.
Cosa cercare nella documentazione
- Una costruzione di crittografia autenticata nominata, non solo una dimensione della chiave.
- Una dichiarazione sull'unicità del nonce per ogni crittografia.
- Se nomi di file e metadati sono protetti insieme ai corpi dei file.
- Derivazione delle chiavi e conservazione delle chiavi descritte come meccanismi distinti.
- Un chiaro fallimento in caso di mancata corrispondenza dell'autenticazione, anziché una visualizzazione parziale o al meglio possibile.
Leggere le affermazioni con spirito critico
- Equiparare un'etichetta di chiave a 256 bit a un design completo.
- Ignorare la gestione dei nonce perché l'algoritmo è standard.
- Presumere che la crittografia autenticata protegga uno schermo sbloccato: non lo fa.
Cosa non copre l'autenticazione
Il rilevamento delle manomissioni si applica ai record che la cassaforte gestisce. Non dice nulla sulle copie che hanno lasciato la cassaforte, su un sistema operativo compromesso che osserva il risultato decrittato o su qualcuno che legge lo schermo mentre il file è aperto.
La crittografia autenticata è una garanzia sui dati memorizzati a riposo. È una garanzia forte, e una garanzia ristretta.
Leo inizia con un test non sensibile: «Cerca una costruzione di crittografia autenticata nominata nella documentazione tecnica». Poi, Leo segue la seconda verifica: «Controlla se nomi di file e metadati sono protetti oltre ai corpi dei file». Questo scenario fittizio illustra il processo decisionale; non è un resoconto di test di prodotto.
- Equiparare un'etichetta di chiave a 256 bit a un design completo
- Ignorare la gestione dei nonce
- Presumere che la crittografia protegga uno schermo sbloccato
AES-GCM previene l'eliminazione?
No. Protegge riservatezza e integrità, non disponibilità.
Autenticazione significa accesso dell'utente?
Qui significa autenticazione crittografica dell'integrità, non accesso all'account.