Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:00):
Le notifiche push, consapevolmente o meno, le usiamo tutti quanti ogni giorno, anche decine
(00:06):
di volte al giorno, ci avvisano quando qualcuno ci invia un messaggio, ci ricordano i movimenti
delle nostre carte di credito, ci segnalano una news che potrebbe interessarci o l'ultimo
video del nostro youtuber preferito o un tweet di tendenza e molto molto altro ancora.
Ma quanti di noi sanno che queste utilissime notifiche si basano su un meccanismo che nasconde
(00:30):
un potenziale in cubo per la privacy degli utenti che le ricevono? Ne parliamo fra pochissimo dopo la sigla.
Benvenuti su Pensieri in Codice, il podcast dove si ragiona da informatici con Valerio Galano.
La notizia che mi ha fatto pensare di realizzare questo episodio risale ormai a qualche settimana
(00:58):
fa ed il motivo per cui mi interessa riprenderla è che, come a volte accade,
essa ha fatto conoscere al grande pubblico qualcosa che per gli addetti ai lavori era
abbastanza ovvio e noto da tempo. E semplicemente volevo rifletterci un po' su con te.
Nello specifico sto parlando del fatto che il meccanismo che permette il funzionamento
(01:22):
delle cosiddette notifiche push per smartphone e computer, permette anche a chi gestisceلى il
sistema di invio di risalire all'utenza e dal dispositivo che riceve le comunicazioni.
E se questo fatto, detto in questo modo, ti può suonare abbastanza ovvio, beh sappi
che a quanto si è visto non lo è per tutti.
(01:44):
Partiamo quindi dall'inizio e vediamo innanzitutto cosa è successo, poi come è potuto succedere
e infine quali sono le implicazioni di tutta la faccenda.
E nel farlo proviamo anche a capire un po' come funzionano le notifiche push.
Alla fine di febbraio di quest'anno il Washington Post ha pubblicato un articolo il cui titolo
(02:07):
era, lo dico in italiano, la nuova tattica dell'FBI, catturare i sospetti con le notifiche push.
In tale articolo è raccontata la storia di come alcuni agenti federali abbiano identificato
un utente che scambiava contenuti pedopornografici richiedendo a Google di rintracciarlo tramite
(02:27):
le notifiche push che riceveva.
L'uomo in questione agiva in anonymato ovviamente ed utilizzava anche un app svizzera di messaggistica
chiamata teleguard le cui comunicazioni sono private e criptografate.
Ma ciò non è bastato ad impedire a Google di identificarlo e di consegnare le sue informazioni
(02:48):
nelle mani degli inquirenti.
A seguito di questa scoperta però il Washington Post ha poi indagato ulteriormente e ha trovato
almeno 130 casi in cui è stata utilizzata questa tecnica per individuare sospetti con
l'aiuto di Google, Apple o Facebook.
Alcuni di questi casi risalgono anche a vari anni fa e per la precisione iniziano dal 2019.
(03:19):
Ma come è possibile che Google, Apple o chi che sia possa rintracciare un utente tramite
le notifiche inviate al suo dispositivo, un utente che addirittura utilizza sistemi
di messaggistica criptati che in teoria dovrebbero essere totalmente sicuri e anonimi?
Beh, in realtà conoscendo un po' come funzionano i sistemi per l'invio di notifiche push la
(03:44):
risposta non è poi così complicata.
Piccola nota, essendomi capitato in passato di implementare soluzioni di notifica per
city web tramite servizi di Google, in questo episodio ti parlerò nello specifico di come
funziona questo sistema, ma i concetti di base valgono anche per Apple, Facebook o qualunque
(04:05):
altro soggetto che possieda un proprio sistema di notifiche push.
Cominciamo col dire che le notifiche push non nascono certo come un metodo di tracciamento,
ma sono un meccanismo pensato per rendere più efficiente l'invio delle notifiche aiutenti.
Considerando infatti quante app sono installate sui nostri dispositivi e quante notifiche
(04:29):
esse generano ogni giorno, l'idea di base è raggruppare tutte queste interazioni in
flussi di comunicazione ottimizzati e farli partire da un numero minimo di server.
In pratica, invece di attendere che ogni app o sito web si colleghi al proprio server
per richiedere le novità in sospeso, il sistema delle notifiche push invia immediatamente
(04:55):
al dispositivo ciascuna notifica appena questa è disponibile a prescindere dall'app o
dal sito cui essa è destinata.
Questa, raccontata così molto alla buona, è in sostanza la soluzione implementata
dai maggiori player del mondo informatico, Google, Apple, Meta e compagni, e utilizzata
(05:16):
quasi da tutte le app e i siti in circolazione.
Il punto però è che per far funzionare un sistema del genere è necessario che il gestore
del server conosca gli account dei utenti e i dispositivi presso i quali andranno in
viate le notifiche, non che le app e i siti di destinazione e tutti i dettagli da mostrare
(05:39):
nell'anteprima, per poter consegnare ad un utente una notifica infatti bisogna identificare
su quali dispositivi è registrato, e bisogna anche avere un collegamento a tali dispositivi
in tempo quasi reale e inviare tutte le informazioni necessarie specificando l'app o il sito di
(05:59):
turno ed il contenuto del banner che dovrà essere mostrato, ora tu avrai certamente
notato che ogni volta che installi un app sul tuo smartphone o tablet questa ti richiede
il permesso di poterti mostrare le notifiche, così come spesso fanno anche tanti siti web
di notizie o con funzioni social e di messaggistica.
(06:23):
Beh quella richiesta non è solo un'autorizzazione, ma sottintende anche tutto un procedimento
di configurazione che ha luogo tra il tuo dispositivo e i server del gestore del sistema
push, in pratica accade che il dispositivo segnala al server la propria esistenza chiedendo
(06:43):
di essere avvisato immediatamente in caso siano presenti nuove notifiche riguardo quella
specifica app o sito web, e insieme i due sistemi concordano e si scambiano alcune
stringe di testo che servono per il funzionamento di tutto il meccanismo.
Una di queste stringe è il push token che è unico per ciascuna tripletta composta da
(07:08):
dispositivo utente e sito pure app e rappresenta una sorta di password potremmo dire che il
dispositivo deve utilizzare per ottenere le notifiche che lo riguardano.
Una seconda stringa importante poi è il codice identificativo di argomento, che a
(07:28):
seconda dei casi ha vari utilizzi ma semplificando molto diciamo che nel caso delle app di messaggistica
permette di identificare i dispositivi del destinatario di una o più notifiche.
Volendo essere un po' più precisi in realtà il codice argomento identifica una tipologia
di informazione sulla quale l'utente è interessato a ricevere aggiornamenti nel più breve tempo
(07:53):
possibile, e quando dispositivo e server push si accordano sulla ricezione di notifiche l'app o
il sito di turno specificano a quali argomenti scrivere l'utente e quindi per quali novità
riceverà le notifiche. Quando si parla di app di messaggistica ogni chat coincide bene o male
(08:15):
con un certo argomento e quindi di fatto ogni chat privata tra due utenti permette di risalire
ai due tramite i codici argomento ad essa collegati, e dico codici e non codice perché
ciascun utente avrà il proprio pur essendo la chat in comune tra i due. Ad ogni modo il
(08:36):
concetto è che grazie a push token e codici argomento ogni dispositivo può restare in
ascolto presso un server push che per android sarà ad esempio google e per iphone sarà apple e
al tempo stesso il server di ciascun app può comunicare al server push di riferimento i
(08:56):
dati delle notifiche da inoltrare e gli utenti a cui inoltrarle. Per i siti web la questione è un
pelo più complicata perché è il browser a dover tenere il collegamento verso i server push
che potenzialmente potrebbero anche essere più di uno, ma anche in questo caso al momento questi
(09:18):
dettagli non ci interessano. Ciò che invece dobbiamo tenere bene a mente per capire le
implicazioni in termini di privacy di tutto questo sistema è il ciclo di vita di una
notifica push che più o meno è il seguente. Uno, le notifiche comprensive di tutti i relativi
dettagli, quelli che compaiono nelle anteprime per intenderci, vengono generate dal server
(09:43):
originale di un app o di un sito. Due, tale server poi contatta i server del servizio di
notifica push che come abbiamo già detto solitamente appartengono a google o apple o qualche
altro big, indica tutte le informazioni da recapitare e il codice argomento relativo.
Tre, il server push combina insieme il codice argomento e l'identità del server che lo ha
(10:11):
appena contattato e così facendo identifica l'app e il dispositivo o i dispositivi del
o dei destinatari iscritti all'argomento e gli invia tutto il necessario.
Quattro, una volta recapitate le informazioni, nel caso di un app viene mostrato il classico
banner di notifica del sistema operativo, mentre nel caso di un sito la gestione può anche
(10:37):
essere un po' più personalizzata, come di consueto tecnicamente parlando, in realtà tutto il gire è
un po' più complicato di così, ma per quello che ci interessa i passaggi descritti sono perfetti.
Tornando infatti alla nostra domanda iniziale su come si può rintracciare un utente tramite le
notifiche, dobbiamo per forza presupporre che il server del servizio push debba in qualche
(11:03):
modo archiviare una lista di tutti gli utenti, dei dispositivi collegati e delle app desiti per
poter mettere in funzione tutto il meccanismo quando necessario. Il succo della questione in
pratica è che se ad esempio il server delle notifiche push deve consegnare le informazioni
ricevute da WhatsApp per la chat x, che ricordiamo corrisponde a un certo argomento y, deve cercare
(11:31):
all'interno dei propri elenchi l'identificativo degli utenti collegati all'app di WhatsApp per
l'argomento y ed estrarre i corrispondenti dispositivi, altrimenti semplicemente non può
fare il suo lavoro. In definitiva quindi ora dovrebbe essere chiaro che il server delle notifiche
push è contemporaneamente a conoscenza di tutta una serie di informazioni che vanno
(11:57):
dall'account dell'utente al dispositivo che sta utilizzando alle app e ai siti che frequenta e per cui
riceve notifiche y, cosa non da poco, alle informazioni contenute in queste notifiche banalmente le
anteprime dei messaggi. Ora, data la complessità e la pervasività e l'importanza di un sistema
(12:19):
come quello appena descritto, non possiamo certo pensare che non implementi tutta una serie di log
da utilizzare in caso di verifica e di reportistica. Sarebbe folle se non lo facesse, è un servizio
attivo a livello mondiale che serve ogni giorno centinaia di milioni di utenti. E tali log devono
(12:40):
contenere certamente identificativi e informazioni inviate dai server delle app e dei siti, non
che probabilmente l'esito di consegna delle notifiche e altri dati utili sia a fini statistici
che di manutenzione. A questo punto ci tengo ad essere chiaro, io non ho trovato articoli online
(13:02):
che illustrassero esplicitamente la procedura utilizzata da Google per fornire le informazioni
all'FBI del caso di cui stiamo parlando o altri simili, ma a questo punto con quello che ci siamo
detti finora possiamo provare ad immaginare i pasti seguiti, poi se qualcuno ne sa di più su questo
(13:25):
argomento potrà tranquillamente confermare o smentire le seguenti supposizioni. Immaginiamo
di avere la possibilità di consultare i log dei server delle notifiche push di Google. Come
potremmo fare ad individuare l'identità di uno specifico utente che stiamo monitorando su una chat,
(13:46):
una qualsiasi WhatsApp, Telegram, Teleguard o chi che sia? Beh, un'idea potrebbe essere quella di fare
arrivare all'utente una serie di notifiche con caratteristiche uniche, in questo modo potremo
poi andare a ricercarle all'interno dei log ed usarle per individuare un codice argomento a cui
(14:07):
è iscritto l'utente. Ad esempio, io potremmo spedire messaggi contenenti specifiche stringe
di testo abbastanza complesse da essere potenzialmente uniche e abbastanza brevi da
rientrare nell'anteprima della notifica, oppure potremmo spedirgli una serie di messaggi con un
(14:29):
particolare pattern temporale, ad esempio generando un preciso numero di notifiche in un arco di tempo
ben definito. In entrambi questi casi, avendo accesso ai log del server push, potremmo poi
effettuare delle ricerche ed individuare, con buona approssimazione, l'utente a cui abbiamo inviato
le nostre notifiche trappola. L'identificativo dell'argomento, salvo eventi eccezionali,
(14:55):
sarà sempre uguale per tutte le notifiche inviate all'utente per quella particolare chat e,
pertanto, fungerà da elemento comune tra i risultati della ricerca negli archivi.
In pratica le ricerche saranno qualcosa del tipo estraiamo tutti i identificativi per cui sono
state inviate notifiche push contenenti la stringa trappola spedita via chat il giorno
(15:20):
tot alle ore tot, oppure estraiamo tutti i identificativi per cui sono state inviate notifiche
push alla seguente data e ora e specifichiamo tutti gli orari dei messaggi che gli abbiamo spedito.
A questo punto non ci resterà che accedere al database dei server push e individuare i
(15:40):
dispositivi e quindi gli utenti iscritti a ricevere notifiche dai codici argomento venuti
fuori dalle nostre query di ricerca. E semplicemente il gioco è fatto. Le probabilità di trovare più
di un utente che corrisponda ai risultati della ricerca saranno relativamente basse,
(16:01):
ma anche in caso contrario sarà possibile poi completare le indagini in modo tradizionale.
Per l'FBI infatti un conto è non avere idea di chi si sta cercando,
tutt'altra cosa invece è dover indagare su un numero molto ristretto di sospetti.
Quale che sia effettivamente la tecnica utilizzata da Google e dalle FBI, quel che è certo è che
(16:30):
è stata essenziale per catturare un criminale, quindi ad una prima impressione può sembrare
un'ottima cosa. Riflettendoci un po' più a fondo però la notizia è anche piuttosto preoccupante.
Questa sorta di indagine del Washington Post ha suscitato più di una perplessità perché in
effetti ha fatto emergere un meccanismo di sorveglianza di massa da parte di grandi nomi come
(16:55):
Google o Apple che è in piedi ormai danni e se in generale la sorveglianza di massa non è mai
una buona idea è ancora peggio quando è messa in atto da soggetti privati, tanto per cominciare
finché la tecnica dell'individuazione tramite notifiche push viene utilizzata dalle forze
dell'ordine dei governi democratici diciamo che potrebbe ancora andarci bene, ma il problema come
(17:22):
sempre nasce quando questi meccanismi sono nelle mani di entità diversamente democratiche,
oltretutto noi magari oggi possiamo essere d'accordo con chi è al potere ma ciò non
implica che lo saremo sicuramente anche domani e la presenza di un meccanismo così pervasivo
per scovare le persone potrebbe diventare un grosso problema. Si a Google che Apple hanno
(17:47):
dichiarato che se fino ad ora non lo facevano già per il futuro pretenderanno sempre un'ingiunzione
del tribunale per effettuare questo tipo di controlli sui dati dei propri utenti, ma come ben
sappiamo questa è una blanda rassicurazione, a centrare tante informazioni in un unico punto le
(18:08):
rende molto desiderabili da parte di chi pensa di poterne ricavare vantaggio o addirittura
profitto sia legalmente che illegalmente. Inoltre Google o Apple o qualsiasi altra società non
sono entità monolitiche ma sono fatte di migliaia di persone, il fatto che un'azienda dichiari di
tenere al sicuro dei dati non implica necessariamente che ogni singola persona al suo interno non
(18:33):
possa decidere di fare qualcosa di stupido con quei dati. In tutto questo comunque noi
utenti non possiamo fare praticamente più nulla per evitare di essere sottoposti a questa
sorveglianza passiva, se non iniziare a rifiutare ogni tipo di notifica futura e magari scegliere
(18:55):
dispositivi privi di notifiche push con però tutti gli svantaggi del caso. Al momento infatti
esistono degli smartphone con sistemi operativi open source e senza servizi Google o Apple ma
difficilmente possono essere pensati per un uso da parte di chiunque perché hanno delle limitazioni
(19:15):
e richiedono che l'utente abbia un minimo di competenza senza contare che poi le notifiche push
sono molto comode e utili e in ogni caso una misura del genere non risolverebbe nemmeno il problema
in toto ma solo per le app esiti che utilizzeremo in futuro per quelle già autorizzate ormai il
danno è fatto. Se anche infatti disattivassimo totalmente le notifiche push questo non ci assicurerebbe
(19:41):
la rimozione degli identificativi e la completa disconnessione dei vari servizi già registrati
né tanto meno il mancato in via delle notifiche da parte di questi ultimi. In tal caso infatti il
flusso di notifica si interromperebbe una volta arrivato sul server push non a monte sul server
perchè origina i dati e ce li spedisce cuidisci. Quindi noi non vedremmo le notifiche ma saremmo
(20:06):
comunque individuabili esattamente come se le ricevessimo normalmente. Per capirci riprendendo
l'esempio di prima se disattivassimo le notifiche di whatsapp il server dell'app di messa gistica potrebbe
continuare a mandare notifiche ai server di google e apple e sarebbero poi questi ultimi a non
(20:26):
recapitarli al nostro dispositivo pur però continuando a ricevere tutte le informazioni necessarie
per identificarci. Insomma, come affermato già un anno fa da parte dell'esperto di privacy David LeBow
in un articolo piuttosto interessante sull'argomento le notifiche push sono un incubo per la privacy.
(20:48):
Trovi sempre il link in descrizione.
Ma è proprio impossibile difendersi da questo sistema di sorveglianza di massa?
Beh, guardando all'esempio di Threema, in verità no, qualcosa si può fare. Threema è un app di
messaggistica svizzera che pone particolare enfasi sul rispetto della privacy e della sicurezza dei
(21:15):
propri utenti. I suoi sviluppatori al corrente già da tempo del problema delle notifiche push
hanno deciso di implementare per la propria app un sistema di notifiche push ad hoc utilizzando
dei server propri e senza appoggiarsi a quelli dei giganti di big tech. In tal modo l'azienda ha
(21:38):
il pieno controllo su tutti gli aspetti delle notifiche e dall'archivazione alla codifica
e tutte le informazioni vengono protette da intrusioni esterne. Nel caso te lo stessi chiedendo,
questo non vuol dire che l'app è diventata il ritrovo di criminali e terroristi perché il fatto
di tenere al sicuro i dati da occhi indiscreti non vuol dire non collaborare con le forze
(22:02):
dell'ordine quando richiesto. Vuol dire solo decentralizzare le informazioni e fare in modo
che esse non siano alla merce di chiunque. In pratica anche se l'app 3 ma gira su piattaforme
come pc windows o smartphone android, il fatto che la comunicazione avvenga tramite i server
(22:23):
privati dell'azienda permette di non utilizzare i push token nei codici argomento di google o di
microsoft. In tal modo la comunicazione è protetta e sottratta alla sorveglianza di massa. Se
anche qualcuno entrasse in possesso delle informazioni di 3 ma infatti, al massimo potrebbe arrivare a
conoscere l'account 3 ma dell'utente e i dati in possesso dell'azienda, ma non li potrebbe collegare
(22:50):
ad altre informazioni su altre app utilizzate da questa persona o installate sul suo dispositivo.
Il concetto in pratica è quello di separare i flussi delle notifiche push. Se ogni app utilizzasse
il proprio server push, tutte le informazioni resterebbero separate e raccoglierle a strascio,
(23:10):
sarebbe molto più complicato per chi non è autorizzato a farlo. Purtroppo a causa delle
restrizioni apple tutto questo discorso per ora non è applicabile su iphone, ma il caso 3 ma
resta comunque un esempio virtuoso, che se seguito da tanti sarebbe un'ottima soluzione per migliorare
(23:32):
la protezione della privacy di tutti i noi utenti. Prima di concludere l'episodio ho già un piccolo
annuncio da fare, se usi google podcast spero saprai che l'app sta per essere dismessa e a breve
entrerà a far parte del famigerato cimitero di google, quindi ti consiglio di passare ad altre
(23:56):
app, trovi pensieri in codice su tutte le migliori app di podcast o su youtube music se sei particolarmente
affezionato ai prodotti google. Detto questo ti ricordo che ormai da qualche mese pensieri in
codice aderisce prenderà la filosofia value for value, il che vuol dire che non sentirai
pubblicità e non sarà tracciato o tracciata, le tue informazioni non saranno distribuite in giro,
(24:22):
ma tu puoi scegliere liberamente se è come restituire il valore che senti di ottenere da questo progetto. In
pratica, se ti dispiacerebbe se pensieri in codice non ci fosse, se per te questo podcast ha un
valore e quanto grande lo decidi tu, puoi scegliere di ricompensarlo con una delle 3 t, time, talent o treasure.
(24:48):
Cosa vuol dire? Vuol dire che io mi impegno a portare avanti il progetto al meglio delle mie possibilità e tu in
cambio puoi dedicare un po' del tuo tempo, ad esempio puoi parlarne e farlo ascoltare a qualcuno che
pensi che possa apprezzarlo, puoi scrivere una recensione su itunes o su qualche altro servizio,
(25:10):
puoi citarlo nei tuoi contenuti etc. oppure puoi mettere al servizio il tuo talento,
sai programmare, puoi aiutare con i servizi e gli automatismi o a sistemare qualche parte del
sito, sai gestire i social, puoi farti carico di uno o più aspetti collegati alla diffusione,
o puoi cimentarti con qualsiasi altro talento, proponi direttamente tu cosa. Ad esempio in questi
(25:36):
giorni Francesco e Antonio mi hanno aiutato tantissimo, il primo con la creazione delle
trascrizioni e delle locandine e il secondo sviluppando automatismi per la pubblicazione di
news nel gruppo telegram. E infine la terza attista per treasure, cioè puoi fare una donazione che
aiuti a coprire le spese che un progetto del genere porta, che non sono poche se pensi che
(26:01):
spazziano dai costi delle attrezzature dei servizi fino al mio impegno in termini di tempo.
E a questo proposito un grande ringraziamento va come sempre ad Eduardo e Carlo che se non
sbaglio a breve arriveranno a due anni come donatori fissi. Grazie ragazzi.
E niente, il sito pensierincodice.it ormai lo conosci e ci trovi tutte le informazioni che
(26:25):
ti possono servire se vuoi scrivermi, unirti alla community, fare donazioni, etc. Noi ci
sentiamo al prossimo episodio e tu non dimenticare mai che un informatico risolve problemi a volte
anche usando il computer.