“Laura, allo stato attuale non posso offrirti che la mia parola. Sono un impiegato del Governo di alto livello nel settore dell’Intelligence. Spero tu capisca quanto sia rischioso per me contattarti e per questo ti chiedo di seguire alcune precauzioni prima che ti dica di più. Non sarà una perdita di tempo per te. Quello che segue potrà sembrarti complicato ma ci vorranno pochi minuti con un po’ di esperienza tecnica. Vorrei la conferma tramite email che le chiavi che ci siamo scambiati non siano state intercettate e sostituite da chi ti sorveglia. Conferma che nessuno ha mai avuto una copia della tua chiave privata e che la tua password è sicura. Considera che il tuo avversario può tentare un miliardo di combinazioni al secondo. Se il supporto in cui conservi la chiave e la password è stato hackerato le nostre comunicazioni saranno decriptate. Sappi che queste precauzioni non sono a prova di bomba, servono solo a darci un po’ di respiro. Infine, se pubblicherai il materiale io sarò subito implicato, questo non deve dissuaderti dal divulgare le informazioni che ti darò. Grazie e sii prudente.”

Questo il contenuto della prima email crittografata che Edward Snowden, all’epoca però uno sconosciuto che si firmava Citizen Four, inviava alla regista e produttrice cinematografica e documentarista americana Laura Poitras nel 2013. Le annunciava di avere parecchio materiale “scottante” in relazione alla sorveglianza di massa che stava perpetrando l’NSA, l’Agenzia per la Sicurezza Americana, a scapito dei cittadini americani e del mondo intero dopo l’11 settembre.

Del resto la Poitras nel 2006 aveva girato un film sulla guerra in Iraq che la fece finire in una lista nera segreta e le fece subire decine di interrogatori alla frontiera statunitense, un altro su Guantánamo e la Guerra al Terrorismo e tre film di una trilogia sull’America post “Torri Gemelle”. Si era occupata per anni del monitoraggio che avveniva negli Stati Uniti e il terzo film-documentario della trilogia, dal titolo “Citizenfour”, che meritò il premio Nobel come miglior documentario nel 2015, riguarda proprio la controversa vicenda di Edward Snowden e dello scandalo spionistico della National Security Agency che visse in prima persona e di cui in alto è riportato il suo epilogo.

E’ evidente che comunicazioni di tale “importanza”, ma anche più comunemente informazioni aziendali delicate come comunicazioni di password, dati di salute e giudiziari, necessitino di sistemi di protezione e segretezza forti, che invece troppo spesso nelle aziende e nelle istituzioni pubbliche ancora non si utilizzano. Pensiamo alle realtà dove senza disporre di un server email aziendale si inviano le email tra colleghi inoltrandole tramite il provider, oppure alle email che sempre più raggiungono smartphone e device mobili dei dipendenti, che sono solitamente più vulnerabili dei fratelli maggiori computer. La possibilità di perdita di tali dati diventa sempre più concreta.

Uno dei sistemi di crittografia più utilizzati e sicuri (a livello militare), utilizzato ancora oggi (e da Snowden qualche anno fa per comunicare le informazioni sulla NSA), è PGP, ossia Pretty Good Privacy con le sue evoluzioni che vedremo nel proseguo di questo articolo.

PGP – Pretty Good Privacy

Nasce nel Giugno del 1991 ad opera del programmatore statunitense Philip Zimmermann con lo scopo dichiarato di difendere i diritti civili e la libertà di espressione in un’era in cui le conversazioni potevano essere intercettate e catalogate (parliamo di circa 25 anni fa!). Già all’epoca, e proprio in quel periodo, era in discussione al Senato americano un disegno di legge in base al quale ogni software di criptazione avrebbe dovuto obbligatoriamente includere una backdoor per le agenzie goverantive. Zimmermann, uno dei maggiori visionari tecnologici degli ultimi 100 anni, creò PGP utilizzando il sistema a chiave pubblica nato nel 1976, poi divenuto Rsa negli anni ’80.

