"I messaggi sono protetti con la crittografia end-to-end": è una frase che compare in molte app di messaggistica. Significa qualcosa di preciso e importante, ma non significa che le tue conversazioni siano al sicuro da qualsiasi rischio. Vediamo cosa garantisce questa tecnologia, come funziona e dove si fermano le sue tutele.
Cifratura in transito e cifratura end-to-end
La differenza fondamentale è tra due modelli.
- Cifratura in transito: il messaggio è cifrato tra il tuo telefono e il server, e tra il server e il destinatario. Ma sul server viene decifrato e può essere letto da chi lo gestisce, da chi lo compromette o da chi ottiene legalmente l'accesso.
- Cifratura end-to-end: il messaggio viene cifrato sul tuo dispositivo e può essere decifrato solo sul dispositivo del destinatario. Il server trasporta dati che non è in grado di leggere.
Con la cifratura end-to-end il fornitore del servizio non possiede le chiavi. Anche volendo, non può consegnare il contenuto dei messaggi.
Attenzione: non tutte le app la usano per impostazione predefinita. Telegram, per esempio, applica la cifratura end-to-end solo alle "chat segrete", mentre le chat normali e i gruppi sono cifrati soltanto tra dispositivo e server.
Il protocollo Signal
Il riferimento in questo campo è il protocollo Signal, sviluppato per l'omonima app e adottato anche da WhatsApp e da altri servizi. Combina più meccanismi.
Chiavi pubblicate in anticipo
Ogni dispositivo genera una chiave d'identità a lungo termine e un insieme di chiavi temporanee, e ne carica le parti pubbliche sul server. Così puoi avviare una conversazione cifrata con qualcuno anche se in quel momento il suo telefono è spento: il tuo dispositivo combina le chiavi pubblicate con le proprie e calcola un segreto condiviso iniziale.
Il doppio ingranaggio
Il cuore del protocollo è il Double Ratchet, il "doppio cricchetto". A ogni messaggio la chiave usata cambia:
- un primo meccanismo deriva una nuova chiave da quella precedente, come un ingranaggio che gira solo in avanti;
- un secondo meccanismo, a ogni scambio di risposte, introduce nuovo materiale casuale tramite uno scambio di chiavi Diffie-Hellman.
Ne derivano due proprietà importanti:
- forward secrecy: se un attaccante ruba le chiavi attuali, non può decifrare i messaggi passati, perché le chiavi precedenti sono state cancellate;
- recupero dopo la compromissione: dopo qualche scambio, il nuovo materiale casuale esclude di nuovo l'attaccante dai messaggi futuri.
I codici di sicurezza: l'unica difesa contro l'impostore
La cifratura end-to-end protegge dal server, ma solo se stai davvero cifrando per il dispositivo del tuo interlocutore. In teoria un server malevolo potrebbe consegnarti una chiave pubblica falsa e inserirsi nella conversazione.
Per questo le app offrono un codice di sicurezza o numero di sicurezza: una sequenza di cifre o un codice QR derivato dalle chiavi di entrambi. Se lo confronti di persona o tramite un canale fidato e coincide, sai che nessuno si è interposto. Quando l'app ti avvisa che il codice di sicurezza di un contatto è cambiato, di solito significa che ha cambiato telefono o reinstallato l'app; per conversazioni delicate, verifica di nuovo.
Cosa la cifratura end-to-end non protegge
I metadati
Il server sa in genere chi parla con chi, quando, con quale frequenza e da quale indirizzo IP. Questi metadati possono rivelare molto. Alcune app cercano di ridurli al minimo, ma il livello di protezione varia molto da servizio a servizio.
I backup
Se i messaggi vengono salvati in un backup sul cloud non cifrato end-to-end, la protezione della chat viene aggirata: il backup è accessibile al fornitore del cloud. Diverse app offrono backup cifrati con una password o una chiave scelta dall'utente: è opportuno attivarli, oppure disattivare i backup sul cloud.
Il dispositivo
La cifratura protegge i messaggi in viaggio, non sul telefono. Chi ha accesso al dispositivo sbloccato, o vi installa uno spyware, legge i messaggi come li leggi tu. Un codice di blocco robusto, aggiornamenti regolari e attenzione alle app installate sono parte integrante della sicurezza delle chat.
Le persone
Il destinatario può fare uno screenshot, inoltrare il messaggio o mostrarlo ad altri. Nessuna crittografia risolve un problema di fiducia nell'interlocutore.
Consigli pratici
- Scegli app che applicano la cifratura end-to-end a tutte le chat, non solo su richiesta.
- Verifica i codici di sicurezza con i contatti più importanti.
- Controlla le impostazioni di backup e cifrali o disattivali.
- Usa i messaggi a scomparsa per le conversazioni che non serve conservare.
- Proteggi il telefono con un codice robusto e mantienilo aggiornato.
In sintesi
- La cifratura end-to-end impedisce al server di leggere i messaggi, a differenza della sola cifratura in transito.
- Il protocollo Signal cambia chiave a ogni messaggio e offre forward secrecy e recupero dopo una compromissione.
- I codici di sicurezza servono a escludere un impostore nella conversazione.
- Metadati, backup non cifrati e dispositivi compromessi restano punti deboli.
- La sicurezza delle chat dipende tanto dalla crittografia quanto dalle abitudini di chi le usa.