1. A cosa serve la crittografia?
La crittografia, come dice la parola stessa, serve a nascondere un messaggio. In sostanza, a rendere un'informazione accessibile soltanto a chi è in grado di decifrare il crittogramma. Nella vita di tutti i giorni, questo si traduce in una miriade di operazioni informatiche che vanno dall'uso del bancomat al commercio online, alle comunicazioni cifrate di forze dell'ordine e militari.
2. Esistono tanti tipi di crittografia?
All'atto pratico, la crittografia moderna si divide in sostanzialmente solo due tipi di algoritmi: crittografia a chiave unica o simmetrica e crittografia a chiave pubblica. Nel primo caso, come è facile intuire, la stessa chiave deve essere usata per cifrare e decifrare il messaggio. Quando cifriamo i files su un computer o uno smartphone, è questa che usiamo il più delle volte. Si basa su algoritmi di sostituzione progressiva che sono tanto complessi quanto più è complessa la chiave: per fare un paragone un po' azzardato ma comprensibile, pensate a quei "quadrati magici" che si trovavano una volta nelle patatine, numerati da 1 a 15 o figuranti una immagine. Scombinare il quadrato equivale a cifrare il messaggio: più caselle si spostano, più è lunga la chiave e più è difficile tornare alla situazione di partenza.
Il secondo tipo di crittografia, invece, si usa quasi esclusivamente per passare messaggi da un mittente ad un recipiente oppure per "firmare" digitalmente un messaggio e richiede quattro chiavi: due private, che sono note soltanto al mittente e al ricevente rispettivamente e due pubbliche che sono note al mondo intero – così pubbliche, che sono pubblicizzate attraverso database: ad esempio la mia chiave pubblica si trova qui. Per mandarmi un messaggio sicuro, avrete bisogno della vostra chiave privata e della mia chiave pubblica. Per decifrare il messaggio cifrato, io userò la mia chiave privata e la vostra pubblica. Il sistema a chiave pubblica è molto ingegnoso ed affascinante perché si basa su moltiplicazioni di numeri primi molto grandi e su concetti anarchici di "web of trust"; entrambi concetti molto cari ai techies (se un vostro amico vi confida di essere stato a un "key signing party", sappiate che può vestire il badge di nerd con grandissimo orgoglio). In sostanza la crittografia a chiave pubblica, che è stata inventata negli anni 60, è quello che la PEC avrebbe dovuto essere se i nostri politici non avessero per qualche motivo deciso di reinventare la ruota.
3. Quando una crittografia è “sicura”?
Una crittografia è sicura quando si verificano tre condizioni:
- La chiave usata per cifrare il messaggio è tenuta sicura
- La chiave usata per cifrare il messaggio è complessa abbastanza da non poter essere indovinata
- L'algoritmo usato per cifrare il messaggio è ben implementato
Il primo caso è semplice da capire. La chiave può essere il pin del vostro bancomat o la password della casella di posta elettronica. Possono essere complicatissime, ma se rimangono scritte su un post-it attaccato al monitor o dentro il portafogli, allora la chiave non è molto sicura. Un esempio un pochino più tecnologico – e all'atto pratico più utile - riguarda come i siti Internet con cui normalmente interagite salvano la vostra password. Per loggarvi a nFA, voi userete un username e una password, che il server di nFA dovrà salvare da qualche parte per potervi riconoscere ogni volta. Lo username è di solito salvato in chiaro. La password, invece, dovrebbe essere salvata crittata, con un algoritmo così detto di "hashing". L'hashing è quella che in inglese si chiama trapdoor function, cioé una funzione matematica asimettrica che permette di andare facilmente da A -> B ma molto difficilmente da B -> A. Diffidate sempre dei siti web che sono in grado di ricordarvi via email quale è la vostra password perché se lo fanno, vuol dire che la salvano nel loro database senza farne un hash – il che significa che chiunque riesca a impossessarsi di quel database in maniera fraudolenta avrà accesso alla vostra username e alla vostra password. Può sembrare un problema innocuo, ma non lo è perché la maggiorparte degli utenti commette l'errore fatale di usare sempre le stesse credenziali per tutti i siti web (vedi alla voce password reuse).
Il caso 2 è anche semplice da intuire: più è complicata la password, meno facile sarà indovinarla. Il livello di sicurezza di una password si chiama entropia e si misura in bit. Usando un sito come questo, potete avere una idea di quale sia l'entropia della vostra password preferita. Questo sito invece genera passwords di diversa entropia ogni volta che viene caricato.
La terza condizione riguarda l'implementazione dell'algortimo – di solito si parla di implementazione informatica. Gli algoritmi più usati sono una manciata e si basano tutti su librerie di codice aperto, che vengono continuamente scrutinate. Ogni tanto capita che un bug venga inserito nel codice e che renda l'implementazione dell'algoritmo più debole di quanto non debba esserlo (uno dei casi più gravi e più recenti è quello di heartbleed di cui si è parlato tanto l'anno scorso). Bug di questo tipo vengono scoperti periodicamente e non è mai davvero possibile capire se sono stati inseriti per errore o per malizia. Nel secondo caso, si possono anche chiamare backdoors.
4. Come si fa a decifrare un messaggio in maniera illegittima?
Per decifrare un messaggio non indirizzato a noi, bisogna necessariamente colpire una delle tre condizioni di sopra: cioé bisogna scoprire quale è la password (1) oppure indovinare quale è la password (2) oppure identificare delle falle nell'implementazione dell'algoritmo (3). Non esistono alternative. Tutti e tre i tentativi vengono usati con successo e continuamente. Il modo più semplice per colpire il punto (1) è usare quello che si chiama "social engineering". In sostanza, si tratta di contattare la persona e convincerla in qualche modo a rivelarvi la password. Funziona quasi sempre se fatto bene. Per colpire la condizione (2), invece, si ricorre alla forza bruta (brute forcing) che consiste semplicemente nel provare passwords a ripetizione. Prendete un lucchetto a combinazione numerica da armadietto delle piscina e provate ad aprirlo inserendo tutte le combinazioni possibili: avrete fatto brute forcing. Ovviamente brute forcing dipende largamente dall'entropia della password ma anche dalla sua unicità. Una password ad entropia molto alta ma poco unica, è comunque abbastanza facile da indovinare. Infine, il caso (3). Esiste una rete di professionisti del crimine atta a trovare debolezze in codice informatico. Queste debolezze vengono poi vendute sul mercato nero sotto nome di zero-days. Ogni zero-day viene venduto su forum internet nascosti ad un prezzo che va dai 30 mila dollari al milione di dollari l'uno.
5. Che tattica usano i governi per intercettare i messaggi criptati?
Essenzialmente tutti e tre i sistemi di cui ho appena parlato. La tattica (1), per un governo, è ancora più semplice da attuare. Un governo non è costretto a rubarti la password con l'inganno, può semplicemente obbligarti a rivelarla. Molti Stati utilizzano quella che si chiama "Key Disclosure Law", ovvero posono domandare a chiunque venga trovato in possesso di materiale cifrato di comunicare la chiave, pena la reclusione. Negli USA, la key disclosure law sarebbe di per sé incostituzionale perché non compatibile con il quinto emendamento – è stata però raggirata col Patriot Act. Del resto Guantanamo è un po' come Las Vegas.
La tattica (2) viene usata ogni qual volta la prima non funzioni o perché il soggetto che detiene la chiave sia morto (come nel caso recente di San Bernardino) o perché si vuole avere accesso ai dati senza che il soggetto se ne accorga. Qui giace un concetto della crittografia molto importante da capire: indovinare una password con brute force non è MAI matematicamente impossibile. È però matematicamente inattuabile. Cerco di spiegare perché. Esiste una proprietà fisica che deriva dal secondo principio della termodinamica e nota come "limite di Landauer". In sostanza, questo dice che cambiare uno stato di informazione di un bit deve avere un costo fisico che è calcolabile come kT * ln2 dove k è la costante di Boltzman e T la temperatura del sistema in gradi Kelvin. Notare che il limite di Landauer è un limite minimo teorico che si applica al computer perfetto. Le macchine di cui disponiamo oggigiorno, sono milioni di volte meno efficienti del limite di Landauer. Ma immaginiamo di riuscire, un giorno, a costruire il computer perfetto e immaginiamo di riuscire a farlo operare alla temperatura più vicina allo zero assoluto. Dato che k=1.38⋅10−16erg/∘Kelvin e data la temperatura dell'universo di 3.2K, questo computer perfetto consumerebbe 4.4⋅10−16 ergs ogni volta che deve spostare un bit. L'energia rilasciata dal Sole, in un anno è di 1.21⋅1041 ergs e se riuscissimo a raccoglierla tutta costruendo una sfera di Dyson che ruoti intorno al sole, riusciremmo a far fare al nostro computer perfetto 2.7⋅1056 operazioni, cioé potremmo risolvere per brute force una chiave ad entropia 187 bit. Se riuscissimo a raccogliere tutta l'energia del Sole, con una macchina perfetta nello spazio profondo per 32 anni, riusciremmo a decifrare un messaggio criptato con chiave a 192 bit. Se riuscissimo a incanalare tutta l'energia di una Supernova nel computer perfetto, riusciremmo a risolvere una chiave di 219 bit. La chiave usata da software di criptografia comuni è a 256bit.
Insomma, spero di aver reso l'idea che la tattica numero 2, cioé di brute forcing, non è utilizzabile né mai lo sarà, fintato che la password è abbastanza sicura. Vale anche la pena considerare che una password di 256 bit non è poì così complicata. La password "Finche la barca va, lasciala andare" è facile da memorizzare e ha un'entropia di circa 150 bit che richiederebbe 9.26 trillion trillion trillion trillion di secoli per essere decifrata con un supercomputer moderno.
Rimane la tattica (3): identificare – o inserire – bugs nell'implementazione dell'algoritmo, anche noti come backdoors.
5. Ok, allora quali sono le nostre opzioni se vogliamo "leggere i messaggi crittografati" dei terroristi e delle persone cattive?
Abbiamo chiarito che la tattica 1) è la più semplice da utilizzare per uno Stato sovrano. La tattica 2) è impraticabile se ben implementata ma relativamente semplice se la chiave è a bassa entropia. La tattica 3) richiede la complicità di chi costruisce il software. In sostanza, non esiste una soluzione universale. Se il cattivo della situazione è morto o distante; se la chiave ha alta entropia e se l'algoritmo usato non ha debolezze è impossibile per chiunque decifrare il messaggio. Hillary Clinton ha proposto, nel dibattito di Dicembre, di costruire un "Manhatthan-like project" dove scienziati e politici lavorino insieme per trovare una soluzione che non richieda l'uso estremo di backdoors.
Question: [...] Apple CEO Tim Cook said removing encryption tools from our products altogether would only hurt law-abiding citizens who rely on us to protect their data. So would you force him to give law enforcement a key to encrypted technology by making it law?
CLINTON: I would not want to go to that point. I would hope that, given the extraordinary capacities that the tech community has and the legitimate needs and questions from law enforcement, that there could be a Manhattan-like project, something that would bring the government and the tech communities together to see they're not adversaries, they've got to be partners. It doesn't do anybody any good if terrorists can move toward encrypted communication that no law enforcement agency can break into before or after. There must be some way. I don't know enough about the technology,Martha, to be able to say what it is, but I have a lot of confidence in our tech experts.
Barack Obama, pochi giorni fa, è intervenuto in una conferenza molto nerd per lanciare un messaggio simile alla comunità tecnologica: non bisogna prendere posizioni troppo assolutiste, bisogna trovare una mediazione che permetta al governo – quando necessario – di avere accesso a contenuti cifrati, similmente a quanto accade quando il governo entra in casa di un sospetto per perquisirla.
And the question we now have to ask is if technologically it is possible to make an impenetrable device or system where the encryption is so strong that there is no key there, there’s no door at all? And how do we apprehend the child pornographer? How do we solve or disrupt a terrorist plot? What mechanisms do we have available that even do simple things like tax enforcement? Because if you can’t crack that at all, and government can’t get in, then everybody’s walking around with a Swiss bank account in their pocket. So there has to be some some concession to the need to be able to get to that information somehow.”
Di cosa parlano Clinton e Obama allora? Di sfruttare il caso 1? No, il Patriot Act già da loro tutti i diritti che vogliono di estorcere passwords a chiunque senza neanche una ingiunzione del tribunale. Del caso 2? No, è matematicamente impossibile decifrare un messaggio criptato con le tecnologie umane, presenti o future. Non c'è "Manhattan-like project" che tenga. Del caso 3 allora? Direi che, nonostante entrambi lo neghino, non esiste alternativa. Del resto sappiamo dai documenti di Snowden che NSA non ha fatto altro che introdurre backdoors negli scorsi anni, in virtualmente qualsiasi prodotto hardware o software americano di largo consumo (nota per i pedanti che sanno di cosa parliamo: faccio rientrare MITM attacks nella categoria backdoors, perche' alla fine sono possibili sono con implementazioni imperfette). E cosa ora vuole FBI lo sappiamo tutti. Assodato che si tratta quindi di indebolire la crittografia, rimane quindi l'ultima domanda. Anzi, le ultime tre.
6. È possibile inserire una backdoor a cui solo il Governo abbia accesso?
È legalmente possibile che il Governo Americano regoli che ogni componente elettronico cifrato venduto negli USA abbia una backdoor a cui le autorità abbiano accesso e che metta fuori legge qualsiasi software che non abbia questa backdoor. Il che, di fatto, sarebbe l'equivalente del rendere la crittografia perfetta illegale (notare che nessun paese al mondo ha reso la crittografia illegale, nemmeno la Cina o l'Iran).
7. Sarebbe utile?
No. All'atto pratico vorrebbe dire che ogni iPhone venduto negli USA dovrebbe avere la backdoor e qualsiasi software che fa uso di crittografia perfetta generato all'estero dovrebbe essere bloccato negli USA. Si può fare, tecnicamente, ma è un po' naive pensare che il terrorista cattivo non riesca a procurarsi un telefono comprato in Europa o che non riesca a procurarsi un software "vietato". Da questo punto di vista è interessante notare che tutte le obiezioni che i pro-guns hanno usato e usano in America, si applicano perfettamente all'argomento pro-Crittografia (la differenza chiave è che se do un programma di crittografia armato in mano a mio figlio, la cosa peggiore che possa succedere è che produca un messaggio criptato...). Inoltre, procurarsi una pistola sul mercato nero non è banale. Bisogna conoscere le persone giuste e bisogna fisicamente ricevere l'arma. Scaricare un programmino da internet in maniera illegale, invece, è incredibilmente facile. Se non sapete come si fa, chiedete al vostro nipotino di 9 anni che vi ha appena masterizzato l'ultimo CD di Albano per Natale.
8. Sarebbe pericoloso per la comunità?
Sarebbe un rischio enorme. Come dicevo prima, il commercio di zero-day è un mercato da miliardi di dollari l'anno. Il Regno Unito da solo spende 4 miliardi di sterline l'anno solo per combattere questa rete di zero-days. Sarebbe solo questione di tempo prima che qualcuno trovasse un modo per accedere alla backdoor (modo 1 o modo 3, ricordate?). Sarebbe anche una grossa botta all'economia Americana perché quale grande azienda comprerebbe un sistema informatico creato negli USA sapendo che ha una backdoor che potrebbe essere aperta da chiunque, da un giorno all'altro?
Vorrei introdurre un altro aspetto: quello dei criptovirus. E cioè dell'uso che bande di malavitosi fanno della crittografia per rendere illeggibile i tuoi dati, chiedendo poi in cambio un riscatto in bitcoin che cresce più il tempo passa. Il fenomeno è recente (2013) e ne ho sempre sentito parlare come di una cosa che capita agli altri. Nell'ultimo mese però mi sono passati sotto mano ben due computer infetti (di miei clienti) e quindi sono passato da una conoscenzea indiretta di un fenemeno che sta in Internet a quache cosa di concreto che puo' capitare a chiunque. Non solo ricevendo mail ma anche visitando siti ed avendo per esempio una versione non aggiornata di Flash Player. Non ho ancora letto stime sui danni economici provocati. Chiaro che se esistesse una back door utilizzabile dai governi, un simile crimine perderebbe di significato.
Non credo che esistano risposte univoche pro o contro la soluzione 3. Per certi versi sarebbe auspicabile, per altri no.
Non sono così sicuro che
Allo stesso modo, se questo vulnerabilità cadesse in mani sbagliate potrebbe essere utilizzata proprio per un'attacco di criptolocking su larga scala.
Probabilmente, più che per scopi criminali (chiedere una riscatto), questo potrebbe essere utilizato per scopi terroristici. Ad esempio rendere illeggibili documenti bancari/finanziari, cartelle cliniche... oppure tutto quello che solo una mente criminale potrebbe immaginare.