Il successo di PGP è dato dal fatto che, diversamente dai sistemi tradizionali dove per criptare e decriptare un messaggio occorre la stessa chiave “privata” conosciuta sia da mittente che da destinatario (e quindi con tutti i rischi di intercettarla quando la si comunica) e definita crittografia simmetrica, PGP invece, usando una crittografia asimmetrica (detta a chiave pubblica), è un sistema che si basa sulla generazione di una coppia di chiavi, una “privata” ed una “pubblica” che non coincidono. La chiave privata (tra l’altro protetta da passphrase) è conosciuta solo dall’utente che l’ha creata, invece la pubblica viene da questo consegnata a chi necessita di comunicare con lui. La chiave privata permette di decrittare solo se abbinata alla rispettiva chiave pubblica.

Per chiarire il meccanismo ipotizziamo che l’azienda A debba comunicare con l’azienda B. Entrambe avranno generato le rispettive chiavi private e pubbliche di PGP. L’azienda A possiede la sua chiave privata e consegna la sua chiave pubblica all’azienda B. Questa fa la stessa cosa. Si tiene la sua chiave privata e consegna la sua pubblica ad A.

A questo punto l’azienda A invia un messaggio all’azienda B criptandolo con la chiave pubblica di B. In questo modo l’azienda B che ha, e solo lei ha, la rispettiva chiave privata, inserirà la passphrase e decripterà il messaggio

Inverso ma stesso principio se il messaggio lo inviasse l’azienda B ad A.

E’ “praticamente” impossibile da una chiave pubblica risalire alla rispettiva privata. Con chiavi criptate a 1024 bit, fino a qualche anno fa, ci voleva un tempo pari all’età dell’universo per farlo.

Quanto visto sopra assolve alla funzione di protezione della Privacy e Riservatezza del contenuto del messaggio offerto da PGP. Funzione per lo più principale di tale strumento.

Supponiamo ora che l’azienda A, invece di inviare un messaggio criptato all’azienda B utilizzando la sua (di B) chiave pubblica, inviasse un messaggio non criptato a B utilizzando la propria chiave privata (di A), quindi in qualche modo “firmasse” il messaggio. Permetterebbe così all’azienda B, utilizzando la chiave pubblica di A in proprio possesso, di farla combaciare con la privata di A, e sarà così certa dell’Autenticità del mittente. Infatti la chiave pubblica di A potrà combaciare solo con la sua chiave privata. Questa funzione può essere utile quando si vuole essere certi della provenienza di un messaggio/documento/software, funzione spesso usata quando si scarica qualche documento da internet. Ci verrà messa a disposizione la chiave pubblica del mittente il quale a sua volta avrà messo online un documento firmato con la sua chiave privata. Una volta scaricato lo confronteremo con la chiave pubblica e sapremo se il documento è davvero di chi dice di essere.

Infine, una terza opzione permessa da PGP è quella di unire la funzione di Privacy e Riservatezza (attraverso la criptazione di un messaggio), all’Autenticazione del mittente. Garantirà così al contempo di raggiungere entrambi i risultati presentati sopra singolarmente. Per far ciò l’azienda A invierà un messaggio criptato all’azienda B utilizzando la chiave pubblica dell’azienda B, e in aggiunta lo firmerà con la propria chiave privata. In questo modo quando l’azienda B riceverà il messaggio criptato potrà decriptarlo utilizzando la propria chiave privata, ma potrà anche accertarsi del mittente confrontando la firma di questo con la sua chiave pubblica.

SICUREZZA DI PGP

Pur utilizzando algoritmi di criptazione asimmetrica, PGP e tutti i software che utilizzano tale sistema, non sono immuni da problemi di sicurezza.

Affinché la sicurezza del protocollo di criptazione a chiave pubblica sia mantenuta occorre che le chiavi generate abbiano un livello di protezione almeno a 1024 bit (oggigiorno superabile di molto, parliamo anche di 4096 bit) e che la chiave privata resti nella disponibilità della sola parte che l’ha creata. Inoltre la passphrase deve essere sufficientemente lunga da non poter essere facilmente indovinata o trovata con metodiche di “brute force” qualora la condizione precedente non sia rispettata. Infine occorre accertarsi che il/i dispositivi su cui la chiave privata è conservata non sia stato violato permettendo così il furto di questa.

