Qualcuno può vedere il tuo IP in un’app di messaggistica? Cosa sa ogni osservatore
In una chat inoltrata tramite un servizio, il mittente e il tuo peer di rete sono entità diverse. Distingui ciò che vede il servizio, ciò che vedi tu e ciò che implica l’etichetta dell’app.
«Con chi sto parlando?» sono due domande in una sola frase. Una riguarda l’account che ha scritto il messaggio, l’altra la macchina all’altro capo della connessione di rete che il tuo client tiene davvero. In una chat inoltrata tramite un servizio non sono quasi mai la stessa entità, e questa differenza spiega buona parte della confusione su cosa un VPN nasconde o non nasconde alla persona a cui scrivi. Se la topologia è corretta, la domanda sulla privacy diventa una domanda a cui si può rispondere invece di una questione emotiva.
Il tuo client parla con il servizio, non con l’altra persona
Pensa a un’app di chat testuale in cui ogni partecipante si connette al servizio e il servizio consegna i messaggi tra account. Il tuo client mantiene una connessione al servizio; l’altro partecipante ne mantiene una separata allo stesso servizio. Il messaggio viaggia dal loro client al servizio e dal servizio al tuo, il che significa che il tuo peer di trasporto è un endpoint del servizio e non il loro dispositivo.
Alex's client -> chat service -> your clientTutto ciò che segue deriva da quell’unico schema. Guardare la tua connessione identifica il servizio, non Alex. Guardare la connessione di Alex identifica il servizio dall’altro lato. Nessuna delle due osservazioni è, da sola, un registro a livello di pacchetto del dispositivo dell’altra persona, e nessuna quantità di ispezione del tuo traffico la trasforma in tale registro.
Osservatori diversi raccolgono prove diverse
Il servizio è in una posizione più forte di qualsiasi partecipante perché termina entrambe le connessioni e al tempo stesso sa quale account possiede ciascuna. Cosa conserva, per quanto tempo, quali registri unisce e a chi li divulga sono domande separate con risposte separate, e a nessuna di esse risponde «l’app è cifrata end-to-end».
Tu, come destinatario, sei in posizione debole sui fatti di rete ma forte sui fatti di contenuto: il testo del messaggio, il nome visualizzato, tutto ciò che il mittente ha digitato o allegato. Un mittente che digita il proprio indirizzo lo ha divulgato, e quella divulgazione non è un’osservazione di rete anche se si legge come tale.
| Observer | Sees | Cannot conclude |
|---|---|---|
| You | Your connection to the service, message contents, sender-supplied details | The other client's source address |
| The other participant | Their connection, message contents, what the service attaches | Your source address |
| The service | Both connections, account mapping, delivery metadata | What it does not retain, or what leaves its boundary |
Se Alex si connette tramite un VPN, il servizio può vedere l’indirizzo di uscita di quella connessione invece dell’indirizzo di casa di Alex. È un’affermazione su ciò che vede il servizio. Non significa che l’indirizzo di uscita venga consegnato a te, e di certo non significa che la tua connessione venga resa anonima dalla scelta di trasporto di Alex.
Quando l’app è davvero peer-to-peer
Il modello inoltrato è un modello, non una legge. Alcune funzioni di messaggistica stabiliscono percorsi diretti tra client, per esempio un canale dati nel browser negoziato tramite un server di segnalazione, o una modalità di trasferimento file che collega i due dispositivi per evitare di inoltrare grandi quantità di dati. In quei casi il peer di trasporto è davvero il dispositivo dell’altro partecipante, e l’analisi degli osservatori cambia del tutto.
L’etichetta amichevole di un’app non basta a dirti in quale dei due casi ti trovi. «Messaggio diretto» descrive chi lo legge, non come viene trasportato, e una funzione di chiamata o di condivisione dello schermo nella stessa app può usare una topologia diversa da quella del thread di testo accanto. Leggi la documentazione del fornitore per la funzione specifica, oppure osserva quali connessioni apre il tuo client mentre la usi.
L’affermazione di cifratura end-to-end riguarda chi può leggere i contenuti protetti. Non dice nulla su quali server accettano connessioni, quali metadati vedono o se esista un percorso diretto, e la discussione delle capacità dell’osservatore nel RFC 6973 è una disciplina utile: nomina l’osservatore, poi elenca ciò che può davvero raccogliere.
Cosa significa per un VPN
Un VPN cambia ciò che il servizio vede della tua connessione. Non cambia chi è il tuo peer di trasporto e non dà all’altro partecipante una nuova visione del tuo indirizzo. Aspettarsi che un VPN ti nasconda alla persona a cui scrivi è un errore di categoria: il suo client non ha mai avuto una connessione con il tuo.
Ciò che un VPN può cambiare è una funzione di percorso diretto. Se l’app altrimenti negoziasse una connessione peer-to-peer, far passare il tuo traffico da un tunnel può invece imporre un inoltro, e alcune funzioni si comporteranno diversamente o ripiegheranno; è un effetto reale, ma riguarda la topologia, non la sparizione dalla conversazione.
Poi tieni le due domande separate in tutto ciò che annoti. Quale account ha inviato questo, e quale endpoint lo ha trasportato. Rispondi esplicitamente a entrambe, annota chi può osservare ciascuna risposta, e smetti di combinarle in un unico verdetto sulla tracciabilità di un messaggio.