Come funziona la crittografia alla base delle applicazioni di comunicazione come WhatsApp e Signal?
Quali sono i suoi vantaggi e i suoi limiti? Scopriamoli assieme.

Negli ultimi vent’anni il mondo ha assistito ad una trasformazione radicale.
Se dapprima l’informatica aveva dato inizio al fenomeno del villaggio globale, oggi l’avvento di Internet e l’espansione dei dispositivi connessi ha cambiato il modo in cui interagiamo, lavoriamo e gestiamo le informazioni. In questo contesto, la crittografia ha assuto un ruolo sempre più rilevante, poiché passata da uno strumento specialistico ad appannaggio di pochi, a componente essenziale della vita digitale quotidiana.
Un tipo particolare di crittografia è emersa per l’ambito delle telecomunicazioni, affermandosi in breve tempo come la soluzione più efficace per garantire che solo il mittente e il destinatario possano accedere ai dati. Stiamo parlando della crittografia end-to-end, lo standard alla base della sicurezza delle comunicazioni private odierne. Ma come sempre, andiamo con ordine e affrontiamo per gradi l’argomento.
Cos’è la crittografia end-to-end?
E2EE, abbreviata in end-to-end, è un tipo specifico di crittografia che nasce dall’esigenza di proteggere le comunicazioni digitali presenti nel contesto della rete globale odierna. Il suo nome fa riferimento a come venga applicata da un estremo all’altro, ovvero dal mittente al destinatario finale.
Ciò indica che nessuno, nemmeno i server intermediari, può accedere ai dati non cifrati. L’approccio differisce in maniera netta rispetto alla crittografia tradizionale, in quanto i dati cifrati con E2EE non possono essere decifrati e ricifrati in ogni nodo di transito.
Le prime idee riguardanti questa nuova crittografia risalgono a fine anni ’70, quando prese piede lo sviluppo della crittografia asimmetrica.
Una sua prima e timida applicazione avvenne nel 1991, anno in cui Phil Zimmerman la impiegò nel suo software Pretty Good Privacy, per crittografare e proteggere le comunicazioni personali che avvenivano tramite e-mail. L’applicazione capillare della crittografia end-to-end la si ebbe nel 2003, quando le prime comunicazioni digitali e le applicazioni di messaggistica iniziarono a diffondersi sui primi smartphone e telefonini UMTS e GSM.
L’adozione di massa è stata dettata principalmente per risolvere il principale rischio delle comunicazioni digitali, ovvero il transito tra server.
Se uno di questi intermediari fosse compromesso o se il provider proprietario dello stesso si vedesse costretto a consegnare i dati alle autorità, si rischierebbe l’esposizione delle comunicazioni private tra utenti. Con la crittografia end-to-end queste rimangono criptate, garantendo così un livello di privacy molto elevato.
Ciò ha perfino fornito una risposta chiara ed efficace alle crescenti preoccupazioni sulla privacy degli utenti e le speculazioni sulla sorveglianza di massa.
Quindi si può dire che la sua adozione è avvenuta anche per scongiurare uno scenario a la Grande Fratello di orwelliana memoria.
Come funziona la crittografia end-to-end?
Il meccanismo alla base della crittografia end-to-end è quello della crittografia asimmetrica.
Questo richiede la presenza di due chiavi: una pubblica e una privata.
Ciascun attore coinvolto nella comunicazione deve possederne una coppia. La chiave pubblica rimane condivisa con chiunque, laddove quella privata rimane segreta. Nel momento in cui il mittente si mette in contatto con il destinatario, cifra il proprio messaggio sfruttando la chiave pubblica del destinatario. In tal modo solo la chiave privata corrispondente è in grado di decifrarflo. Così facendo ci si assicura che il destinatario sia l’unico in grado di leggerne il contenuto, escludendo a priori chiunque si trovi nel mezzo.
L’aspetto principale della crittografia end-to-end adottata dai sistemi di comunicazione moderna, è l’impiego dell’algoritmo Double Ratchet, introdotto a seguito dell’adozione del Signal Protocol del 2013. Questo algoritmo garantisce che le chiavi di sessione, generate nel momento in cui si instaura una comunicazione tra client e server, siano costantemente aggiornate ad ogni nuovo messaggio inviato.
In tal modo si vengono a creare due tipi di segretezza:
- Forward Secrecy: assicura che, se una chiave di sessione venisse compromessa, i messaggi inviati precedentemente restino ugualmente criptati, in quanto non decifrabili retroattivamente.
- Backward Secrecy: assicura che i messaggi futuri siano al sicuro da un’eventuale compromissione delle chiavi impiegate nella sessione attuale.
Oltre alla confidenzialità, la crittografia end-to-end garantisce anche l’integrità e l’autenticità dei messaggi.