Un’altra problematica si chiama Man In The middle (uomo in mezzo) si ha quando un malintenzionato riesce a sostituire la chiave pubblica di qualcuno con la propria. Se ad esempio l’azienda A volesse inviare un messaggio a quella B avrebbe bisogno della sua chiave pubblica. Se il malintenzionato riuscisse a far avere ad A la sua chiave pubblica spacciandola per quella di B, allora tutte le successive comunicazioni sarebbero per lui decriptabili, essendo lui il titolare della corrispondente chiave privata. Inoltre l’azienda B potrebbe anche non accorgersi di nulla se il malintenzionato avesse l’accortezza di rispedire a questa i messaggi intercettati provenienti dall’azienda A cifrandoli con la vera chiave pubblica di B. Per ovviare a questa problematica uno dei metodi più sicuri è utilizzare i certificati digitali emessi da una Autorità Certificante (CA), come avviene per il traffico web. Le CA attestano il collegamento di una chiave pubblica con il suo proprietario reale.

OPENPGP

Dopo la nascita di PGP e sulla base di questo si decise di creare un Protocollo Internet, non proprietario, per l’interoperabilità dei messaggi basati su crittografia asimmetrica. Nel 1998 nacque la RFC 2440 che venne poi rimpiazzata dalla RFC 4880 nel 2007. Vennero pertanto definiti gli standard, non solo tecnici, che tale protocollo doveva avere e da lì in poi tale protocollo venne implementato in molti degli strumenti che utilizzavano tale crittografia, in modo che tra di loro vi fosse compatibilità e diventando di fatto il protocollo sulla crittografia asimmetrica più utilizzato. Il sito ufficiale, nella sezione software, indica gli strumenti in cui è presente tale protocollo. Come si può notare sono indicati software per tutti i sistemi operativi e per i device mobili.

PGP essendo nel corso degli anni diventato un software commerciale, non viene più indicato tra i software di OpenPGP.

Di particolare interesse, e che vedremo sinteticamente, sono invece (ma non sono gli unici):

GnuPG, per il mondo Linux

GPGTools, per l’ambiente Mac OSX

Gpg4Win, per quello Windows

iPGMail, per quello iOS

GNUPG o GPG – GNU Privacy Guard

Software libero nato proprio per sostituire la suite di PGP, compatibile con lo standard OpenPGP, è distribuito sotto licenza GNU General Public License (fortemente copyleft) e fa parte del Progetto GNU. Essendo compatibile con lo standard OpenPGP possiede tutte le funzioni viste più sopra con PGP. La pagina ufficiale è: www.gnupg.org

Pur disponendo di interfacce grafiche, l’uso ottimale e più veloce di GPG lo si ha in ambiente linux/mac attraverso l’uso del terminale.

Facenti parte di GPG sono strumenti per la versione MAC OSX con cui ne condivide i comandi.

Come in tutti i software basati su OpenPGP è importante come fase iniziale, prima di cominciare a criptare e decriptare i messaggi, creare la coppia di chiavi. Dovrà esistere quindi un contenitore delle chiavi. Nei GPGTools esiste il GPG Keychain (in questo caso esiste un’interfaccia grafica, ma rimane la possibilità di fare anche questo da terminale).

Come si può vedere dall’immagine in alto, il contenitore di chiavi dei GPGTools permette di gestire le chiavi, quindi possiamo crearne nuove, importare quelle pubbliche che i contatti ci forniscono ed esportare le nostre. Nell’elenco delle chiavi è possibile capire quali sono pubbliche (pub) e quali le private (sec). Due chiavi sono presenti nella foto, una è la mia che è la coppia completa, ossia quella pubblica e quella privata, e quella sotto invece è quella pubblica del Team di GPGTools che userò per criptare i messaggi.

