// La Iena Legge le Notizie
Sezione 00. L'antefattoNota: ho hackerato il gesso per riuscire a scrivere alla tastiera. Alla visita mi hanno beccato, mi hanno fatto la ramanzina e settimana prossima me lo rifanno da capo. Loro volevano smontarmelo seduta stante 😅
La iena sta scrollando il telefono. Io sto debuggando un segfault che mi sta facendo perdere la volonta' di vivere.
"Ehi Andre', la Svezia vuole obbligare Signal a mettere una backdoor. Dice che devono conservare tutti i messaggi e darli alla polizia."
Alzo gli occhi dallo schermo. "Quando entra in vigore?"
"1 marzo 2026."
Dopodomani. Bene.
"E Signal cosa dice?"
"Che se ne vanno dalla Svezia piuttosto che farlo."
"Bella mossa." Chiudo il terminale. Il segfault puo' aspettare, tanto lui non se ne va da nessuna parte. Questa mi interessa. Smontiamola.
// Come Funziona Signal Protocol
Sezione 01. Double Ratchet, X3DH e curve25519"Ok, ma Signal non e' tipo WhatsApp? Messaggi crittografati, fine," dice la iena.
Ni. Signal e' il protocollo sotto WhatsApp. Lo ha scritto Moxie Marlinspike nel 2013 e adesso lo usa mezzo mondo: WhatsApp, Facebook Messenger, Google Messages (RCS). WhatsApp lo usa ma ci mette sopra la pubblicita'. Come prendere una Ferrari e parcheggiarla in doppia fila.
Il cuore si chiama Double Ratchet. In pratica genera una chiave crittografica nuova per ogni singolo messaggio. Non per sessione, non per giornata. Ogni messaggio, chiave diversa.
Funziona cosi':
Sotto il cofano c'e' Curve25519, la curva ellittica di Daniel Bernstein. Il Diffie-Hellman ci gira sopra cosi':
Alice genera una chiave privata casuale a, calcola la pubblica A moltiplicando per il punto generatore G sulla curva
Bob fa lo stesso. Nessuno dei due conosce la chiave privata dell'altro
Il segreto condiviso e' lo stesso punto sulla curva. Chi intercetta vede solo A e B, ma senza a o b non puo' calcolare S
"E fin qui e' Diffie-Hellman classico," dico alla iena. "Il Double Ratchet fa un passo in piu': dopo ogni risposta genera una nuova coppia di chiavi effimere e fa un nuovo scambio DH."
"E se qualcuno ti frega una chiave?"
"Legge solo quel messaggio. Quelli prima e quelli dopo sono cifrati con chiavi diverse. Si chiama forward secrecy. Tipo cambiare la serratura di casa dopo ogni volta che apri la porta. Paranoico? Si'. Funziona? Anche."
Anche se K3 viene compromessa, il DH Ratchet rigenera tutto. K4 e successive sono sicure.
Il KDF che fa girare il ratchet e' HKDF su HMAC-SHA256:
Ogni chain key genera la message key per cifrare e la prossima chain key. Operazione irreversibile: da MK non puoi risalire a CK
Il bello: il Double Ratchet ti da' due cose insieme: forward secrecy (ti fregano una chiave oggi e i messaggi vecchi restano al sicuro) e break-in recovery (anche se un attaccante entra, al prossimo ratchet step viene sbattuto fuori). Prima del Double Ratchet nessun protocollo le aveva entrambe.
"Bello, ma me lo fai vedere per davvero?"
Ho scritto un Double Ratchet semplificato in Python. Stesse primitive di Signal: Curve25519, HMAC-SHA256 con 0x01/0x02 per il ratchet, AES-256-CBC + HMAC-SHA256 per cifrare. Signal usa libsignal in Rust, noi usiamo cryptography in Python (binding OpenSSL). Stessa matematica, implementazione diversa.
Cinque messaggi, cinque chiavi diverse. Rubi quella del MSG 3? Decifri solo quello. Gli altri quattro? Muro. L'attaccante si porta a casa un messaggio su cinque e un bel mal di testa.
Vuoi provare? python3 scripts/crittografia-non-basta/01_double_ratchet.py - X25519, HMAC(CK, 0x01/0x02), HKDF con info WhisperMessageKeys, AES-256-CBC + HMAC-SHA256. Stesse primitive di Signal.
// La Svezia Vuole le Chiavi
Sezione 02. Datalagring - conserva e consegna"Ok il protocollo e' solido. E allora cosa vuole la Svezia, che gli mandino i messaggi con un piccione?" chiede la iena.
Quasi. Vogliono due cose:
1. Conservazione: i provider devono conservare i messaggi degli utenti sul territorio svedese.
2. Accesso: su ordine di un tribunale, polizia e servizi segreti (SAPO) possono richiedere e ottenere lo storico dei messaggi.
"Ma se i messaggi sono end-to-end, come li conservi in chiaro?"
Appunto. Non puoi. A meno che non rompi il protocollo. E' come chiedere di fare una porta blindata con la chiave sotto lo zerbino.
Lo step 02 e' il casino. Per conservare una copia leggibile, Signal dovrebbe fare una di queste:
| Opzione | Come funzionerebbe | Cosa rompe |
|---|---|---|
| Ghost user | Aggiungere un partecipante invisibile (il server) a ogni conversazione | Il protocollo crittografico. L'utente vedrebbe una chiave in piu' nella verifica |
| Key escrow | Conservare una copia della chiave privata sul server | Forward secrecy. Se il server viene bucato, tutti i messaggi passati sono esposti |
| Client-side scan | Il client invia una copia del messaggio al server prima di cifrarlo | La fiducia. L'app diventa uno spyware con extra steps |
| Backdoor nel ratchet | Inserire una master key che decifra tutto | L'intero modello di minaccia. Chi ha la master key ha tutto |
Meredith Whittaker, presidente di Signal Foundation: "Chiedere a noi di conservare dati significherebbe demolire la nostra intera architettura. Non lo faremo mai. Piuttosto lasciamo il mercato svedese."
Il bello: le forze armate svedesi usano Signal per le comunicazioni operative. Lo stesso esercito si e' opposto alla legge del proprio governo, dicendo che una backdoor creerebbe "vulnerabilita' sistemiche sfruttabili da attori stranieri". Cioe' l'esercito chiede al parlamento di non rompere lo strumento che usano per difendersi. Pazzesco.
// In UK Ci Hanno Gia' Provato
Sezione 03. Apple, iCloud e la technical capability notice"Ma e' solo la Svezia o sono tutti impazziti?" chiede la iena.
Sono tutti impazziti. Il Regno Unito ci ha provato prima, e piu' pesante. Gennaio 2025: il governo britannico manda ad Apple una Technical Capability Notice (TCN) segreta. In pratica un ordine che obbliga Apple a dare accesso ai dati iCloud crittografati. Non solo utenti UK, tutti gli utenti del mondo.
Apple ha risposto togliendo completamente Advanced Data Protection (ADP) dal Regno Unito. Se sei un utente UK, da quel giorno niente piu' crittografia end-to-end sui backup iCloud.
"Cioe' hanno tolto la sicurezza piuttosto che metterci una porta di servizio?"
Si'. La mossa piu' Apple di sempre: non ti piace la mia regola? Ti tolgo il giocattolo. "Non costruiremo mai una backdoor. Ma se non possiamo offrire la crittografia legalmente qui, la togliamo." Risultato: gli utenti UK ora sono meno protetti di prima. Complimenti al legislatore.
Due giorni fa i parlamentari americani Jim Jordan e Brian Mast hanno chiesto al governo britannico un briefing sulla TCN, dicendo che una backdoor potrebbe esporre i dati degli americani ad "attori autoritari e cybercriminali".
| Paese | Cosa chiede | Target | Stato |
|---|---|---|---|
| Svezia | Conservazione messaggi + accesso polizia | Signal, WhatsApp, tutti | Legge prevista 1 mar 2026 |
| UK | Technical Capability Notice (TCN) | Apple iCloud (ADP) | Attiva. Apple ha rimosso ADP |
| EU | CSAR "Chat Control" - scansione volontaria + verifica eta' | Tutte le piattaforme | Trilogo in corso, finale giu 2026 |
| Australia | Assistance and Access Act (2018) | Tutti i provider | Attiva dal 2018 |
// Il Vero Problema: gli AI Agent
Sezione 04. L'attacco che non rompe la crittografia"Ok, il protocollo tiene. I governi non riescono a romperlo. Posso tornare a scrollare TikTok?"
No. E qua viene il bello.
Gennaio 2026, Davos. La Whittaker se ne esce con: "Gli agenti AI stanno rendendo la crittografia irrilevante." Mezzo settore si e' strozzato col caffe'.
Il punto e' semplice. Un agente AI per funzionare ha bisogno di accesso a:
Signal cifra il canale. Il Double Ratchet protegge i dati in transito. Ma una volta che il messaggio arriva sul telefono, viene decifrato. E se su quel telefono c'e' un agente AI con permessi di sistema, quell'agente vede tutto in chiaro. E' come avere una cassaforte perfetta ma lasciare un tizio con la telecamera dentro la stanza.
La sicurezza complessiva e' forte quanto il suo anello piu' debole. Se l'endpoint e' compromesso, E2EE non serve
"Si' vabe', ma in pratica chi e' cosi' scemo?"
Parecchia gente, a quanto pare. Hanno trovato oltre mille deployment di Clawdbot (framework open-source per agenti AI) collegati direttamente a Signal. Un tizio aveva messo le credenziali di device-linking di Signal dentro un pannello web accessibile a chiunque. Bastava trovare l'URL, associare un nuovo dispositivo e leggere tutto in chiaro. Mille. Non uno, mille.
Il caso Clawdbot: credenziali Signal device-linking esposte su un pannello web pubblico. Niente exploit zero-day, niente mandato, niente crittanalisi. Un browser e l'URL giusto. Il protocollo era intatto. La porta era spalancata.
Ma il bello non e' neanche quello. Pensaci: un LLM con accesso al sistema che legge i messaggi Signal in arrivo e' un vettore di RCE via prompt injection. Ti mando un messaggio su Signal, il messaggio attraversa il Double Ratchet, arriva cifrato, viene decifrato dall'app, e poi l'agente AI lo processa. Se dentro quel messaggio c'e' un prompt injection fatto bene, l'agente esegue quello che gli dico io. Codice arbitrario, sul tuo sistema, con i tuoi permessi. Remote Code Execution attraverso un messaggio di chat. La crittografia ha funzionato perfettamente dall'inizio alla fine, e tu sei comunque fottuto.
Il messaggio attraversa la crittografia intatto. L'LLM lo interpreta come istruzione. Se ha permessi di sistema, e' game over
"Aspetta, quindi qualcuno ti puo' mandare un messaggio e prendere il controllo del tuo computer?"
Se hai un agente AI con permessi di sistema che legge i tuoi messaggi, si'. Non e' diverso da una macro di Word negli anni '90, solo che adesso la macro e' un LLM e il vettore e' Signal. La superficie d'attacco non e' il protocollo, e' il coglione che ci ha messo un LLM davanti con root access.
E poi ci sono i russi. Gruppo UNC5792, tracciato da Google Threat Intelligence. Stesso angolo: il device-linking QR code di Signal. Creano QR code malevoli camuffati da inviti a gruppi. L'utente li scansiona pensando di unirsi a una chat, e invece si linka il dispositivo dell'attaccante all'account. Da quel momento ogni messaggio arriva in tempo reale anche a loro. Zero exploit, zero crittanalisi. Solo social engineering fatto bene.
Target: militari ucraini. Gente che combatte una guerra vera e che si fa fregare da un QR code. Fa riflettere.
Nota: il Signal Protocol e' stato rivoltato da crittografi accademici e nessuno ha trovato buchi nel protocollo. Tutti gli attacchi documentati colpiscono sopra o sotto: l'interfaccia utente (QR code), il sistema operativo (AI agent con permessi), la distribuzione (app modificate). Il lucchetto funziona. Ma se la porta e' aperta, il lucchetto non serve a niente.
// La Matematica Non Si Piega
Sezione 05. Perche' una backdoor "solo per i buoni" non puo' esistere"Ma non si puo' fare una backdoor che funziona solo per la polizia? Tipo, una chiave master che hanno solo loro?"
La iena fa la domanda da un milione di dollari. Quella che fanno tutti i politici convinti che la crittografia sia come un rubinetto che puoi aprire solo per le persone giuste. Spoiler: no.
Una backdoor e' un secondo canale di decifrazione. Se esiste un modo per decifrare senza la chiave del destinatario, quel modo funziona per chiunque lo trovi.
Se esiste una chiave backdoor che riduce l'entropia del messaggio a zero dato il ciphertext, chiunque possieda quella chiave puo' decifrare. La matematica non distingue tra "polizia" e "attaccante"
Ci hanno gia' provato. Anni '90, le famose Crypto Wars. Il governo americano tira fuori il Clipper Chip: chip crittografico con una chiave depositata presso il governo. Idea geniale, no? Matt Blaze della AT&T lo buca in meno di un anno. Meno tempo di quanto ci metto io a montare un mobile IKEA.
1994: Blaze dimostro' che il Clipper Chip si aggirava con un brute-force sul checksum a 16 bit del campo LEAF (Law Enforcement Access Field). Un ricercatore con un computer ha reso inutile il sistema pensato per dare accesso "solo" al governo.
Il motivo e' semplice: in crittografia la sicurezza si basa sulla durezza computazionale di un problema (fattorizzazione, logaritmo discreto, curve ellittiche). Una backdoor non cambia la durezza, aggiunge un secondo percorso per aggirarlo. E quel percorso funziona per chiunque.
Se esiste una chiave master che decifra qualsiasi messaggio indipendentemente dalla chiave usata, allora la sicurezza del sistema dipende interamente dalla segretezza di K_master
La probabilita' che una chiave master venga compromessa nel tempo tende a 1. Non e' se, e' quando
"Quindi qualsiasi backdoor prima o poi salta?"
Non e' teoria. Guarda i precedenti:
| Backdoor | Anno | Cosa e' successo |
|---|---|---|
| Clipper Chip | 1993-1996 | Matt Blaze buco' il checksum a 16 bit del LEAF. Progetto abbandonato |
| Dual_EC_DRBG | 2006-2014 | Generatore random NSA con costante sospetta. I documenti Snowden rivelarono la backdoor |
| Juniper ScreenOS | 2015 | Backdoor nel VPN di Juniper. Usava Dual_EC_DRBG. Un secondo attaccante (probabilmente cinese) la sfrutto' |
| Crypto AG | 1970-2018 | Azienda svizzera di cifratura posseduta segretamente da CIA e BND. Vendeva macchine deliberatamente indebolite a oltre 120 paesi |
Juniper e' il caso che spiega tutto: la NSA mette una backdoor in un prodotto commerciale. Poi qualcun altro (probabilmente la Cina) trova la backdoor della NSA e se la usa per i fatti suoi. E' come nascondere la chiave di riserva sotto il vaso: prima o poi qualcuno alza il vaso.
"Ok ok, ho capito. Ma fammi vedere, basta teoria."
Due script. Il primo aggiunge una master key governativa a un canale con le stesse primitive di Signal e mostra che chiunque la trovi decifra tutto. Il secondo confronta chiave statica vs Double Ratchet quando ti bucano. Numeri veri, non chiacchiere.
Dieci messaggi, ti bucano al quinto. Con la chiave statica (quella che una backdoor imporrebbe) l'attaccante legge tutto: passato, presente, futuro. Con il Double Ratchet? Uno su dieci.
Vuoi provare? python3 scripts/crittografia-non-basta/02_backdoor_demo.py e python3 scripts/crittografia-non-basta/03_ratchet_vs_static.py - crittografia vera, risultati veri.
// Il Lucchetto e la Porta Aperta
Sezione 06. ConclusioneLa iena mi guarda. "Quindi? Posso riprendere a scrollare o devo preoccuparmi?"
Entrambe le cose. Ricapitolando:
- Il Signal Protocol funziona. Double Ratchet, X3DH, Curve25519, forward secrecy. Nessuno ha bucato il protocollo.
- La Svezia vuole obbligare Signal a conservare i messaggi. Signal preferisce andarsene. Il loro stesso esercito si oppone alla legge.
- In UK hanno imposto ad Apple una TCN. Apple ha tolto la crittografia avanzata piuttosto che mettere una backdoor. Risultato: utenti meno protetti.
- L'EU negozia Chat Control: la scansione obbligatoria e' stata tolta ma i negoziati sono ancora aperti. Trilogo finale previsto giugno 2026.
- Gli AI agent aggirano la crittografia senza romperla: leggono i messaggi dopo la decifrazione, a livello endpoint. Caso reale: Clawdbot con credenziali Signal esposte. Peggio: un LLM con accesso al sistema davanti a Signal e' un vettore di RCE via prompt injection.
- I russi (UNC5792) usano QR code malevoli per linkare dispositivi e leggere messaggi in tempo reale. Target: militari ucraini.
- Una backdoor "solo per i buoni" e' matematicamente impossibile. Tutte quelle della storia (Clipper, Dual_EC, Juniper, Crypto AG) sono saltate.
"E noi che facciamo, ci mettiamo a piangere?"
No, pero' qualcosa si puo' fare. Controlla i dispositivi linkati su Signal ogni tanto. Aggiorna l'app. Non scansionare QR code a caso come se fossi a una caccia al tesoro. E se un agente AI ti chiede accesso ai messaggi, digli di no. O almeno pensaci, che gia' sarebbe un passo avanti.
Signal Protocol resta il miglior sistema di crittografia per messaggistica che esiste. Ma la guerra si e' spostata. Non attaccano piu' la matematica, attaccano il contesto. L'endpoint, l'interfaccia, il legislatore, l'agente AI che vede tutto dopo la decifrazione. Curve25519 non si piega. Il telefono su cui gira si'.
Signal Pirate