Internet è il postino dei nostri tempi che nessun cane azzannerà.
”Pronto? Scusa Stefano, sono Giorgio, mi devi risolvere un grosso problema. Vorrei mandare dei messaggi d'amore ad Afet, la mia amante turca, ma temo che mia moglie possa leggere le mie email. Possiamo risolvere la faccenda in qualche modo? Ho provato ad imparare il turco ma incontro qualche difficoltà con i verbi”.
Chissà quante volte vi hanno chiesto una cosa del genere! A parte gli scherzi capita di sovente che qualcuno voglia legittimamente celare ad occhi indiscreti la propria corrispondenza via internet. In fondo è come se, usando la posta ordinaria, usassimo sempre delle cartoline che potenzialmente tutti possono leggere: nessuno obietta se invece noi preferiamo utilizzare delle buste sigillate. Vediamo come aiutare il nostro infedele amico usando Thunderbird, Enigmail e GNUPGP.
Per evitare a Giorgio un corso intensivo di lingua turca (che comunque non lo metterebbe al riparo da sorprese...) utilizzeremo la crittografia e PGP (Pretty Good Privacy), uno dei più celebri software per la crittografia a chiave pubblica utilizzato per codificare le e-mail. Con PGP è infatti possibile crittografare un messaggio in modo che solo il destinatario possa leggerlo, inoltre è possibile autenticare il mittente del messaggio, rispondendo in questo modo alle esigenze fondamentali di riservatezza e sicurezza della corrispondenza privata.
Il problema storico della crittografia classica si può riassumere in questo modo: per potere cifrare un messaggio si deve utilizzare una chiave (segreta o simmetrica) con cui effettuare la cifratura. La stessa chiave deve essere poi ovviamente usata per decodificare il messaggio cifrato. Per intenderci, se Giorgio volesse inviare un messaggio codificato ad Afet, avrebbe il problema di fargli avere anche la chiave segreta, con la quale ella potrà decodificare il messaggio.
Purtroppo però Afet sta a qualche migliaio di chilometri e Giorgio non ha un canale sicuro per trasmettere la chiave: questo sistema non potrebbe funzionare, data la forte probabilità che la chiave venga intercettata dalla moglie investigatore. Se io non voglio che un messaggio e-mail sia letto da altri, sarebbe inutile codificarlo in modo convenzionale e poi inviare la chiave usata per la codifica ancora per e-mail...
Il problema della trasmissione della chiave segreta venne risolto con la chiave pubblica, un'idea semplice e geniale, introdotta da Whitfield Diffie e Martin Hellman negli anni '70 (se avete avuto a che fare con SSL e compagnia avete sicuramente già sentito parlare di loro).
La chiave pubblica è uno schema asimmetrico che opera con una coppia di chiavi: una pubblica e una privata. La chiave pubblica viene usata per la criptazione e la chiave privata per decodificare il messaggio.
L'algoritmo matematico che effettua questa operazione è tale che:
Ogni utente tiene per sé la chiave privata e diffonde il più possibile la chiave pubblica.
Questo risolve tutti i problemi del metodo classico visto prima: se Giorgio vuole inviare un messaggio ad Afet, codifica il messaggio usando la chiave pubblica di quest'ultima. Solo Afet, che ha la corrispondente chiave segreta e privata, è in grado di decodificare e leggere il messaggio.
Pretty Good Privacy unisce in sé il meglio di entrambi i metodi visti sopra: è un sistema ibrido.
Quando Giorgio usa PGP per criptare il messaggio il programma genera una session key con la quale codifica il testo. Questa session key è una chiave che viene usata una sola volta e viene generata in modo casuale e ogni volta diverso; una volta che le informazioni sono state criptate la session key viene a sua volta criptata con la chiave pubblica: il risultato è il testo criptato che viene spedito ad Afet assieme alla chiave pubblica contenente la session key usata per quella operazione.
Per leggere il messaggio Afet usa la propria chiave privata per decriptare la session key che PGP adopera per decifrare il messaggio.
La combinazione dei due sistemi permette di unire la sicurezza del metodo a chiave pubblica con la velocità del metodo tradizionale: il secondo è circa 1.000 volte più veloce del metodo pubblico, mentre questo fornisce una soluzione al problema della distribuzione della chiave segreta.
Nonostante la chiave pubblica e quella privata siano correlate, è molto difficile ma non impossibile, disponendo di molto tempo e di un computer sufficientemente potente , risalire alla chiave privata partendo da quella pubblica: di conseguenza è importante generare delle chiavi con una lunghezza tale da garantirne la sicurezza e allo stesso tempo sufficientemente compatte per essere agevolmente distribuite.
Per inviare un messaggio ad un destinatario dove reperire la sua chiave pubblica? Nei keyserver, database automatici di chiavi pubbliche PGP, accessibili ed utilizzabili da tutti. Ogni keyserver ha in pratica un enorme public ring, a cui tutti possono aggiungere la propria chiave pubblica e che funziona come una sorta di elenco pubblico del telefono. Di keyserver ce ne sono diversi in tutto il mondo, e si aggiornano automaticamente tra di loro, quindi è sufficiente utilizzarne uno qualunque.
Anche noi, come vedremo dopo, quando generiamo la nostra chiave pubblica la invieremo ad un keyserver.
Il PGP presenta anche altre funzioni tra cui menziono l' autenticazione del mittente del messaggio attraverso la firma digitale. Se siete interessati a questa possibilità potete reperire informazioni aggiuntivi nella rete.
Ora vediamo come mettere in pratica quanto visto. Questa operazione va fatta sia sul PC di Giorgio che su quello di Afet.
Utilizzeremo:
Ora vediamo le operazioni da fare, fate qualche test per provare il sistema.
Prima di poter inviare una Email crittografata a qualcuno dobbiamo la prima volta procurarci la sua chiave pubblica. Possiamo richiederla via email oppure, se è stata pubblicata, scaricarla dal keyserver.
Fatto! Ora il destinatario riceverà la mail criptata e digitando la passphrase della sua chiave privata potrà leggerla in tutta sicurezza.
Se non avete capito non preoccupatevi: la procedura è più difficile da spiegare che da realizzare. Con qualche prova sarete a posto.
Giorgio! Ma una foto di Afet ce la mandi ??? :D
Recent comments
1 min 12 sec ago
1 week 1 day ago
3 weeks 20 hours ago
4 weeks 3 days ago
7 weeks 6 days ago
13 weeks 1 hour ago
13 weeks 3 days ago
15 weeks 5 days ago
16 weeks 3 days ago
19 weeks 22 hours ago