Cryptology Academy · Lezione

Selezionare AEAD per i sistemi di produzione

Applichi un modello decisionale per scegliere lo schema AEAD più adatto in base al modello di minaccia e ai requisiti prestazionali.

Lezione 4 di 413 passaggi

Selezionare AEAD per i sistemi di produzione è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

AES-GCM: la scelta predefinita

AES-GCM è l'AEAD predefinita corretta per la maggior parte dei sistemi in produzione. È accelerato via hardware tramite AES-NI su praticamente tutti i processori x86 e ARM64 moderni, è ampiamente supportato dagli stack TLS e dalle librerie crittografiche e beneficia di un'analisi crittografica approfondita e di una vasta esperienza di utilizzo nel mondo reale.

Limiti dei nonce di AES-GCM

AES-GCM utilizza un nonce da 96 bit. Con nonce generati casualmente, il limite del compleanno viene raggiunto dopo circa 2^32 messaggi con la stessa chiave; a quel punto la probabilità di collisione dei nonce diventa non trascurabile. Per i sistemi ad alto volume, è essenziale gestire i nonce tramite un contatore oppure ruotare la chiave dopo 2^32 messaggi.

ChaCha20-Poly1305: quando AES-NI è assente

ChaCha20-Poly1305 è la scelta corretta quando AES-NI non è disponibile o quando la generazione dei nonce potrebbe non essere affidabile. È veloce in software, è progettato per operare in tempo costante, risultando resistente ai side channel temporali, ed è la suite di cifratura obbligatoria in TLS 1.3 per gli ambienti privi di supporto hardware per AES.

AES-GCM-SIV per la sicurezza dei nonce

Quando i nonce potrebbero essere riutilizzati o devono essere generati in modo deterministico, ad esempio nei servizi stateless o nel key wrapping, AES-GCM-SIV (RFC 8452) è la scelta corretta. Offre resistenza all'uso improprio dei nonce con un costo prestazionale moderato rispetto ad AES-GCM standard.

AEGIS per il throughput massimo

AEGIS-128L è la scelta corretta quando è richiesto il massimo throughput di cifratura e la presenza di AES-NI è garantita su tutti gli ambienti di distribuzione. Gli apparati di rete ad ampia larghezza di banda, i concentratori VPN e i sistemi di cifratura dello storage sono candidati ideali, poiché AEGIS offre vantaggi prestazionali significativi rispetto ad AES-GCM.

Scelta della dimensione della chiave: 128 o 256 bit

AES-128 offre 128 bit di sicurezza, considerati adeguati per tutte le minacce attuali e prevedibili derivanti dal calcolo classico. AES-256 offre un margine aggiuntivo contro i progressi futuri ed è richiesto da alcuni framework di conformità, come la classificazione TOP SECRET secondo NSA Suite B. Per la maggior parte delle applicazioni, AES-128 è sufficiente ed è leggermente più veloce.

Considerazioni sulla dimensione dei nonce

AES-GCM utilizza nonce da 96 bit, mentre AES-GCM-SIV utilizza anch'esso nonce da 96 bit. XSalsa20 (utilizzato in libsodium secretbox) usa nonce da 192 bit, rendendo sicura la generazione casuale dei nonce per un numero molto maggiore di messaggi con la stessa chiave. I nonce più grandi riducono il rischio di riutilizzo accidentale nei sistemi ad alto volume.

Librerie consigliate

Utilizzi librerie AEAD consolidate invece di implementare direttamente le primitive. libsodium offre una semplice API AEAD (crypto_aead_aes256gcm_encrypt, crypto_aead_chacha20poly1305_ietf_encrypt). Google Tink incapsula le primitive AEAD aggiungendo la rotazione e il versionamento delle chiavi. Le librerie TLS native del linguaggio gestiscono automaticamente AEAD per la sicurezza del trasporto.

Migrazione da AES-CBC

AES-CBC con un HMAC-SHA256 separato, nell'ordine EtM, è accettabile ma ormai obsoleto. La migrazione ad AES-GCM semplifica l'implementazione sostituendo due primitive con una sola ed elimina il rischio di una composizione errata. I dati a riposo cifrati con CBC-HMAC dovrebbero essere ricifrati con AES-GCM durante una rotazione programmata delle chiavi.

Test delle implementazioni AEAD

Le implementazioni AEAD devono essere testate con i vettori di test ufficiali di NIST per AES-GCM e dell'RFC 8439 per ChaCha20-Poly1305. Verifichi sempre che gli errori nella verifica del tag di autenticazione facciano restituire un errore dalla decifratura, anziché un testo in chiaro parziale. Una gestione errata degli errori è un difetto comune nelle implementazioni.

Diagramma decisionale

Scelga AES-GCM quando AES-NI è presente e i nonce sono unici. Scelga ChaCha20-Poly1305 quando AES-NI è assente o i nonce sono meno affidabili. Scelga AES-GCM-SIV quando il riutilizzo dei nonce è motivo di preoccupazione. Scelga AEGIS quando la priorità è il throughput massimo con AES-NI garantito. Non scelga mai modalità non AEAD per i nuovi sistemi.

Verifica della scelta dell'AEAD

Un microservizio stateless distribuito su più repliche deve cifrare i dati e non può coordinare un contatore condiviso dei nonce. Quale modalità AEAD è più appropriata?

Riepilogo della lezione: scegliere l'AEAD giusta

AES-GCM è la scelta predefinita. ChaCha20-Poly1305 copre gli ambienti privi di AES-NI. AES-GCM-SIV gestisce gli ambienti in cui i nonce non sono sicuri. AEGIS massimizza il throughput quando la presenza di AES-NI è garantita. Utilizzi librerie come libsodium o Tink invece di comporre manualmente le primitive. Esegua sempre i test con i vettori ufficiali e verifichi che gli errori di autenticazione siano gestiti correttamente.

Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «Selezionare AEAD per i sistemi di produzione» è gratuita?

Sì — il testo completo di «Selezionare AEAD per i sistemi di produzione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Selezionare AEAD per i sistemi di produzione»?

Applichi un modello decisionale per scegliere lo schema AEAD più adatto in base al modello di minaccia e ai requisiti prestazionali. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Selezionare AEAD per i sistemi di produzione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Perché Encrypt-Then-MAC è migliore di MAC-Then-Encrypt
  2. Modalità SIV: AEAD resistente all’uso improprio dei nonce
  3. AEGIS: cifratura autenticata ad alta velocità
  4. Selezionare AEAD per i sistemi di produzione
← Torna a Cryptology Academy