Pin It

Ispirandosi all’articolo di Quanta Magazine, Cryptography That Can’t Be Hacked, apparso quiRiccardo Aragona, ricercatore di tipo A  presso l’Università dell’Aquila, decripta per noi  alcuni segreti della crittografia.

La crittografia è l’insieme delle teorie e delle tecniche che rendono sicura la comunicazione di messaggi segreti. Sin dalla sua antichissima origine, essa è sempre in bilico tra aspetti che nell’immaginario collettivo sono considerati contrapposti: il costruire e il distruggere, i buonie i cattivi, la teoria e la pratica. Tutti concetti a priori antitetici, che però nella crittografia rappresentano due facce della stessa medaglia.

Per molto tempo la crittografia è stata utilizzata soprattutto in ambito governativo e militare o vista al massimo come materiale per la sceneggiatura di film o la trama di romanzi incentrati su spionaggio, codici segreti o misteri in genere. Ormai il problema di scambiarsi informazioni private, che risultino indecifrabili da terze persone, è più che mai attuale. Solo alcuni esempi sono chiamare con il cellulare, aprire l’auto con il telecomando, ritirare contante al bancomat o utilizzare le applicazioni del nostro smartphone.

Supponiamo che due persone vogliano scambiarsi dei messaggi in modo tale che una terza persona che lo intercetti, detto attaccante,non possa in alcun modo leggerlo.  Per far ciò il mittente e il destinatario si accordano sul metodo matematico, detto crittosistemao cifrario, da usare per occultare il messaggio in chiaro. Inoltre devono scegliere un segreto condiviso, chiamato chiave, che è l’unica informazione che permetta di recuperare il messaggio originale.

Alcuni ricercatori in crittografia si occupano di progettare queste tecniche matematiche di cifratura e decifratura. Il loro obiettivo è far sì che queste siano il più possibile resistenti ai tentativi da parte di un eventuale attaccante di recuperare la chiave utilizzata. Altri si occupano di cercare metodi matematici capaci di attaccare crittosistemi noti. A priori potrebbe sembrare che progettare o attaccare un sistema siano due tecnologie totalmente contrapposte, ma non è così. Infatti, da un lato trovare nuovi attacchi ad un cifrario significa, il più delle volte, cercarne le debolezze e migliorarne l’algoritmo, cercando di eliminarne le vulnerabilità. Dall’altro, potrebbe capitare che i designer di crittosistemi nascondano al loro interno una trapdoor(in italiano, botola), cioè un’informazione segreta sulla struttura del cifrario la cui conoscenza permette di aggirare la cifratura.

A questo punto, sorge spontanea una domanda. È possibile conoscere il limite tra chi progetta e chi attacca, tra buoni e cattivi, tra bene e male? Di primo acchito probabilmente chiunque saprebbe rispondere. Ma se chiedessimo al Dottor Jekyll, la sua risposta sarebbe così immediata? Probabilmente anche un crittografo avrebbe delle difficoltà. Infatti in questa storia non è detto che i progettatori dei cifrari siano i “buoni” e i loro attaccanti i “cattivi”. Per rafforzare questa tesi, nei quotidiani si legge spesso di hacker e informatici forensi a cui gli organi di polizia o i governi chiedono consulenza per decifrare e-mail, registrazioni e in generale file cifrati che possano essere utili a smascherare terroristi, narcotrafficanti o criminali in genere. A loro volta, questi ultimi cercano di utilizzare metodi sempre più crittograficamente sicuri per poter comunicare.

I “contrasti” che compaiono quando si parla di crittografia non sono però terminati: un’altra separazione necessaria è quella tra la teoria e la pratica. Lo stesso Einstein spiega in generale questo contrasto e ironicamente conclude: “La teoria è quando si sa tutto ma non funziona niente. La pratica è quando tutto funziona ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.”  A tal riguardo, è sempre importante, quando si progetta un crittosistema, valutarne la sua robustezza sia da un punto di vista puramente teorico e formale, sia dal punto di vista dell’implementazione, ossia del modo in cui l’algoritmo viene codificato per essere utilizzato dagli utenti. Nessuno di questi due aspetti può essere trascurato se non si vogliono rischiare gravi falle di sicurezza. Un cifrario che è stato matematicamente dimostrato essere resistente alla maggior parte degli attacchi teorici noti nella letteratura scientifica, potrebbe infatti essere vulnerabile a causa di errori di programmazione che producono perdita di informazioni. Esistono infatti alcuni tipi di attacchi, detti “side-channel”, che utilizzano informazioni collaterali al processo di cifratura e solo apparentemente poco informative, quali il consumo energetico, il rumore prodotto dalla macchina cifrante, il tempo di esecuzione, la perdita elettromagnetica, per recuperare informazioni utilizzate sulla chiave di cifratura. Per fare un esempio esplicito, un attaccante potrebbe scoprire che l’algoritmo è  più veloce a eseguire l’operazione “somma 0” piuttosto che “somma 1”, e utilizzare questa informazione per stimare la distribuzione di 0 e 1 nella chiave, misurando il tempo necessario per l’esecuzione dell’algoritmo. Infine, una volta recuperato un messaggio cifrato, potrebbe capire se la rappresentazione binaria del messaggio in chiaro corrispondente contiene più “0” o più “1” e addirittura scoprire l’intero messaggio.

