Enti governativi, spesso in Paesi retti da regimi totalitari ma da qualche tempo a questa parte anche in quelle che dovrebbero essere nazioni democratiche, autorità con compiti di controllo e alcune aziende private da tempo auspicano l’introduzione di norme che permettano di decodificare i messaggi crittografati scambiati attraverso la rete Internet.
Le autorità russe hanno ripetutamente esortato gli ideatori dell’app di messaggistica Telegram a fornire le chiavi per la decodifica dei messaggi inviati e ricevuti dagli utenti dell’applicazione (La Russia blocca Telegram ma manda in crisi decine di servizi di terze parti; ad inizio dicembre 2018 il Parlamento australiano ha approvato una legge che obbliga le società private a fornire gli strumenti per l’eventuale decodifica di comunicazioni crittografate; in Paesi come Russia, Turchia e Cina sono addirittura banditi i servizi che utilizzano meccanismi crittografici end-to-end (vedere più avanti); nel Regno Unito, l’ex primo ministro David Cameron ribadì più volte la sua convinzione circa l’opportunità e la necessità di bandire le comunicazioni cifrate end-to-end o comunque di ottenere, dagli sviluppatori delle varie app, gli strumenti per effettuare controlli sui dati scambiati; molti enti governativi avrebbero frequentemente richiesto, nel corso degli anni, l’inserimento di backdoor all’interno dei software di comunicazione.
La normativa approvata dai parlamentari australiani a dicembre 2018 di fatto impone l’inserimento di backdoor da parte degli sviluppatori di applicazioni che usano meccanismi crittografici.
Quasi sicuramente la normativa verrà modificata durante l’iter di approvazione finale ma è sconcertante apprendere quante volte ricorrano le medesime richieste, avanzate evidentemente da legislatori che non hanno alcuna conoscenza dal punto di vista tecnico.
Apple ha subito commentato come segue: “qualcuno ritiene che in fatto di protezioni crittografiche possano essere fatte delle eccezioni e che possa essere attivato un canale di accesso che permetta di avere visibilità sulle comunicazioni scambiate da coloro che rappresentano una minaccia per la cosa pubblica. Non è possibile. La crittografia è matematica: ogni processo che indebolisce i modelli matematici utilizzati per proteggere i dati di un singolo utente, rende facilmente attaccabili le difese utilizzate da chiunque altro. Sarebbe sbagliato minare alla base la sicurezza di milioni di persone semplicemente per svolgere investigazioni su pochi soggetti“. Non avremmo potuto dirlo meglio.
Lo stesso Bruce Schneier, un pezzo da novanta nel mondo della crittografia, ha aspramente criticato il provvedimento promosso dal governo australiano definendo “imbarazzanti” i commenti successivamente condivisi.
Da parte nostra aggiungiamo che l’eventuale “blocco” di singole applicazioni che implementano soluzioni crittografiche end-to-end è solo una goccia nel mare. Esistono infatti centinaia di soluzioni software che permettono, per fini assolutamenti legittimi, di tutelare la privacy degli utenti e di evitare che chiunque possa accedere ai messaggi contenenti informazioni personali o riservate.
Gli esperti, tra cui spiccano – oltre al nome di Schneier – anche quelli di Whitfield Diffie, Ronald L. Rivest (il primo nome che appare nell’acronimo RSA dell’omonimo algoritmo) hanno sempre ricordato che qualunque tentativo di accordare un accesso privilegiato agli enti governativi per ciò che riguarda il contenuto delle comunicazioni cifrate rischierebbe di porre a rischio di furto ed alterazione da parte di terzi dati confidenziali e informazioni di alto profilo (come quelle gestite dagli istituti di credito). Per non parlare del fatto che nella stragrande maggioranza dei casi tali interventi non sarebbero tecnicamente fattibili.
Crittografia: cos’è e come funziona, in breve
La storia della crittografia si perde nella notte dei tempi. Il primo utilizzo documentato della crittografia, ossia di metodologie aventi come obiettivo quello di rendere un messaggio incomprensibile da parte delle persone non autorizzate a leggerlo, risale al 1900 a.C. quando uno scriba egizio fece uso, per preparare una iscrizione, di geroglifici “non-standard”.
Alcuni esperti sono però convinti che la crittografia sia nata spontaneamente dopo l’invenzione della scrittura per essere impiegata nelle applicazioni più disparate: dalla consegna di missive diplomatiche ai piani di battaglia.
Esempi “storici” dell’uso della crittografia sono il “codice di Cesare” o “cifrario di Cesare”, un algoritmo che operava per sostituzione monoalfabetica (ogni lettera del testo di partenza veniva sostituita, nel testo cifrato, con la lettera che si trova, nell’alfabeto, un certo numero di posizioni dopo) e il “codice Enigma”, usato dai nazisti durante la Seconda Guerra Mondiale.
La crittografia è divenuta oggi assolutamente essenziale nelle telecomunicazioni e in tutte quelle applicazioni che necessitano la garanzia di un’elevata protezione dei dati. Sulla rete Internet sono davvero importanti i rischi che si corrono veicolando informazioni in chiaro senza quindi utilizzare alcuna forma di cifratura.
La possibilità di accedere ad Internet da parte di chiunque implica notevoli problematiche di sicurezza dal momento che la Rete è ovviamente utilizzabile anche da parte di malintenzionati e le applicazioni sono divenute sempre più delicate (si pensi, per esempio, ad applicazioni commerciali, bancarie e fiscali).
Per questo motivo da qualche tempo a questa parte tutti i grandi nomi dell’IT hanno spinto sull’adozione del protocollo HTTPS che, al tradizionale protocollo HTTP (con cui i dati viaggiano sempre in chiaro), aggiunge l’utilizzo di un algoritmo crittografico (TLS) e di un certificato digitale utile a dichiarare l’identità del server remoto e del soggetto che lo gestisce: vedere Passare da HTTP a HTTPS: l’importanza del certificato SSL.
Nel caso della posta elettronica, per esempio, è bene attivare solo account che permettano l’utilizzo del protocollo TLS cosicché i dati vengano scambiati in forma cifrata: Email: SSL, TLS e STARTTLS. Differenze e perché usarli.
Quando si parla di un algoritmo crittografico è fondamentale che esso offra:
– Autenticazione. Il processo che permette di attestare l’identità di ciascun partecipante ad una comunicazione.
– Segretezza. Indispensabile fare in modo che nessuno possa leggere un messaggio, fatta eccezione per il destinatario desiderato.
– Integrità. La protezione da modifiche non autorizzate operate sul messaggio trasmesso. Il materiale inviato al destinatario non deve poter essere alterato prima della consegna.
– Non ripudio. Un meccanismo atto a fornire la certezza che chi trasmette un messaggio non possa negare di averlo inviato.
Sulla rete un malintenzionato può effettuare il cosiddetto sniffing ossia può cercare di “spiare” il contenuto dei pacchetti dati in transito alla ricerca di informazioni utili. Questa tipologia di attacco è molto semplice da mettere in atto su reti LAN dal momento che le schede di rete Ethernet in modalità promiscua permettono di gestire tutti i pacchetti dati in transito.
Il packet sniffing non è necessariamente un’attività illecita. Un amministratore di rete può servirsene, ad esempio, per monitorare quali protocolli e quindi quali applicazioni vengono impiegate all’interno della LAN e per “smascherare” eventuali operazioni sospette.
Uno tra i migliori “packet sniffer” è l’opensource WireShark.
Un’altra modalità di attacco è lo spoofing di indirizzi IP che si concretizza nella generazione di pacchetti IP contenenti, come indirizzo IP del mittente, un indirizzo falso che non corrisponde a quello realmente usato dall’aggressore.
La crittografia non solo protegge i dati trasmessi evitando che possano essere alterati o sottratti da parte di aggressori, ma può essere adottata anche per autenticare un utente.
Crittografia simmetrica e crittografia asimmetrica
Quando si parla di crittografia sono essenzialmente tre gli schemi ai quali ci si riferisce: crittografia a chiave simmetrica, crittografia a chiave pubblica (o asimmetrica) e utilizzo di funzioni hash.
In tutti i casi il messaggio di partenza viene definito testo in chiaro o plaintext; tale messaggio viene crittografato (diventando ciphertext) così da risultare incomprensibile alle persone non autorizzate infine può essere decifrato e riportato a plaintext.
Nella crittografia a chiave simmetrica i messaggi sono decodificabili solo dalla persona che conosce la password o passphrase corretta.
Questi schemi crittografici non vengono di norma utilizzati sulla rete Internet perché la password non può ovviamente viaggiare sullo stesso canale (altrimenti cadrebbe facile preda di utenti malintenzionati interessati alla decodifica del messaggio).
La password può essere al limite condivisa usando altri canali ma non è certo l’approccio migliore per scambiarsi messaggi con utenti remoti.
Se negli algoritmi a chiave simmetrica le chiavi sono identiche e segrete, in quelli a chiave pubblica si usano una chiave pubblica e nota a chiunque mentre un’altra – privata – che è nota soltanto al legittimo proprietario.
La caratteristica dei sistemi crittografici asimmetrici consiste nel fatto che per ogni persona che voglia avviare una comunicazione “sicura” sono due le due chiavi generate: l’una detta “pubblica”, l’altra “privata”.
Fonte dell’immagine: Cheapsslshop.com
La chiave “privata” viene impiegata per decodificare un documento e deve essere mantenuta sempre segreta da parte del proprietario; la chiave “pubblica”, invece, deve essere distribuita e resa nota. Quest’ultima servirà a una qualunque persona per cifrare un’email o qualunque altro messaggio destinato al soggetto cui si riferisce la chiave pubblica.
Per cifrare un testo, quindi, con la crittografia asimmetrica basta usare la chiave pubblica del destinatario del messaggio mentre quest’ultimo, per la decodifica dovrà essere necessariamente in possesso della sua chiave privata.
Crittografia end-to-end: cos’è
Con il termine crittografia end-to-end si fa riferimento a quella comunicazione sicura, cifrata, che viene instaurata da un capo all’altro, tra mittente e destinatario del messaggio (e viceversa).
Se correttamente implementata essa consente di evitare che il messaggio scambiato utilizzando un mezzo intrinsecamente insicuro qual è la rete Internet, possa essere “intercettato” e letto da parte di soggetti terzi.
Viene così scongiurata l’eventualità di un attacco man-in-the-middle (MITM) lungo tutto il tragitto compiuto dal messaggio.
In altre parole, solo il destinatario (ed il mittente) possono leggere il contenuto del messaggio impedendone automaticamente l’eventuale lettura o modifica da parte di altri utenti, agenzie investigative, enti governativi, operatori di rete e provider.
Nel caso della crittografia end-to-end di WhatsApp o delle chat segrete di Telegram, ad esempio, i messaggi cifrati non possono essere esaminati neppure dai tecnici delle società sviluppatrici. E ciò perché i messaggi inviati vengono crittografati usando la chiave pubblica del destinatario e il destinatario potrà leggerli usando unicamente la sua chiave privata. Esattamente come fanno gli algoritmi che usano la crittografia asimmetrica o a chiave pubblica.
Come accennato in apertura i legislatori più miopi e arretrati hanno spesso tentato di bloccare, a livello normativo, proprio l’utilizzo degli algoritmi end-to-end perché la chiave privata indispensabile per decifrare i messaggi resta sempre memorizzata sui dispositivi degli utenti. E talvolta non è neppure recuperabile perché salvata in aree del sistema (si pensi alla Secure Enclave dei dispositivi Apple) il cui contenuto è a sua volta cifrato in hardware.
L’attacco base utilizzato per scardinare un algoritmo crittografico è l’attacco brute force: la complessità di questo tipo di operazione è strettamente correlata alla lunghezza della chiave utilizzata.
Come fare per difendersi da simili attacchi? Aumentando la lunghezza della chiave, utilizzando ad esempio chiavi con un maggior numero di bit.
È inoltre sempre bene utilizzare software il cui sorgente sia conosciuto e soprattutto il funzionamento dell’algoritmo crittografico utilizzato sia stato accuratamente documentato.
Quando il codice non è opensource è decisamente più difficile da controllare ed è quindi molto complesso stabilire se esso sia effettivamente privo di backdoor.
I concetti matematici, come osserva Apple, non si possono manomettere: è invece molto più probabile che qualche agenzia governativa riesca a persuadere una software house a implementare in maniera non corretta gli standard crittografici.