In questi giorni mi sono imbattuto in un paper su Arxiv.gov dal titolo “Careless Whisper: sfruttare le ricevute di consegna silenziose per monitorare gli utenti sui servizi di messaggistica istantanea per dispositivi mobili“. Il paper analizza una vulnerabilità di privacy presente in alcune app di messaggistica istantanea molto diffuse, in particolare WhatsApp e Signal.
In sintesi, gli autori mostrano che le spunte di conferma di consegna dei messaggi possono essere sfruttati come tecnica per monitorare un utente senza che questo riceva alcuna notifica.
Grazie all’utilizzo di messaggi appositamente costruiti (come reazioni, modifiche o cancellazioni), è possibile forzare la generazione di ricevute di consegna invisibili all’utente e, analizzando il tempo di risposta (RTT) di queste ricevute, un attaccante può ottenere informazioni utili, ad esempio all’interno di un contesto OSINT, tra cui:
- se lo schermo del telefono è acceso o spento
- se l’app di messaggistica è in primo piano
- gli orari di attività e inattività quotidiani
- la presenza e lo stato di più dispositivi collegati allo stesso account (smartphone, web client, desktop)
Se a primo avviso questo potrebbe sembrare un problema di privacy “da poco”, riflettendoci, è possibile in realtà tracciare con estrema precisione il comportamento degli utenti in relazione all’utilizzo dei loro smartphone, conoscendo semplicemente il numero di telefono. Realizzando infatti un semplice script, è possibile inviare, ad intervalli regolari ed in modo automatizzato, dei messaggi “invisibili” che, analizzati secondo quanto riportato nel paper, permettono di comprendere la relazione tra l’utente e lo smartphone.
Lo screenshot qui sopra riportato (il quale fa riferimento alla Figura 1 nel documento originale) mostra in modo molto chiaro il cuore della vulnerabilità descritta nel paper.
Gli autori hanno misurato il Round-Trip Time (RTT) delle delivery receipts di WhatsApp su iPhone, cioè il tempo che passa tra l’invio di un messaggio “silenzioso” e la ricezione della conferma di consegna dal dispositivo della vittima. La misura è stata fatta con una frequenza di 1 ping al secondo.

Il grafico mette a confronto due stati del telefono della vittima:
- Screen On (schermo acceso)
- Screen Off (schermo spento)
Sull’asse orizzontale c’è il tempo di risposta in millisecondi, su quello verticale la probabilità (distribuzione statistica degli RTT osservati).
Quello che emerge è una separazione netta delle due distribuzioni:
- Quando lo schermo è acceso, i delivery receipt tornano molto velocemente, quasi sempre sotto 1 secondo. Questo accade perché il sistema operativo mantiene CPU, rete e app in uno stato attivo, rispondendo immediatamente ai pacchetti.
- Quando lo schermo è spento, i tempi di risposta aumentano in modo evidente, con RTT superiori a 1 secondo, spesso tra 1.5 e 2.5 secondi. Qui entrano in gioco i meccanismi di risparmio energetico (sleep, deep sleep, background scheduling).
Il punto fondamentale è che questa differenza è sistematica e stabile, non casuale. Un attaccante che osserva solo i tempi di ritorno delle ricevute può quindi stabilire con ottima affidabilità se il telefono della vittima è:
- in uso attivo
- inattivo / in standby
Il tutto senza inviare messaggi visibili, senza notifiche e senza che la vittima possa accorgersene.
Dal punto di vista pratico, questa figura dimostra che i delivery receipt diventano un sensore remoto dello stato del dispositivo. Ripetendo la misura nel tempo, si può ricostruire:
- cambiamenti improvvisi di attività
- orari di utilizzo del telefono
- pattern giornalieri (sonno, lavoro, pause)
Quali messaggi vengono utilizzati per tracciare gli utenti
Nel capitolo “Delivery Receipt Sources” gli autori del paper spiegano da quali azioni concrete nascono le delivery receipt e, soprattutto, quali di queste azioni sono sfruttabili come canale laterale “silenzioso” per monitorare un utente senza che se ne accorga.
Il punto di partenza è chiarire che non solo i messaggi di testo generano una delivery receipt. Gli autori testano in modo sistematico diverse azioni supportate dai client di WhatsApp, Signal e Threema, osservando due aspetti per ciascuna:
- se l’azione genera una delivery receipt verso il mittente
- se l’azione produce una notifica visibile per il destinatario
Le azioni analizzate sono quattro:
- invio di un messaggio normale
- modifica di un messaggio già inviato
- reazione a un messaggio (emoji)
- cancellazione di un messaggio (“delete for everyone”)
Il risultato chiave è che WhatsApp e Signal inviano delivery receipt anche per reazioni, modifiche e cancellazioni, mentre Threema limita le ricevute ai soli messaggi normali. Questo dettaglio è cruciale perché molte di queste azioni non generano notifiche sul dispositivo della vittima.
In particolare, modificare o cancellare un messaggio non avvisa l’utente nella maggior parte dei casi, e quindi diventa un vettore perfetto per il tracciamento occulto.
Fingerprint del sistema operativo usato

Il paper non si limita a dimostrare come sia possibile utilizzare i “messaggi” di cui sopra per tracciare l’attività dell’utente, ma si spinge oltre: nel capitolo “Device OS Fingerprinting”, infatti, la tecnica descritta viene sfruttata per identificare la tipologia di smartphone/sistema operativo in uso dal destinatario.
Gli autori spiegano che WhatsApp e Signal gestiscono delivery e read receipts in modo diverso a seconda del sistema operativo e del tipo di client (Android, iOS, Web, Desktop, macOS, Windows).
Queste differenze sono osservabili da remoto analizzando come e in che ordine arrivano le ricevute, non il loro contenuto.
La Figura 8 del paper, qui sopra riportata, è il risultato di un attacco reale, in ambiente non controllato, usando solo delivery receipt silenziosi e senza alcuna interazione visibile con la vittima.
La figura mostra il tracciamento simultaneo di tre dispositivi appartenenti alla stessa persona:
- Device[0] – smartphone principale
- Device[1] – computer di casa (WhatsApp Web su Chrome, LAN cablata)
- Device[9] – laptop di lavoro (client desktop WhatsApp su macOS, Wi-Fi)
L’attaccante è uno spooky stranger: non è nei contatti, non c’è una chat attiva, invia solo ping silenziosi ogni 2 secondi. Sull’asse orizzontale c’è il tempo reale, su quello verticale il RTT delle delivery receipt in millisecondi.
In particolar modo:
Smartphone (Device[0])
Dai tempi di risposta delle delivery receipt si capisce quando il telefono è su Wi-Fi, quando passa a LTE, quando è in chiamata e quando torna su Wi-Fi. Questo permette di ricostruire spostamenti e contesto d’uso (casa → uscita → ufficio) senza vedere nulla sul dispositivo.
Desktop di casa (Device[1])
RTT estremamente stabili indicano una connessione LAN. La scomparsa improvvisa delle ricevute mostra il momento esatto in cui il computer viene spento, quindi quando l’utente lascia casa.
Laptop di lavoro (Device[9])
Nessuna receipt finché il dispositivo è spento; all’accensione arrivano molte ricevute insieme. Il loro formato e ordine consentono di identificare un client desktop macOS collegato via Wi-Fi.re il dispositivo in anticipo.
Exploit pronto all’uso

Dal paper in questione è nato il tool “Device Activity Tracker” disponibile su GitHub, il quale permette, come anticipato all’inizio del presente articolo, di tracciare automaticamente il comportamento di un utente semplicemente conoscendone il numero di telefono ed in modo più o meno invisibile.