Riguardo la protezione nei confronti di questi tipi di attacchi, recentemente un gruppo di ricercatori in informatica ha rilasciato una libreria di software, detta EverCrypt che gestisce strumenti crittografici ed è capace di cifrare e decifrare informazioni sensibili. Nello specifico, EverCrypt dovrebbe risolvere il problema di perdita di informazioni da parte di specifiche implementazioni di cifrari. Come scritto nell’articolo, pubblicato su Quanta Magazine,  Cryptography That Can’t Be Hacked,  alcuni ricercatori sono stati in grado di dimostrare che il loro codice è resistente a tutti i principali attacchi hacker che negli ultimi anni hanno abbattuto altri programmi. Di solito, dopo aver creato un software, un programmatore implementa anche un test del codice per verificare che il programma non abbia comportamenti indesiderati.  Tuttavia, anche se il test va a buon fine, potrebbero esistere eventi che il test non individua a causa della loro scarsa probabilità di verificarsi. Tali eventi potrebbero creare vulnerabilità al sistema e quindi essere sfruttati in un eventuale attacco. Al contrario, i ricercatori che hanno progettato EverCrypt hanno adottato una particolare strategia, detta formal verification (in italiano, verifica formale) che prevede l’utilizzo di strumenti per analizzare tutti i possibili comportamenti del programma e dimostrare che sono conformi alle specifiche del codice richieste. In altre parole, la verifica formale dovrebbe garantire che il comportamento del programma sia quello previsto da chi lo ha progettato e sia esente da molte tipologie di errore. Questo darebbe una serie di garanzie di sicurezza, riguardanti lo sfruttamento di errori di codifica da parte di molti tipi di attacchi hacker.

Inoltre, gli stessi ricercatori, nella loro descrizione di EverCrypt in GitHub, affermano anche che il comportamento di EverCrypt, nello specifico riguardo il tempo di esecuzione e la memoria a cui accede, è indipendente dai segreti gestiti dalla libreria. Quindi un attaccante che vuole provare a realizzare un attacco di tipo “side-channel”, non riesce a scoprire nulla dei segreti utilizzati. In altre parole, EverCrypt non perde mai informazioni sensibili che possono essere utilizzate in un eventuale attacco.

Tutto ciò potrebbe far pensare che EverCrypt abbia messo un punto sulla possibilità di sfruttare una perdita di informazioni per attaccare un cifrario. In realtà non è così, e meno male, altrimenti come potrebbero le forze di polizia scovare i criminali informatici, alcuni ricercatori continuare con le proprie ricerche e…Dan Brown continuare a scrivere romanzi basati su codici  segreti e misteri.  Occorre tenere in considerazione due aspetti importanti. In primo luogo, non è possibile sapere se prima o poi qualche altro ricercatore riuscirà a progettare un nuovo attacco che sfrutta altri tipi di informazioni e che ancora non è contemplato da EverCrypt. In secondo luogo, esistono già altri metodi per bypassare la crittografia dimostrata essere sicura sia da un punto di vista teorico che implementativo.  Queste tecniche non attaccano il crittosistema, ma un punto più debole del protocollo. Non viene aggirata la crittografia, che nel caso di EverCrypt può essere implementata in maniera provably secure (dimostrabilmente sicura), ma un anello più debole che si è creato all’interno del protocollo.  A tal riguardo possiamo citare l’esempio di un’azienda che è riuscita a progettare un metodo per leggere la memoria di uno smartphone di ultima generazione protetto da un PIN. Le specifiche di questo metodo sono naturalmente segrete e l’azienda in questione le vende a chi ne ha bisogno (principalmente organi di polizia). Normalmente il PIN scelto dal proprietario dello smartphone è collegato matematicamente alla chiave crittografica che cifra tutti i dati sensibili che sono contenuti nella memoria del telefono. Quindi, se un attaccante riesce a trovare il PIN, può leggere in chiaro qualsiasi dato in memoria nel telefono, anche quelli più sensibili.  Per questo motivo alcuni moderni dispositivi presentano un sistema di protezione che, dopo alcuni tentativi falliti di recupero, inibisce l’accesso alla memoria cancellandone definitivamente le chiavi di accesso. Nel 2016, l’FBI ha chiesto ad Apple di entrare nell’IPhone dell’attentatore del San Bernardino. Apple si è rifiutata e molto probabilmente FBI si è servita dell’azienda che ha progettato il metodo di lettura della memoria di uno smartphone citato poco fa, che è riuscita, mediante questo metodo, ad accedere ai dati contenuti nello smathphone del criminale.

Fin dalle sue origini, gli aspetti contrastanti descritti e lo sviluppo della matematica hanno accompagnato l’evoluzione della crittografia. Con il passare dei millenni, i contrasti sono diventati sempre più evidenti e la matematica utilizzata sempre più avanzata, anche per merito della vicendevole rincorsa tra chi progetta un cifrario e chi prova ad attaccarlo. Attendiamo con interesse i prossimi sviluppi.

Riccardo Aragona

 Riccardo Aragona

 

 

 

 

 

 

 

 

 

 

 

Pin It
this site uses the awesome footnotes Plugin