La crittografia end-to-end impedisce ai servizi di messaggistica di spiare la corrispondenza privata tra gli utenti.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
La crittografia end-to-end (E2EE) è un tipo di messaggistica che mantiene i messaggi privati a chiunque, incluso il servizio di messaggistica. Quando si utilizza la E2EE, un messaggio appare in forma decifrata solo alla persona che invia il messaggio e alla persona che lo riceve. Il mittente è una delle "estremità" della conversazione e il destinatario è l'altra "estremità"; da qui il nome "end-to-end".
Immagina la crittografia end-to-end come una lettera spedita per posta in una busta sigillata. La persona che invia la lettera è in grado di leggerla e la persona che la riceve può aprirla e leggerla. Gli impiegati delle poste non riescono a leggere la lettera perché questa rimane sigillata nella busta.
Molti servizi di messaggistica offrono comunicazioni crittografate senza una vera crittografia end-to-end. Un messaggio viene crittografato durante il tragitto dal mittente al server del servizio e dal server al destinatario, ma quando raggiunge il server viene brevemente decrittografato prima di essere nuovamente crittografato. Questo è il caso del protocollo di crittografia comune TLS; per saperne di più, consulta le sezioni seguenti.
Immagina un servizio postale che, dopo aver ricevuto la lettera di qualcuno da consegnare, ne apra la busta e trasferisca la lettera in una nuova busta prima di consegnarla al destinatario. Il contenuto della lettera potrebbe essere esposto ai dipendenti delle poste.
Il servizio può promettere che non leggerà il messaggio nella sua forma decifrata, proprio come il servizio postale nell'esempio sopra riportato potrebbe promettere che i suoi dipendenti non leggeranno mai le lettere mentre vengono trasferite nella loro nuova busta. Ma chi invia un messaggio deve comunque avere fiducia che il servizio di messaggistica manterrà le sue promesse.
E2EE è "end-to-end" perché è impossibile per chiunque si trovi nel mezzo decifrare il messaggio. Gli utenti non devono necessariamente fidarsi del fatto che il servizio che stanno utilizzando non legga i loro messaggi: non è possibile che il servizio lo faccia. Immagina se, invece di spedire una lettera in una busta, qualcuno la spedisse in una cassetta di sicurezza chiusa a chiave, di cui solo lui ha la chiave. Ora sarebbe fisicamente impossibile per chiunque, a parte il destinatario previsto, leggere la lettera. Ecco come funziona E2EE.
La crittografia funziona modificando i dati in modo che solo chi possiede una specifica informazione, nota come chiave, possa interpretarli. Supponiamo che Alice mandi un messaggio a Bob, ma Chuck glielo rubi mentre è in viaggio verso Bob. Se Alice ha crittografato il messaggio utilizzando una chiave in possesso sia di lei che di Bob, Chuck non potrà leggerlo e il messaggio di Alice rimarrà sicuro. Se invece il messaggio raggiunge Bob, Bob è in grado di decifrare il messaggio utilizzando la chiave in suo possesso e può leggerlo.
Le chiavi possono assumere forme diverse in contesti diversi. Nell'esempio sopra, una chiave potrebbe essere semplicemente un insieme di istruzioni per decifrare il messaggio di Alice. Nelle comunicazioni tramite Internet, una chiave è una stringa di bit che svolge un ruolo nelle complesse equazioni matematiche utilizzate per codificare e decifrare i dati.
Con E2EE, la chiave che consente di crittografare e decrittografare i messaggi rimane salvata sul dispositivo dell'utente. Se Alice e Bob utilizzano un'app di messaggistica E2EE, l'app salva una chiave sul telefono di Alice e una chiave sul telefono di Bob. Il telefono di Alice crittografa il suo messaggio con la chiave, quindi trasmette il messaggio crittografato al telefono di Bob. Il telefono di Bob applica automaticamente la chiave e decifra il messaggio, consentendo a Bob di leggerlo.
La crittografia end-to-end utilizza una forma specializzata di crittografia chiamata crittografia con chiavi pubbliche (a volte chiamata anche crittografia asimmetrica). La crittografia con chiavi pubbliche consente a due parti di comunicare senza dover inviare la chiave segreta su un canale non sicuro.
Si basa inoltre sull'utilizzo di due chiavi invece di una: una chiave pubblica e una chiave privata. Mentre chiunque, incluso il servizio di messaggistica, può visualizzare la chiave pubblica, solo una persona conosce la chiave privata. I dati crittografati con la chiave pubblica possono essere decrittografati solo con la chiave privata (non con quella pubblica). Ciò è in contrasto con la crittografia simmetrica, in cui viene utilizzata una sola chiave sia per crittografare che per decrittografare.
Supponiamo che Alice e Bob debbano cambiare la chiave che utilizzano per crittografare le loro comunicazioni. Alice dovrebbe semplicemente inviare una nuova chiave a Bob? No, perché Chuck potrebbe rubare e duplicare la nuova chiave mentre è in viaggio verso Bob, e poi potrebbe decifrare tutte le loro comunicazioni future. Alice e Bob decidono di utilizzare la crittografia con chiavi pubbliche. Alice conserva una chiave privata per sé e invia una chiave pubblica a Bob: in questo modo, non importa se Chuck ruba la chiave durante il trasporto, perché solo Alice possiede la chiave privata.
Transport Layer Security (TLS) è un protocollo di crittografia che, come E2EE, utilizza la crittografia con chiavi pubbliche e garantisce che nessun intermediario possa leggere i messaggi.
Tuttavia, il TLS viene implementato tra un utente e un server, non tra due utenti. In questo modo i dati vengono protetti durante il transito da e verso un server, ma i dati sul server stesso sono in forma decrittografata. Questo è spesso necessario: ad esempio, se un utente utilizza un'applicazione Web, il server deve accedere ai suoi dati affinché l'applicazione funzioni. Tuttavia, dal punto di vista della privacy, questa soluzione non è appropriata in tutte le situazioni. Ad esempio, se gli utenti desiderano inviarsi messaggi, potrebbero non voler consentire al fornitore del servizio di visualizzarli.
E2EE garantisce che nessuno possa vedere i messaggi, fatta eccezione per le due persone che stanno comunicando tra loro (a condizione che i dispositivi utilizzati non siano compromessi o rubati). Se implementata correttamente, non è necessario che gli utenti abbiano fiducia che un servizio gestisca correttamente i loro dati. In questo modo, E2EE offre alle persone il controllo totale su chi può leggere i propri messaggi, consentendo loro di mantenerli privati.
E2EE mantiene i messaggi sicuri durante il transito (mentre passano da una persona all'altra) ma non protegge i messaggi una volta che raggiungono la loro destinazione.
Supponiamo che Alice e Bob stiano utilizzando un'app E2EE, ma Chuck rubi il telefono di Bob. Ora Chuck può vedere i messaggi di Alice a Bob. Se Chuck non vuole prendersi la briga di rubare il telefono di Bob, potrebbe anche avvicinarsi di soppiatto alle sue spalle e leggere i messaggi di Alice oppure potrebbe provare a infettare il telefono di Bob con un malware per rubare i messaggi di Alice. In ogni caso, E2EE da solo non protegge Bob da questo tipo di attacchi.
Infine, non è detto che l'E2EE sia a prova di futuro. Se implementati correttamente, i moderni metodi di crittografia sono sufficientemente potenti da resistere ai tentativi di violazione dei dati anche da parte dei computer più potenti al mondo ma i computer potrebbero diventare ancora più potenti in futuro. I computer quantistici, se sviluppati, sarebbero in grado di decifrare gli algoritmi di crittografia moderni. L'utilizzo di E2EE mantiene i messaggi sicuri nel presente, ma potrebbe non mantenerli sicuri in modo permanente.
Nella sicurezza informatica, una backdoor è un modo per aggirare le normali misure di sicurezza di un sistema. Immagina un edificio completamente protetto, con più serrature su tutte le porte, fatta eccezione per una porta nascosta sul retro che rimane aperta e di cui solo poche persone sono a conoscenza. Una backdoor di crittografia è un po' così: è un modo segreto per accedere ai dati che sono stati "bloccati" tramite crittografia. Alcune backdoor di crittografia sono in realtà intenzionalmente integrate in un servizio per consentire al fornitore del servizio di visualizzare i dati crittografati.
Ci sono stati alcuni casi in cui un servizio sosteneva di offrire messaggistica E2EE sicura, ma in realtà aveva integrato una backdoor nel suo servizio. Possono farlo per vari motivi: per accedere ai messaggi degli utenti e analizzarli alla ricerca di frodi o altre attività illegali, oppure per spiare apertamente i propri utenti. Gli utenti devono assicurarsi di leggere attentamente i Termini di servizio di un servizio e utilizzare i warrant canary se desiderano mantenere privati i propri messaggi.
Alcuni sostengono che i fornitori di servizi E2EE dovrebbero integrare delle backdoor nella loro crittografia in modo che le forze dell'ordine possano visualizzare i messaggi degli utenti quando necessario. I sostenitori della privacy dei dati tendono a non essere d'accordo, poiché le backdoor indeboliscono la crittografia e riducono la privacy degli utenti.
Uno dei warrant canary di Cloudflare afferma: "Cloudflare non ha mai indebolito, compromesso o manomesso alcuna delle sue funzionalità di crittografia su richiesta delle forze dell'ordine o di terze parti". Consulta il Report sulla trasparenza di Cloudflare per saperne di più.