Ciò significa che ogni messaggio include una firma digitale, o una funzione di hash, che permette di verificare che il messaggio non abbia subito alterazioni durante la trasmissione. Tale elemento può prevenire l’insorgenza di attacchi man-in-the-middle, in quanto l’attaccante si trova impossibilitato a intercettare e modificare i messaggi scambiati tra due parti. Fatte queste doverose premesse, analizziamo i due capisaldi della crittografia end-to-end.
Scambio delle chiavi
La comunicazione moderna tra un mittente e un destinatario inizia con lo scambio di chiavi, che avviene mediante il protocollo Diffie-Hellman.
Questo consente alle due parti in gioco di negoziare una chiave condivisa, senza il doverla trasmettere necessariamente in forma pubblica e leggibile. Tuttavia, è bene far notare che ne esiste una sua variante, utilizzata nel Signal Protocol, chiamata ECDH (Elliptic-Curve Diffie-Hellman). Questa non solo riduce la mole di dati da processare e i calcoli richiesti per la cifratura, ma migliora la sicurezza delle chiavi stesse, poiché si basa sulla crittografia a curva ellittica e rende ulteriormente più complesso il processo di decriptazione delle chiavi.
Algoritmo Double Ratchet
Ciascuna chiave generata durante la sessione, passa al vaglio dell’algoritmo Double Ratchet. Questo si basa su un meccanismo di aggiornamento unidirezionale, garantendo così l’impossibilità di tornare indietro. Per cui le chiavi risultano costantemente aggiornate e non riutilizzabili. L’algoritmo impiega un doppio sistema per l’aggiornamento delle chiavi: un primo meccanismo che sfrutta Diffie-Hellman (DH) e un secondo simmetrico.
Quando i partecipanti di una comunicazione si scambiano messaggi, una nuova chiave DH viene generata ad ogni nuovo messaggio inviato, rendendo inutilizzabili quelle usate precedentemente. Parallelamente opera il secondo meccanismo simmetrico. Questo non fa altro che applicare costantemente una funzione crittografica di hash, in modo che la chiave corrente sia trasformata in una nuova chiave per il messaggio successivo. La combinazione congiunta di questi due meccanismi garantisce sia la forward secrecy, che la backward secrecy, poiché, anche se una singola chiave fosse compromessa, i messaggi precedenti e futuri resterebbero ugualmente privati e criptati.
Benefici e limiti della crittografia end-to-end
La crittografia E2EE, come tutte le cose, grantisce una serie di benefici non indifferenti nel nostro contesto odierno, sempre più preoccupato per la privacy e la sicurezza delle informazioni. Tra questi si possono citare:
- Riservatezza assoluta dei dati
Solo il mittente e il destinatario accedono direttamente al contenuto del messaggio scambiato. Nessun elemento che si frappone tra loro può intercettarlo e decriptarlo. - Protezione contro attacchi man-in-the-middle
Il costante aggiornamento delle chiavi di sessione previene notevolmente l’insorgenza di un attaccante posto nel mezzo della comunicazione, poiché questi non sarebbe in grado di leggere e alterare i dati, in quanto sprovvisto delle chiavi private. - Privacy rispetto ai fornitori di servizi
La crittografia end-to-end non permette nemmeno a chi gestisce i server di comunicazione di accedere ai contenuti dei messaggi. Ciò permette di stabilire un livello di fiducia maggiore nei contesti in cui questa viene messa seriamente in discussione. Che sia nei confronti di colossi hi-tech, o di governi politici. - Affidabilità in ambienti non sicuri
In contesti con sorveglianza di massa o governi repressivi, questa crittografia è una delle poche difese a disposizione di giornalisti, attivisti e oppositori politici contro la censura e la sorveglianza. Questo perché il contenuto dei loro messaggi privati, resta ugualmente inaccessibile a chi vorrebbe tenerli sotto controllo.
Nonostante questi indubbi benefici, si devono indicare anche i suoi limiti tecnici e pratici.
- Protezione limitata ai dati in transito
Come detto prima, la crittografia end-to-end garantisce la protezione dei dati durante la trasmissione, ma non si può dire lo stesso di quelli memorizzati sul dispositivo utente. Quando uno di questi viene compromesso, le chiavi private possono essere rubate, vanificando così la protezione offerta dalla crittografia. - Metadati esposti
Anche se i contenuti delle chat sono cifrati, i metadati inerenti le comunicazioni possono ancora essere raccolti. Questi sono una collezione di informazioni in grado di rivelare schemi di comunicazione, o relazioni tra individui, utili per stilare un profilo del soggetto sorvegliato. - Gestione complessa delle chiavi di gruppo
In presenza di gruppi, o di chat con un gran numero di partecipanti, la gestione delle chiavi è problematica. Poiché non sono rari i casi di utenti che entrano ed escono da gruppi, la rotazione delle chiavi e l’autenticazione dei membri possono introdurre ritardi e complicazioni tecniche. - Difficoltà di integrazione con altri servizi
L’integrazione della crittografia end-to-end in servizi che richiedono l’archiviazione in cloud dei dati, i filtri sui contenuti, o l’indicizzazione, non è semplice. Questo perché i dati cifrati devono essere prima decifrati per poter essere letti, rischiando di esporli a terzi durante il processo. Ciò accade specialmente con servizi di cloud storage come Google Drive o iCloud.
Per concludere, la crittografia end-to-end appresenta una delle migliori soluzioni nella tutela della privacy degli utenti e per la sicurezza nelle comunicazioni moderne. Questo in virtù della sua efficacia contro l’attacco diretto ai dati e alla sorveglianza di massa. Tuttavia, i suoi limiti, concentrati prettamente sulla protezione dei dati in locale e alla complessità della gestione delle comunicazione di gruppo, richiede l’adozione di contromisure efficaci e aggiuntive. Solo in tal modo si può garantire la sicurezza completa dell’utente e salvaguardare la sua privacy.
In questo mondo che ogni giorno è un passo sempre più vicino alla digitalizzazione completa, l’adozione di moderne tecniche crittografiche e di misure cautelari aggiuntive, è la sola possibilità a nostra disposizione per proteggere i nostri dati e le nostre identità digitali da quanti desidererebbero impossessarsene.