Una volta creata la coppia di chiavi ed aver consegnato la nostra chiave pubblica a chi dovrà comunicare con noi e possedendo la loro, potremmo cominciare le comunicazioni sicure. Supponendo di voler inviare al GPGTeam il file criptato TESTGPG.rtf (Udine – Due ragazzine..) che vedete nella foto sopra in alto a destra, apriremmo il terminale del MAC, e digiteremmo il comando cerchiato in rosso nella foto ed esattamente gpg -ea TESTGPG.rtf (il -“e” indica a gpg che deve criptare e la “a” che deve trasformare il file da codificare in modo ASCII armored utile per vederne il contenuto con un Textedit). GPG a quel punto chiederà qual è la chiave che vogliamo utilizzare per criptare il file (nel nostro caso quella di GPGTeam) e creerà un file nuovo (mantenendo il vecchio) chiamato TESTGPG.rtf.asc che se aperto con il Textedit ci permetterà di vendere il nostro testo criptato. (foto in alto).

Se invece ricevessimo un file da qualcuno che lo ha criptato con la nostra chiave pubblica, basterà digitare nel terminale il comando gpg -d nomefile (il -d chiaramente dice a gpg di decriptare), digitare quindi la passphrase della nostra chiave privata ed ecco che ci troveremo il file decriptato.

GPG4Win – GNU Privacy Guard for Windows

Immagino non sia necessario spiegare cosa questo software faccia, di certo per utilizzare GPG su Windows è uno strumento giusto.

Come si vede dalla pagina web del download, il software da scaricare è un pacchetto che contiene vari programmi utili alle varie funzioni di GPG. GnuPg è il cuore del programma ed il cuore del sistema di criptazione, Kleopatra è il programma centrale di gestione delle chiavi, GPA un’alternativa al gestore delle chiavi Kleopatra, GpgOL un’utilissima estensione per Microsoft Outlook 2003 e 2007 che, integrandosi con questi, permette di criptare e firmare le email direttamente e GpgEX un’estensione per l’Explorer di Windows che consente di firmare e crittografare i file utilizzando il menu contestuale. Infine fanno parte del pacchetto Gpg4win due manuali, uno in lingua inglese ed uno in quella tedesca.

Nella foto in alto si vede all’opera Kleopatra, il gestore delle chiavi. Nell’elenco ce ne sono due ed i concetti sulla gestione delle chiavi sono analoghi a quanto visto sopra.

La cosa interessante di Kleopatra, come si vede in foto dal menù selezionato, è che permette di firmare, criptare, verificare e decriptare, un messaggio che fosse contenuto nella clipboard, cioè negli appunti di Windows dopo aver fatto il copia. Se ad esempio seleziono e copio il testo del file visto prima TESTGpg.rtf e poi vado in Kleopatra e seleziono Clipboard e poi Encrypt, dopo aver selezionato la chiave da utilizzare per criptare, la maschera che si presenterà sarà la seguente:

E se mi porto su una nuova mail, o documento di testo, e faccio incolla, questo è quello che vedrò:

Potendo così inviare il messaggio criptato al destinatario, il quale lo decripterà con la sua chiave privata.

Se il destinatario avesse Gpg4Win basterebbe a quel punto che copiasse il testo ricevuto per email e portandosi su Kleopatra facesse Decrypt/Verify e inserisse la passphrase della sua chiave privata per ottenere il testo in chiaro.

Inoltre come visto sui PGPTools, anche Gpg4win permette di criptare/decriptare.

Come accennato su Gpg4Win, ma ciò è presente anche su GPGTools e comunque su tutto quello che costituisce il mondo di OpenGpg, esistono estensioni che permettono di abilitare in automatico le funzioni di codifica, decodifica, firma e verifica dei messaggi di posta elettronica, direttamente in molti Client di posta e addirittura sulle Web Mail.

Inoltre non dimentichiamoci che anche Gpg4Win permette di criptare e decriptare, firmare e verificare, interi file e cartelle, e non solo un testo. Dopo aver installato sul proprio pc il programma, basterà premere il tasto destro del mouse su una cartella o su un file per vedere tra le varie opzioni anche quelle relative alla criptazione. Nella foto in basso sto decidendo i parametri per criptare la cartella foto che ho sul desktop, dopo aver cliccato con il tasto destro su di essa ed aver selezionato Sign and Encrypt.

