La crittografia end-to-end (E2EE, End-to-End Encryption) è uno schema crittografico in cui i dati sono cifrati sul dispositivo del mittente e decifrabili esclusivamente sul dispositivo del destinatario finale. Nessun intermediario — server del provider, operatore di rete, CDN — ha accesso alle chiavi necessarie per decifrare il contenuto. Il provider può sapere che una comunicazione è avvenuta tra due utenti, ma non può leggerne il contenuto nemmeno se costretto legalmente o compromesso da un attaccante.
Si distingue dalla tradizionale cifratura in transit (es. HTTPS/TLS): con TLS, i dati sono cifrati tra client e server, ma il server li riceve in chiaro e potrebbe leggerli, modificarli o consegnarli a terzi. Con E2EE, il server è un relay cieco.
Il Signal Protocol
Il Signal Protocol (Open Whisper Systems, 2013) è il protocollo crittografico che ha rivoluzionato la messaggistica sicura ed è oggi il fondamento di Signal, WhatsApp, Google Messages (RCS), Facebook Messenger (modalità segreta) e molti altri. Combina in modo elegante diversi primitivi crittografici per garantire E2EE con forward secrecy e break-in recovery.
Extended Triple Diffie-Hellman (X3DH): protocollo di key agreement iniziale che stabilisce un segreto condiviso tra due utenti che non si sono mai comunicati, usando un server come relay di chiavi pubbliche. Usa quattro coppie di chiavi Diffie-Hellman (identity key, signed prekey, one-time prekey, ephemeral key) per garantire autenticità, forward secrecy e deniability.
Double Ratchet Algorithm: meccanismo che fa «avanzare» le chiavi di cifratura ad ogni messaggio inviato e ricevuto. Combina due ratchet:
- Symmetric ratchet: ogni messaggio usa una chiave derivata dalla precedente — se una chiave viene compromessa, solo i messaggi futuri fino alla prossima rotazione sono esposti.
- Diffie-Hellman ratchet: ad ogni cambio di direzione nella conversazione si esegue un nuovo ECDH, introducendo nuovo materiale randomico nelle chiavi. Garantisce che anche dopo una compromissione, le chiavi future siano sicure (break-in recovery).
Il risultato è che ogni singolo messaggio usa una chiave di cifratura usa-e-getta derivata dall’intera storia della conversazione — compromettere una chiave non espone né i messaggi passati né quelli futuri.
Gestione delle chiavi: il problema centrale
E2EE sposta il problema della sicurezza dalla protezione del canale alla gestione delle chiavi degli utenti:
Key distribution: come il destinatario ottiene la chiave pubblica del mittente in modo affidabile? Signal usa un server centralizzato che pubblica le chiavi pubbliche degli utenti — se il server è compromesso, potrebbe pubblicare chiavi false (attacco MitM). Signal mitiga questo con safety numbers — una fingerprint della coppia di chiavi che gli utenti possono verificare out-of-band.
Multi-device: se un utente ha più dispositivi, ognuno deve avere la propria coppia di chiavi. Il mittente deve cifrare il messaggio separatamente per ogni dispositivo del destinatario. Questo complica la gestione ma è necessario per garantire E2EE su tutti i dispositivi.
Key backup: se l’utente perde il dispositivo, perde le chiavi locali e con esse la storia dei messaggi. Signal non fa backup delle chiavi (la storia è persa con il dispositivo). WhatsApp offre backup cifrato su cloud con una chiave derivata da un PIN — il backup è cifrato, ma la sicurezza dipende dalla forza del PIN e dalla fiducia nel cloud provider.
Limiti dell’E2EE
E2EE protegge il contenuto in transito e a riposo sui server, ma non protegge:
- I dispositivi endpoint: se il dispositivo del mittente o del destinatario è compromesso (spyware come Pegasus), l’attaccante legge i messaggi in chiaro sul dispositivo prima che vengano cifrati o dopo che vengono decifrati.
- I metadati: chi ha comunicato con chi, quando, con quale frequenza, per quanto tempo. I metadati non sono cifrati da E2EE e possono rivelare moltissimo indipendentemente dal contenuto.
- Il client stesso: un client che implementa E2EE in modo non verificabile (closed source) potrebbe esfiltrare le chiavi. I client open source e verificabili (Signal) offrono garanzie maggiori.