🔑 Crittografia

Cifratura end-to-end nelle chat: come funziona e i suoi limiti

Cosa significa davvero cifratura end-to-end nelle chat, come funziona il protocollo Signal, a cosa servono i codici di sicurezza e dove resta il rischio.

"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.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche