La crittografia simmetrica moderna
La crittografia simmetrica è uno dei pilastri della sicurezza informatica moderna. Si basa sull’uso di una singola chiave segreta che deve essere condivisa tra il mittente e il destinatario per cifrare e decifrare i dati.
Come funziona
-
Cifratura:
Il mittente utilizza un algoritmo di crittografia e una chiave segreta per trasformare i dati in un formato incomprensibile (testo cifrato).
Esempio:"CIAO"→"Xl3A#f"(testo cifrato). -
Trasmissione:
Il testo cifrato viene inviato al destinatario. -
Decifratura:
Il destinatario utilizza la stessa chiave segreta per trasformare il testo cifrato nel messaggio originale.
Esempio:"Xl3A#f"→"CIAO".
Caratteristiche principali della crittografia simmetrica moderna
-
Efficienza:
È estremamente veloce, soprattutto se confrontata con la crittografia asimmetrica, ed è ideale per cifrare grandi quantità di dati. -
Modalità operative:
Gli algoritmi simmetrici operano in modalità come:- ECB (Electronic Codebook): Cifra i blocchi di dati in modo indipendente (vulnerabile ad attacchi di pattern).
- CBC (Cipher Block Chaining): Cifra ogni blocco combinandolo con il precedente, rendendo i dati più sicuri.
- GCM (Galois/Counter Mode): Aggiunge autenticità e integrità ai dati cifrati.
-
Algoritmi principali:
- AES (Advanced Encryption Standard): Uno standard moderno per la crittografia simmetrica, utilizzato in applicazioni come il Wi-Fi sicuro (WPA2), i file system e i protocolli web (TLS).
- ChaCha20: Algoritmo a flusso veloce e sicuro, ideale per dispositivi mobili e IoT.
Limitazioni della crittografia simmetrica
-
Gestione delle chiavi:
La chiave segreta deve essere condivisa tra mittente e destinatario in modo sicuro. Questo processo può diventare complesso in reti con molti utenti. -
Vulnerabilità all’intercettazione:
Se un attaccante ottiene la chiave, può decifrare tutte le comunicazioni.
Utilizzi della crittografia simmetrica
- Protezione delle comunicazioni:
- Protocollo TLS per connessioni HTTPS.
- Reti Wi-Fi sicure (WPA2/WPA3).
- Crittografia dei file:
- Protezione dei dati in sistemi come BitLocker e FileVault.
- Applicazioni in tempo reale:
- Chat crittografate e videochiamate.
Hashing
L’hashing è un processo che trasforma un input (di qualsiasi dimensione) in una stringa di lunghezza fissa, chiamata hash. A differenza della crittografia, l’hashing non è reversibile: non è possibile ottenere l’input originale dall’hash.
Come funziona
-
Input:
Un dato (ad esempio una password o un file).
Esempio:"password123". -
Algoritmo di hashing:
Un algoritmo (come SHA-256) calcola una rappresentazione univoca dell’input.
Esempio:SHA-256("password123")→
ef92b778bafe771e89245b89ecbc7... -
Risultato:
L’hash risultante è una stringa di lunghezza fissa, indipendentemente dalla dimensione dell’input.
Caratteristiche principali dell’hashing
-
Unidirezionalità:
Una volta calcolato l’hash, non è possibile risalire all’input originale. -
Deterministico:
Lo stesso input produrrà sempre lo stesso hash. -
Sensibilità ai cambiamenti:
Anche una piccola modifica all’input produce un hash completamente diverso.
Esempio:SHA-256("password123")→ef92b778bafe771e...SHA-256("Password123")→b12c4f2327de4c9f...
- Collisioni rare:
È altamente improbabile che due input differenti producano lo stesso hash, anche se non impossibile. Per esempio, con un algoritmo di hashing che produce hash a 256 bit (come SHA-256), ci sono $2^{256} \approx 1.1579209 \times 10^{77}$ possibili hash distinti, rendendo le collisioni estremamente improbabili per un numero ragionevole di input.
Algoritmi principali
-
MD5: Obsoleto, ma ancora usato in contesti non critici (ad esempio, checksum dei file).
Il checksum dei file è un valore numerico calcolato a partire dal contenuto di un file. Questo valore serve a verificare l’integrità del file: se anche un solo bit del file cambia, il checksum risultante sarà diverso. In questo modo, è possibile rilevare errori o alterazioni nel file. È molto utilizzato nei contesti di trasmissione dei file (reti).
-
SHA-256 (Secure Hash Algorithm 256-bit): Sicuro e ampiamente utilizzato per firme digitali e certificati.
-
bcrypt e Argon2: Specifici per la protezione delle password, con un’attenzione particolare alla lentezza per contrastare attacchi brute force.
Utilizzi dell’hashing
-
Protezione delle password:
- Le password vengono memorizzate come hash nei database.
- Al login, il sistema confronta l’hash della password inserita con quello memorizzato.
-
Verifica dell’integrità:
- Hash di file o dati per controllare che non siano stati modificati.
Esempio: Verifica dell’integrità di un file scaricato.
- Hash di file o dati per controllare che non siano stati modificati.
-
Firme digitali:
- L’hash di un messaggio viene cifrato per creare una firma digitale.
Differenze principali tra crittografia simmetrica e hashing
| Caratteristica | Crittografia Simmetrica | Hashing |
|---|---|---|
| Reversibilità | Reversibile (con la chiave segreta) | Non reversibile |
| Scopo principale | Protezione dei dati in transito o archiviati | Verifica dell’integrità o protezione password |
| Chiave | Richiede una chiave segreta | Non richiede una chiave |
| Utilizzo | Comunicazioni sicure, crittografia file | Controllo password, verifica dell’integrità |
Conclusione
La crittografia simmetrica e l’hashing risolvono problemi diversi, ma complementari:
- La crittografia simmetrica è ideale per proteggere i dati in modo bidirezionale, consentendo il recupero dei dati originali da parte di chi possiede la chiave.
- L’hashing, invece, garantisce la protezione o l’integrità dei dati in modo unidirezionale, senza la possibilità di risalire all’originale.
Entrambi sono strumenti fondamentali nella sicurezza informatica moderna e vengono spesso utilizzati insieme, ad esempio nei protocolli di autenticazione e nei sistemi di gestione delle comunicazioni.