[Golem] Due parole sulle modalità antitracciamento di Firefox

Giacomo Tesio giacomo@tesio.it
Mer 24 Maggio 2023 22:46:21 CEST


Ciao Giomba,

purtroppo il Web contemporaneo non funziona più come l'hai descritto: è estremamente più complicato.

Ad esempio, in molte circostanze può bastare l'IP per identificare un utente, le connessioni
possono essere persistenti e bidirezionali e la cache del browser ormai è specifica per ogni
sito, azzerando la probabilità (ad esempio) che un carattere tipografico o uno script scaricato
da un server per un sito, venga riutilizzato per il successivo.

Mozilla (che sviluppa Firefox) prende miliardi di dollari ogni anno da Google per tenerlo come
motore di ricerca predefinito e, nonostante il marketing, è totalmente allineato ai dettami
del padrone.

Browser alternativi come LibreWolf o IceRaven/Mull tentano di limitare i danni 
(insieme a estensioni come uBlock Origin, LocalCDN etc...).

In generale però la qualità di un sito web è facilmente misurabile proprio dalla sua
indipendenza dagli strumenti di tracciamento.

In altri termini, se un sito non funziona senza tracciarti, è una buona idea evitarlo.


Giacomo

Il 24 Maggio 2023 16:23:32 UTC, giomba@linux.it ha scritto:
>Ieri sera, in Officina, è nata una piccola discussione su "comportamenti strani e inusuali dei siti web", che si è conclusa con la risoluzione del problema puntuale che era stato riscontrato, ma che, a mio avviso, necessita di maggiore approfondimento.
>Questa mail è il risultato del discorso lasciato a metà ieri sera.
>
>Per capire il motivo dietro a certi comportamenti strani, è prima necessario che descriva approssimativamente come funziona il web.
>Quello che segue è un riassunto di come funziona il web fatto da uno che non lo sa, quindi, per qualunque imprecisione, invito gli esperti a intervenire. So già che ci sono imprecisioni, che magari qualcuno mi potrebbe chiarire anche a me :-)
>
>Il web è un servizio di tipo client-server, dove il client (cioè il browser dell'utente, per esempio Firefox), richiede delle risorse al server (cioè chiede le cosiddette "pagine web" a un altro computer, il server, che sta lì sempre acceso, pronto a rispondere).
>
>Quando il client chiede una pagina, la conversazione tra client e server si svolge essenzialmente in questo modo:
>
>client: "ciao server, mi mandi la pagina X?"
>server: "ok tieni la pagina X"
>
>Se, successivamente, il client dovesse richiedere un'altra pagina allo stesso server, il server non avrebbe nessuna idea che si tratta dello stesso client, perché il protocollo di comunicazione non prevede nessuna informazione sullo stato pregresso.
>
>Ora si immagini che ci si debba registrare su un sito web e si debbano performare delle operazioni in modo autenticato: secondo quando descritto sopra, sarebbe necessario autenticarsi per ogni pagina che si visita su quel sito, cioè si dovrebbe continuamente inserire la propria password ad ogni cambio di pagina.
>
>Questo però non avviene, perché sono stati inventati i famigerati cookie.
>
>Cos'è un cookie? Un cookie non è altro che un piccolo identificatore che il server manda al client la prima volta che questo si collega, e che poi il client gli rimanda indietro ogni volta che si collega di nuovo.
>Guardando il cookie, il server è in grado di capire se sta servendo delle pagine web ad un client che ha già incontrato.
>
>Dunque la conversazione con i cookie si svolge così:
>
>client: "ciao server, mi mandi la pagina X? non ho cookie"
>server: "ok tieni la pagina X; il tuo cookie è 1234"
>
>In seguito, il client che si ricollega, dirà:
>
>client: "ciao server, mi mandi la pagina X? Io sono 1234"
>server: "ok tieni la pagina Y; il tuo cookie è sempre 1234"
>
>In questo modo, il server sa che sta parlando con lo stesso client di prima, e può evitare di chiedergli di nuovo la password.
>
>Da questo esempio si evince già una cosa: che tutti gli avvisi sull'accettazione dei cookie che siamo costretti a cliccare quando navighiamo, sono fuffa, perché tutta la responsabilità dell'utilizzo dei cookie è del client, e non del server.
>Il client può benissimo accettare tutti i cookie che vuole, basta che poi non li rimandi indietro al server, e quest'ultimo non avrà "nessun" modo di tracciarlo.
>
>Detto questo, continuiamo il percorso sul funzionamento del web.
>Le pagine web sono oggetti complessi costituiti da numerosi elementi: il testo, lo stile di visualizzazione, le immagini, eccetera.
>Ognuno di questi elementi necessita di essere richiesto separatamente al server: prima la pagina col testo, poi tutti gli elementi accessori.
>Ne consegue che la conversazione per ricevere una pagina web complessa da un server, sarà qualcosa di più lungo, tipo:
>
>client: "ciao server, mi mandi la pagina X?"
>server: "ok tieni la pagina X"
>Il client visualizza la pagina, e scopre che c'è allegato uno stile di visualizzazione, chiamiamolo S, dunque lo chiede al server.
>client: "ciao server, mi mandi lo stile S?"
>server "ok tieni lo stile S"
>
>Solo a questo punto, il client è in grado di comporre e visualizzare correttamente la pagina web.
>
>Una pagina web moderna si compone di numerosi elementi.
>Per esempio, quando si accede alla home page del GOLEM, si avviano circa 40 richieste per 40 file diversi.
>
>Ora: non è necessario che tutti questi elementi risiedano sullo stesso server. Per esempio, il testo di una pagina potrebbe risiedere su un server, mentre le immagini e i caratteri tipografici su un altro.
>
>Questo può avvenire per numerose ragioni, per esempio perché il server per servire le immagini è più vicino all'utente, per migliorare le prestazioni, ... ogni sito web sceglie la sua strategia, in base a decisioni tecniche e non.
>
>Alcuni noti giganti dell'informatica forniscono insiemi di "blocchettini" per comporre le pagine web in grande quantità: per esempio script per velocizzare lo sviluppo, o caratteri tipografici.
>Il vantaggio di raccogliere questi file su un server solo e noto, fa sì che, durante la navigazione, se il client deve recuperare più volte lo stesso file, possa accorgersi che si tratta sempre dello stesso file, ed eviti di scaricarlo più volte, velocizzando la navigazione.
>(Anche e soprattutto quando più siti diversi fanno uso dello stesso file condiviso)
>
>Alcuni di questi servizi sfruttano la loro centralità per tracciare l'utente: per esempio, quando si naviga su siti diversi A e B, ma che utilizzano lo stesso carattere tipografico, anche se il client accede a due server diversi A e B per il contenuto testuale, poi va sempre a recuperare il carattere tipografico dallo stesso server terzo.
>In questo modo, il server che fornisce i caratteri tipografici, è in grado di correlare il fatto che il client ha visitato i due siti A e B.
>
>Per inferire questa informazione, il server tracciante può utilizzare i cookie di cui sopra, che il client gli rimanda indietro.
>(E anche altri meccanismi di cui non so abbastanza, per esempio, mi viene in mente il fingerprinting, e altre diavolerie che non conosco, e per cui servirebbe almeno un programmatore web).
>
>Il server tracciante, non vedendo mai i cookie provenire da un client, può però insospettirsi, e capire che il client sta utilizzando qualche meccanismo di protezione dalla tracciatura, perché essenzialmente gli appare spesso, e sempre anonimo.
>A questo punto, dunque, per "invitarlo gentilmente" a riabilitare la tracciatura, semplicemente smette di fornirgli i contenuti che sta richiedendo, così da causargli un disservizio.
>
>Il client dunque si può ritrovare con pagine web parzialmente funzionanti, in cui mancano immagini, in cui manca lo stile di visualizzazione, in cui manca il carattere tipografico carino, e così via.
>
>Utilizzare una delle modalità "Restrittive" fornite da Firefox contro il tracciamento, se da una parte migliora l'esperienza utente dal punto di vista della privacy, dall'altra la può peggiorare dal punto di vista della fruibilità.
>
>In questo periodo storico, il mondo intero va nella direzione della tracciatura, perciò Firefox fa quel che può, ma non è infallibile, e ciò che può funzionare oggi non è detto che funzioni domani.
>Magari domani qualche sviluppatore del server tracciante affina la tecnica per identificare i meccanismi antitracciatura di Firefox, e di colpo causa nuovi disservizi agli utenti di numerosi siti web diversi; poi Firefox si aggiornerà e riuscirà di nuovo ad aggirare queste restrizioni, finché qualcuno non affinerà di nuovo l'algoritmo, e così via: è un gioco di guardie e ladri.
>
>Del resto, non è detto che ciò che è giusto vada anche di moda.
>
>Su Firefox poi possono essere installate numerose estensioni mirate a mitigare numerose questioni di tracciamento, alcune di queste sono indicate qua:
>https://wiki.golem.linux.it/Igiene_Informatica
>
>(ennesima pagina che avrebbe bisogno di essere aggiornata per gli strumenti, ma che rimane comunque valida per i metodi)
>
>Sperando di aver chiarito la discussione avuta ieri sera,
>un saluto.
>
>--
>giomba
>
>_______________________________________________
>golem mailing list
>golem@lists.linux.it
>https://lists.linux.it/listinfo/golem


Maggiori informazioni sulla lista golem