Vi rimando per approfondimenti e per scoprire tutte le potenzialità del mondo PGP, alla moltissima documentazione esistente sull’argomento presente online ed in particolar modo sulle pagine web dei vari progetti. Di ogni strumento che ho accennato ho cercato di indicare la homepage ufficiale.

iPGMail – PGP for iOS

Al giorno d’oggi non ci stupisce il fatto che sia possibile usare la crittografia di OpenPgp anche sugli Smartphone. Al momento, come dichiarato sul sito dello stesso OpenPgp, esistono delle App tanto per Android quanto per iOS. Qui illustrerò brevemente iPGMail, l’applicazione per device iOS, ma i concetti di base sono analoghi a quelli per Android.

Il programma, come è possibile vedere dall’immagine in alto a destra, si apre sul gestore delle chiavi ed ecco riproposte le mie due chiavi viste prime anche negli altri gestori. Da qui come sui gestori sul Computer, è possibile visualizzare i dettagli delle chiavi, importarne ed esportarne, crearne di nuove ed eliminarne.

Per mandare un’email criptata ad un destinatario non si fa altro che andare su Compose. In alto sulla maschera c’è la possibilità di scegliere se criptare (Encr), firmare (Sign), fare entrambe le cose (Both) o anche usare la crittografia simmetrica (Sym) e in base a quanto si sceglie cambieranno i campi di input per comporre l’email. Nell’esempio della foto ho scelto solo di criptare il messaggio e quindi ho inserito solo la chiave pubblica del destinatario Veracrypt. Dopo aver compilato il messaggio, si preme il simbolo dell’invio (in alto a destra). A quel punto viene chiesto se inviare l’email o se copiare il testo che la procedura ha criptato nella clipboard. Quest’ultima funzione può essere utile se invece di mandare una email si vuole inviare un testo criptato attraverso altri sistemi di messaggistica. Nella foto di destra in alto si vede il testo copiato nella clipboard e incollato su una nota dell’iPhone.

CONSIDERAZIONI FINALI

Questo articolo non è da considerarsi una guida all’uso di PGP o dei suoi successori. Bensì il suo scopo è quello di introdurre queste problematiche e questi strumenti sperando di far comprendere ad aziende e privati che strumenti per garantire la privacy e la sicurezza delle proprie comunicazioni esistono e sono alla portata di tutti.

Occorre inoltre precisare che gli strumenti che sfruttano il protocollo OpenPGP sono molti, e quelli che ho illustrato sinteticamente in questo pezzo sono solo una minima parte di quanto questo mondo offre.

Provate a rileggere le parole scritte nell’email da Snowden alla Poitras riportata all’inizio di questo pezzo. Per chi non conosceva già come funziona PGP dovrebbero esserci concetti finalmente comprensibili.

Consiglio vivamente a chi fosse interessato al problema della Sorveglianza e a quello della Privacy di guardare il film “Citizenfour”, premio Nobel come migliore Documentario del 2015.

PGP MI SERVE?

Credo che vista l’importanza assunta ormai dai dati all’interno delle aziende e dal fatto che tanto in azienda quanto nei computer dei privati l’era della digitalizzazione del “quanto più possibile” ha portato a conservare sempre più informazioni che vengono scambiate, e che fino ad una decina di anni fa non si vedevano, la risposta non può che essere affermativa.

E questo non nel senso di PGP/OpenPgp a tutti i costi, bensì nel senso di valutare attentamente l’adozione di protocolli di criptazione, qualsiasi essi siano, che proteggano i dati più delicati ed importanti. Non solo durante la comunicazione degli stessi, ma anche durante la loro conservazione e gestione.

Del resto la crittografia è già presente oggi in modo notevole nella vita di tutti i giorni. E’ presente nei servizi internet quando usiamo l’home banking, o quando facciamo acquisti online, lo è nelle comunicazioni tra varie sedi dell’azienda, nello scambio di email, nella conservazione dei dati in supporti criptati, nelle connessioni protette senza fili.

Non facciamoci trovare impreparati. La perdita o il furto dei dati che riguardano l’azienda ed il suo business, può mettere in ginocchio molte realtà.