La crittografia si basa sull’assunto che i cifrari utilizzati non siano decifrabili, se non in tempi che rendano ragionevolmente vano un attacco, tramite le tecnologie attualmente disponibili. I cifrari sono funzioni matematiche che permettono la cifratura del dato sfruttando algoritmi definiti e, in seconda battuta, la decifratura del dato stesso.
I cifrari moderni possono essere categorizzati:
- In base a come lavorano sui blocchi di bit:
- Block chipers – algoritmo di cifratura a blocchi: algoritmo a chiave simmetrica operante su un gruppo di bit di lunghezza definita organizzati in un blocco;
- Stream chipers – algoritmo a flusso: algoritmo a chiave simmetrica nel quale i bit che codificano il testo sono cifrati indipendentemente l’uno dall’altro e nel quale la trasformazione dei simboli successivi varia con il procedere della cifratura;
- In base alle chiavi utilizzate per la cifratura:
- Algoritmi a chiave simmetrica: la chiave di cifratura è la stessa utilizzata anche per la decifratura del dato;
- Algoritmi a chiave asimmetrica: vengono utilizzate due diverse chiavi per il processo di cifratura e decifratura, cioè chiave pubblica, che viene distribuita, e chiave privata che resta personale e segreta.
Indice degli argomenti
Algoritmi di cifratura: DES, RSA, AES e crittografia quantistica
La crittografia, intesa come la necessità di nascondere messaggi a testi segreti agli occhi dei nemici, è antica come l’uomo. Solo negli Anni 70, perl, iniziarono ad essere resi pubblici i primi algoritmi crittografici moderni.
DES (Data Encription Standard)
Era la metà degli Anni 70 quando il governo statunitense, attraverso il National Bureau of Standards, regolò il primo standard pubblico di cifratura, chiamato Data Encription Standard (DES).
DES è un block chiper che utilizza secret shared encryption, selezionato da NBS nel 1976 come FIPS ufficiale e che successivamente ha goduto di un uso diffuso a livello internazionale. Esso si basa su un algoritmo a chiave simmetrica che usa una chiave a 56 bit.
DES è stato lo standard di fatto per la crittografia sino alla fine degli Anni 90, quando cadde sotto i colpi di Deep Crak in poco più di 22 ore.
In seguito a tale evento è avvenuta la pubblicazione di Triple DES, testo in chiaro crittografato in tre iterazioni, standard sino al 2002, quanto è stato sostituto da AES.
La pubblicazione di DES aveva coinciso anche con il rilascio di RSA, nel 1977, primo standard di crittografia ad introdurre il concetto di firma digitale. RSA è un algoritmo per crittografia a chiave pubblica, il primo adatto sia per la firma che per la crittografia. RSA viene oggi utilizzato nei protocolli di commercio elettronico ed è ritenuto essere sufficientemente sicuro.
AES (Advanced Encryption Standard – Rijndael)
Rappresenta uno fra i più recenti capitoli della storia della crittografia ed è attualmente uno fra gli standard di encryption più diffusi. AES è uno standard di encryption a chiave simmetrica. Annunciato dal NIST nel novembre 2001 dopo un processo di standardizzazione di cinque anni che aveva visto lo studio di quindici diverse proposte, AES venne ufficialmente impiegato dal governo statunitense dal maggio 2002. Rijndael è inoltre il primo codice accessibile pubblicamente e approvato da NSA per il trattamento delle informazioni top secret.
RSA (Rivest-Shamir-Adelman)
È un sistema a chiave pubblico introdotto nel 1978 che a oggi è ancora ritenuto sicuro. Esso è stato oggetto di numerosi test e non sono mai state rilevate falle significative, nonostante da un punto di vista teorico esista la possibilità di decifrare un messaggio conoscendo la chiave pubblica. L’enorme potenza di calcolo necessaria per effettuare un tale attacco, rendono tuttavia la possibilità teorica di fatto impossibile nella realtà. RSA è basato infatti sull’elevata complessità computazionale della fattorizzazione dei numeri primi; ad esempio RSA-2048 utilizza due numeri primi con più di trecento cifre. Visto che il problema della fattorizzazione è stato irrisolto per molti anni, tale sistema è considerato come una solida base per un sistema di crittografia sicuro.
Crittografia quantistica
È una tecnologia che utilizza proprietà della meccanica quantistica nella fase di scambio della chiave, in modo da evitare che la stessa possa essere intercettata da un attaccante senza che le due parti coinvolte se ne possano accorgere. La crittografia quantistica risolve il problema di dover effettuare lo scambio della chiave su un canale sicuro, aprendo nuovi scenari nel campo della crittografia.
I principi fondamentali della sicurezza delle informazioni
I principi fondamentali della sicurezza delle informazioni sono:
- Autenticazione: qualsiasi processo che permetta di verificare che qualcuno sia effettivamente chi sostiene di essere. Ad esempio, username e password, smart card, impronte digitali;
- Riservatezza: solo chi ha diritto di accesso alle informazioni deve essere in grado di trattarle. Il dato deve essere protetto da accessi non autorizzati, garantendo la privacy dei soggetti coinvolti. La crittografia è il metodo migliore per fare sì che le informazioni rimangano confidenziali sia in transito che in archivio. Solo le persone autorizzate sono in grado di decodificare il dato e trattarlo;
- Integrità: l’integrità garantisce che non possano essere apportate modifiche a sistemi e dati senza avere il corretto permesso;
- Non repudiation: significa che un messaggio trasferito è stato inviato e ricevuto da coloro che affermano di aver inviato e ricevuto il messaggio stesso. Non repudiation è un metodo per garantire che il mittente non possa negare di aver inviato il messaggio e che il destinatario non possa negare di averlo ricevuto;
- Disponibilità: la disponibilità ha l’obiettivo di garantire che i sistemi informativi siano sicuri e che i dati siano accessibili.
Public Key Encryption: l’uso delle chiavi nella crittografia
La crittografia a chiave pubblica si riferisce ad un tipo di architettura che utilizza una coppia di chiavi per cifrare e decifrare i dati. Una delle due chiavi è pubblica, che chiunque può utilizzare per crittografare il messaggio del proprietario della chiave stessa. Il messaggio crittografato viene inviato ed il destinatario utilizza la chiave privata per decifrarlo.
La crittografia a chiave pubblica viene chiamata crittografia asimmetrica, in quanto utilizza due chiavi diverse.
La crittografia a chiave pubblica viene utilizzata in svariati ambiti, in quanto è in grado di rispondere alle necessità di:
- riservatezza, attraverso il meccanismo di funzionamento della tecnologia di cifratura e la distribuzione delle chiavi;
- non repudiation, attraverso firme digitali.
Firma digitale: il metodo per autenticare messaggi e documenti
Una firma digitale è un protocollo che ha lo stesso valore di una firma reale, in quanto il mittente è in grado di apporre una marca che indichi in maniera inequivocabile come il messaggio sia stato prodotto da un individuo specifico. Una firma digitale inoltre è in grado di garantire che il messaggio non sia stato modificato in transito.
Certificati: rendere sicuri i siti Web
Un certificato a chiave pubblica è un documento che utilizza una firma digitale per collegare una chiave pubblica e una identità, come ad esempio il nome di un organizzazione. Il certificato può essere utilizzato per vari scopi ed il più comune è certamente quello implementato nei siti HTTPS. Il browser Web è in grado di verificare il fatto che il Web server a cui ci si sta collegando sia effettivamente lecito, garantendo all’utente navigazione sicura ed al riparo da attacchi di varia natura come MTM (Man in the Middle).
I certificati sono ad oggi fondamentali per qualsiasi sito Web, in quanto sono in grado di impedire che i dati in transito tra client e server vengano intercettati e letti in chiaro, come avverrebbe in caso di protocollo HTTP. I certificati contengono generalmente tutte le informazioni relative all’entità che ha effettuato richiesta di emissione: nome, cognome, indirizzo, nome dell’azienda, authority emittente e validità. La validità è un parametro fondamentale in quanto indica il lasso di tempo in cui i browser dei client indicheranno il sito come sicuro.
Crittografia: a quali bisogni delle aziende risponde
La cifratura è in grado di rispondere ai seguenti bisogni:
- riservatezza delle informazioni in transito;
- riservatezza delle informazioni archiviate;
- limitazione dei danni in caso di fuga di dati per imperizia;
- certezza delle comunicazioni.
La cifratura nelle aziende si declina nei seguenti ambiti:
- cifratura delle comunicazioni in transito;
- cifratura del dato;
- cifratura del supporto/volume di archiviazione dati;
- non repudiation.
La crittografia per la riservatezza delle informazioni in transito
La riservatezza delle informazioni in transito è necessaria per qualsiasi tipo di dato trasferito, sia esso una comunicazione con un server web o un’e-mail.
Per quanto riguarda le comunicazioni con server Web, lo standard attuale è divenuto l’implementazione di un protocollo sicuro SSL/TLS. In seguito all’apertura di una connessione verso un server su canale HTTPS, il browser chiede al server di identificarsi ed il server stesso fornisce come credenziali il proprio certificato. Il browser è in grado di esaminarlo e validarlo con le CA che gli sono note. A questo punto il browser invia un messaggio al server contenente la chiave pubblica del server stesso. Il server risponde con un messaggio elaborato tramite la chiave privata; il browser è quindi in grado di iniziare una connessione cifrata con algoritmo simmetrico. Utilizzare tecnologie di questo tipo è essenziale in quanto esse garantiscono una buona protezione da attacchi Man in the Middle.
Tutti i protocolli che utilizzano TLS (IMAPS, SMTPS ecc.) basano il proprio funzionamento su una procedura analoga a quella indicata per HTTPS.
Le informazioni in transito, oltre che a livello di protocollo, possono essere protette anche a livello di dato. Esempio attuale è la generazione di messaggi e-mail che, al momento dell’invio, incapsulano il contenuto con tecnologia HTML5 e richiedono all’utente una password per procedere alla cifratura del messaggio. Il destinatario, per aprire l’e-mail incapsulata nel file HTML dovrà ricevere dal mittente la password utilizzata attraverso un altro canale (SMS, telefono).