Definizione tecnica e differenza dalla crittografia in transito
La crittografia end-to-end (E2EE) è un processo crittografico che trasforma il testo leggibile in dati illeggibili sul dispositivo del mittente prima che lascino l'hardware locale. A differenza della crittografia in transito, che protegge la connessione tra un client e un server tramite protocolli come TLS, la E2EE garantisce che il server di messaggistica gestisca solo testo cifrato e non abbia mai accesso alle chiavi di decrittazione. Questa distinzione è fondamentale: la crittografia in transito protegge il percorso di rete, mentre la E2EE protegge il contenuto del messaggio indipendentemente dall'infrastruttura di consegna.
Secondo IBM, la E2EE si differenzia da altri metodi perché cifra i dati sul dispositivo del mittente, li mantiene cifrati durante la trasmissione e li decifra solo sul endpoint del destinatario. Questo significa che, anche se un provider di servizi come WhatsApp o Meta intercettasse il traffico, non potrebbe leggere i messaggi senza la chiave privata dell'utente. La sicurezza non risiede nella fiducia dell'intermediario, ma nel possesso esclusivo delle chiavi da parte dei punti finali autorizzati.
Generazione e scambio delle chiavi crittografiche
Nella maggior parte delle applicazioni di messaggistica moderne, ogni dispositivo genera una coppia di chiavi: una chiave pubblica e una chiave privata. La chiave pubblica viene condivisa apertamente con i contatti in modo che possano cifrare i messaggi destinati a quel dispositivo, mentre la chiave privata rimane memorizzata in modo sicuro nell'hardware locale e non viene mai trasmessa sulla rete. Questo meccanismo si basa sulla crittografia asimmetrica, dove la cifratura con la chiave pubblica può essere invertita solo con la chiave privata corrispondente.
Quando un utente avvia una conversazione, l'applicazione scambia queste chiavi pubbliche attraverso il server di messaggistica. Il server agisce come un semplice messaggero di chiavi, senza la capacità di decifrare il contenuto. Se un utente cambia telefono, di solito genera una nuova coppia di chiavi, che invalida le chiavi precedenti e richiede una nuova verifica dell'identità per ristabilire la fiducia crittografica tra gli interlocutori.
Verifica dell'identità tramite impronte digitali
Il punto più debole della E2EE non è la crittografia, ma la verifica dell'identità. Un attaccante può inserirsi nella conversazione se riesce a far usare alla vittima una chiave pubblica falsa invece di quella legittima. Per mitigare questo rischio, le applicazioni offrono impronte di sicurezza: codici numerici o QR derivati dalle chiavi pubbliche che entrambe le parti devono confrontare per confermare che coincidono. Se i codici non sono identici, c'è un'alta probabilità di un attacco man-in-the-middle.
L'EFF descrive questo processo come una verifica manuale tediosa, specialmente quando un utente cambia dispositivo. Tuttavia, strumenti come il Verificatore di chiavi del sistema Android cercano di unificare questo processo per le applicazioni compatibili con RCS, permettendo di scansionare codici QR in modo standardizzato. In WhatsApp, la verifica può essere effettuata scansionando un codice QR o confrontando manualmente un codice di 60 caratteri, anche se la beta introduce una verifica automatica basata sulla trasparenza delle chiavi che riduce il carico operativo per l'utente.
Rischi persistenti sui dispositivi finali
La E2EE protegge il percorso tra i dispositivi, ma non protegge i dispositivi finali se questi sono compromessi. Un malware installato sul telefono dell'utente può catturare i messaggi prima che vengano cifrati o dopo che vengono decifrati, eludendo completamente la protezione crittografica. Inoltre, i backup nel cloud, come quelli di iCloud o Google Drive, possono archiviare le chat in uno stato non cifrato o con chiavi di accesso condivise, esponendo le informazioni a rischi di accesso non autorizzato da parte del provider cloud.
Un altro vettore di attacco sono gli screenshot, che in molti sistemi operativi non sono bloccati dall'applicazione di messaggistica. Anche se il messaggio è cifrato in transito, uno screenshot locale può essere condiviso o esfiltrato senza che la E2EE possa prevenirlo. Pertanto, la sicurezza reale dipende dall'integrità del sistema operativo, dall'assenza di malware e dalla corretta configurazione dei backup cifrati.
Come auditare le impostazioni di privacy nelle tue app
Per verificare se un'applicazione implementa realmente la E2EE, l'utente deve cercare indicatori specifici nell'interfaccia. In Messenger, ad esempio, l'opzione "Crittografia end-to-end" appare nelle impostazioni della chat solo quando la conversazione è protetta. In WhatsApp, l'etichetta "Crittografia end-to-end" accanto al nome del contatto conferma la protezione. Se l'etichetta non appare, la conversazione potrebbe usare la crittografia in transito o non essere cifrata, specialmente nelle chat di gruppo con partecipanti che non hanno l'app aggiornata.
È cruciale rivedere le impostazioni dei backup. In WhatsApp, i backup su Google Drive o iCloud potrebbero non essere cifrati end-to-end per impostazione predefinita, a seconda della versione e della configurazione regionale. L'utente deve attivare esplicitamente la cifratura del backup se l'app lo consente. Inoltre, si consiglia di disattivare le funzioni opzionali che condividono metadati o contenuti con il provider, come l'integrazione con l'IA o gli strumenti di business, che possono esentare il servizio dalla protezione E2EE.