Crittografia: cos’è e a cosa serve
Il problema della sicurezza nelle reti riveste una grande importanza dato che le reti, per loro natura, non sono sicure: basta un analizzatore di rete come un semplice packet sniffer tipo Wireshark per intercettare le informazioni che viaggiano su di essa. Da questo presupposto nasce il concetto di crittografia.
La sicurezza nelle reti
In relazione alla diffusione di documenti e transazioni commerciali in rete, possiamo individuare
diversi aspetti connessi al problema della sicurezza:
- la segretezza;
- l’autenticazione;
- l’affidabilità dei documenti.
Che cos’è la crittografia?
Per definizione, La crittografia rappresenta l’insieme delle tecniche che consentono di realizzare la cifratura di un testo e la decifratura di un crittogramma. Ma cosa significa esattamente? Prima di tutto è importante definire a cosa ci si riferisce con cifratura. La cifratura è un processo attraverso il quale un messaggio viene reso incomprensibile per gli estranei. Per fare questo viene usato un algoritmo di cifratura che stabilisce una corrispondenza tra i simboli in chiaro e simboli cifrati: i simboli in chiaro vengono utilizzati per creare il messaggio in chiaro (plain text) che, una volta cifrato, diviene un testo criptato (cipher text). Le regole di cifratura devono essere note sia al mittente del messaggio che al destinatario, in modo che quest’ultimo possa, alla sua ricezione, effettuarne il decriptaggio e comprenderne il significato. Quindi, sostanzialmente la crittografia serve a fare in modo che la comunicazione tra due interlocutori sia segreta e non intercettabile.
Che cos’è un algoritmo crittografico?
Un algoritmo crittografico è un metodo matematico utilizzato per garantire la sicurezza dei dati in una comunicazione, tramite l’utilizzo di una chiave per codificare e decodificare le informazioni. Ci sono diversi tipi di algoritmi crittografici, come la crittografia a chiave simmetrica, molto veloce, in cui la stessa chiave viene utilizzata per codificare e decodificare i dati, e la crittografia a chiave asimmetrica, molto lenta, in cui vengono utilizzate chiavi diverse per codificare e decodificare i dati. Uno dei primi algoritmi crittografici utilizzato è stato il DES, che utilizza una chiave simmetrica, cioè la stessa chiave viene utilizzata sia per cifrare che per decifrare. Ma qui sorge un nuovo problema:
Come scambiare una chiave simmetrica senza che essa venga sniffata?
Utilizzare un algoritmo simmetrico piuttosto che un algoritmo asimmetrico offre parecchi vantaggi, come la velocità e la semplicità. Qui, però, ci troviamo di fronte al problema dello scambio della chiave che non è di non poco conto ed esistono due metodi per risolverlo:
- utilizzare l’algoritmo di Diffie-Hellman
- utilizzare un algoritmo asimmetrico
L’algoritmo di Diffie-Hellman è un metodo per scambiare in modo sicuro una chiave simmetrica tra due interlocutori. La forza di questo algoritmo è che lo scambio della chiave avviene attraverso l’invio di valori che non corrispondono in alcun modo alla chiave, ma dopo opportuni calcoli i due interlocutori disporranno della stessa chiave. Senza entrare in tecnicismi o esempi con i calcoli, allego qua sotto una semplice immagine che permette di comprendere a grandi linee il reale funzionamento.
L’utilizzo di un algoritmo asimmetrico per lo scambio delle chiavi è nettamente più sicuro, prevenendo un attacco man-in-the-middle. Come si nota dall’immagine sottostante, un algoritmo asimmetrico funziona con chiavi pubbliche e private. Se un interlocutore vuole inviare un testo cifrato all’altro interlocutore, utilizzerà la chiave pubblica che gli viene fornita per cifrare il messaggio ed una volta ricevuto verrà decifrato con la chiave privata che solo il destinatario conosce. In questo modo, al posto di un qualsiasi messaggio, è possibile inserirci una chiave simmetrica di sessione.