Ubiqua o quasi. La crittografia è diventata una delle discipline più studiate (e con il maggior numero di applicazioni) nel settore delle scienze informatiche: la protezione dei pacchetti e dei dati che viaggiano sulla linea telefonica è uno degli argomenti più dibattuti in questo ambito e si moltiplicano le iniziative tese a rafforzare le misure di sicurezza a favore degli utenti. Basti pensare, ad esempio, al protocollo HTTPS (o alle estensioni per Chrome e Firefox che ne ampliano il campo di applicazione) e alla sua evoluzione HTTP 2; alle reti TOR e ai trucchi e consigli per restare anonimi sul web e navigare in tutta sicurezza; alle tecniche su come crittografare i dati nel cloud o sul proprio smartphone Android.
I campi di applicazione sono molteplici e, probabilmente, oggi siamo in grado di sfruttare solo in minima parte le potenzialità della crittografia per la protezione delle telecomunicazioni, siano esse via cavo o wireless. Molteplici, ovviamente, le società che si sono interessate all'argomento, sviluppando software, tool e applicazioni che utilizzano diversi protocolli crittografici per rendere illeggibili i pacchetti dati in viaggio tra i due nodi della rete e rendere di fatto inutili attacchi del tipo man in the middle.
Le chiavi crittografiche (i codici utilizzati per crittografare e decriptare i dati scambiati dai due nodi) restano di norma "nelle mani" della società che fornisce il servizio e pertanto, attaccando i loro server, è teoricamente possibile entrare in possesso del codice che permette di generare le chiavi e quindi procedere alla decrittazione dei messaggi intercettati (compito comunque tutt'altro che semplice). Per questo motivo negli ultimi anni sono stati ideate e sviluppate nuove tecniche di crittografia, come la end-to-end, che permettono di ovviare anche a questo problema.
Cosa è la crittografia end-to-end
Grazie alla tecnica crittografica end-to-end (spesso abbreviata in "etee", acronimo dell'inglese "end-to-end encryption"), gli utenti coinvolti nello scambio comunicativo avranno la certezza che, anche in caso di attacco ai server dell'azienda che eroga il servizio (come, ad esempio, WhatsApp o Telegram, nel caso di una sessione di messaggistica istantanea), i loro pacchetti dati saranno al sicuro da occhi indiscreti. La crittografia end-to-end, infatti, dà modo di crittografare i pacchetti in modo che solo i due nodi comunicanti (quello emittente e quello ricevente) siano in grado di decriptare – e quindi decifrare – i messaggi inviati attraverso la Rete. In altre parole, le chiavi crittografiche sono presenti direttamente nei computer (o negli smartphone o altro device) che inviano e ricevono ai messaggi, mentre i server della società agiscono come semplici postini, incapaci di leggere (decifrare) i messaggi in transito.
Come funziona la crittografia end-to-end
Affinché ciò sia possibile, è necessario adottare un sistema di crittografia che prevede l'utilizzo di due chiavi crittografiche: una pubblica e l'altra privata. Un software installato sul dispositivo – sia esso un computer, uno smartphone o altro – si occuperà di generare la coppia di chiavi: la prima, detta chiave privata, resterà sul dispositivo dell'utente e servirà per decifrare i pacchetti dati ricevuti nel corso dello scambio; la seconda, detta chiave pubblica, sarà condivisa con l'altro utente con cui si scambiano i messaggi e sarà utilizzata da quest'ultimo per crittografare tutti pacchetti dati indirizzati a noi. La chiave pubblica, inoltre, è progettata in modo che i messaggi crittografati possano essere decifrati solo da chi possiede la relativa chiave privata: un sistema end-to-end (traducibile con "da punto a punto" o "da nodo a nodo") nel quale sono necessarie entrambe le chiavi per spedire e ricevere messaggi "comprensibili".
In una sessione di messaggistica istantanea, ad esempio, Mario e Lucrezia danno avvio alla comunicazione stabilendo un canale e scambiandosi le rispettive chiavi pubbliche xM e yL e generando, contemporaneamente, le chiavi private zM e qL (che resteranno sui dispositivi dei rispettivi proprietari). Quando i due cominceranno a scambiare messaggi, i pacchetti generati da Mario saranno crittografati seguendo le indicazioni della chiave pubblica di Lucrezia (yL) e, una volta pervenuti sul device di Lucrezia, essi saranno decifrati utilizzando a chiave privata di Lucrezia (qL), viceversa, i pacchetti dati di Lucrezia saranno crittografati grazie alla chiave pubblica di Mario (xM) e poi decifrati da Mario stesso tramite la sua chiave privata (zM). I server del servizio di messaggistica istantanea, come detto, si occuperanno solamente di recapitare i messaggi, come se fossero un "agente cieco" incapace di leggere il contenuto dei pacchetti di passaggio.
Per fare un esempio ancora più semplice, utilizzando un'analogia postale, è come se Mario chiedesse a Lucrezia di inviargli un lucchetto aperto (la "chiave pubblica" di Lucrezia), la cui chiave di apertura (la "chiave privata" di Lucrezia) ella conserverà gelosamente a casa sua. Ricevuto il lucchetto da Lucrezia, Mario lo utilizzerà per sigillare la lettera che aveva scritto per Lucrezia ed a questo punto invierà il tutto alla sua amica. E' interessante notare che, una volta chiuso il lucchetto, Mario stesso non sarà più in grado di riaprirlo (non possedendone la chiave di apertura, rimasta sempre in mano a Lucrezia) così come ogni altra persona che dovesse entrare in possesso del messaggio sigillato dal lucchetto (ad esempio il postino che si occupa della spedizione). Lucrezia, ricevuta da Mario la missiva sigillata con il suo lucchetto, quello di cui lei ha sempre conservato la chiave (la "chiave privata"), procederà ad aprirlo e quindi a leggerne il contenuto.
Pretty good privacy e i suoi fratelli
Il primo sistema di crittografia end-to-end applicato al campo informatico è stato sviluppato dal programmatore Phil Zimmermann nel 1991. Pretty good privacy (o PGP) permette di crittografare i messaggi di posta elettronica e scambiarli con tutti i contatti della propria rubrica con la certezza che non potessero essere letti da nessun altro all'infuori del destinatario. Da allora la crittografia end-to-end ha fatto passi da gigante, raggiungendo anche il grande pubblico grazie allo sviluppo di nuovi applicativi e strumenti.
TextSecure, programma per la crittografia punto a punto per sistemi di messaggistica testuale, è stato recentemente implementato in WhatsApp, mentre iMessage (la messaggistica istantanea dei sistemi iOS e OS X) utilizza un protocollo proprietario Apple. Google, invece, sta sviluppando un proprio protocollo di crittografia end-to-end open source da implementare all'interno di Chrome e liberamente scaricabile da GitHub.
I pericoli della crittografia end-to-end
Purtroppo, nemmeno la crittografia end-to-end è completamente al riparo da attacchi hacker che utilizzino tecniche di ingegneria sociale ("social engineering" in inglese): è ancora possibile, infatti, ingannare l'utente e riuscire ad entrare in possesso delle chiavi crittografiche end-to-end fingendosi uno dei destinatari del messaggio. In tal modo il social hacker può avviare uno scambio di pacchetti – sotto forma di messaggi, ad esempio – e mettere in atto tecniche di spoofing per riuscire a decifrare il contenuto dei pacchetti e la chiave crittografica che le accompagna. Una volta ottenuta la chiave, l'hacker sarà in grado di decifrare i pacchetti inviati anche ad altri nodi esattamente come fosse uno dei destinatari "leciti" dei messaggi stessi.
Un altro punto debole del sistema è rappresentato dai due nodi comunicanti. Nel caso in cui l'hacker riuscisse a penetrare le difese di uno dei due nodi (computer o altro device impegnato nella comunicazione criptata) riuscirebbe a impossessarsi delle chiavi private ivi contenute e accedere direttamente ai dati che interessano. Insomma, anche il sistema di crittografia meglio articolato non sarà mai sicuro al 100% se i nodi coinvolti nello scambio comunicativo non curano alla perfezione la sicurezza del loro sistema informatico.
Sei sicuro di proteggere davvero i tuoi dati e i tuoi dispositivi connessi online? Scarica il nostro ebook gratuito per conoscere i trucchi e i consigli per aumentare la tua sicurezza in rete.