È così.

Internet: un sistema senza memoria

A partire dal nome caruccio e continuando con la definizione che ne viene data nei pop-up del consenso al trattamento dei dati personali, “piccolo pezzetto di codice”, il cookie sembra un affare piuttosto innocuo. È invece al centro di un titanico sforzo legislativo internazionale che in Europa si chiama General Data Protection Regulation (GDPR), nonché la base di un’industria screditata ma fiorente, il programmatic advertising (l’advertising online automatizzato, personalizzato e distribuito con meccanismi d’asta istantanea).

Non avendo studiato informatica ho dovuto faticare per capire perché fosse stato inventato il cookie. Non la sua funzione, che è chiara: registrare frammenti di informazioni sulla nostra attività online in file di testo; ma il motivo per cui è stato necessario un escamotage per trattenere queste informazioni, insomma, capire perché questa funzione non fosse già prevista dalle infrastrutture del Web.

Il motivo è nel protocollo http (HyperText Transfer Protocol), ovvero il codice utilizzato dal nostro browser per comunicare con i server e ottenere in risposta un sito, ed è il fondamento della trasmissione dei dati in tutto il Web. Il protocollo http è definito stateless. Questo significa che non ha memoria, che non trattiene, se non per la sessione corrente, le informazioni relative alla nostra navigazione. Http è stateless perché “dimenticare” le informazioni, o meglio non registrarle, evita sovraccarichi del server, è più efficiente.

La memoria corta del protocollo http ha reso necessario trovare un modo alternativo per infondere un qualche ricordo delle nostre azioni online ai browser: il cookie, archiviato nei browser stessi, fa proprio questo.

Il cookie era già stato inventato in precedenza, ma viene riutilizzato per la funzione di conservazione delle informazioni degli utenti sul Web nel 1994 da un certo Lou Montulli, che all’epoca lavora presso Netscape, uno dei primi browser. Lou si definisce “Early Web guy” e a giudicare dal suo blog è un personaggio con una compulsione a tradurre il mondo in codice e numeri. Il motivo contingente che lo spinge a trovare una soluzione perché un sito ricordi alcuni dati più a lungo di una sessione di navigazione è l’autenticazione e il conteggio degli utenti su Netscape e, subito dopo, l’e-commerce: l’utente entra sul sito di e-commerce, mette un paio di articoli nel carrello, esce e, quando rientra, li ritrova lì, cosa che avvantaggia sia lei, che non deve ripetere l’operazione, sia l’e-commerce, che vede aumentata la probabilità che si concluda l’acquisto (e ha visibilità sul contenuto del carrello anche degli ordini non completati).

Immagine presa dal paper Behind the one way mirror, della Electronic Frontier Foundation

Ho fatto fatica a trovare la risposta anche a questa domanda: appena si sconfina, anche di poco, dagli articoli divulgativi sui cookie che dicono senza approfondire, si entra in una giungla fatta di simboli, segni e significati per lo più indecifrabili. Alla fine però sono atterrata su una specifica tecnica del protocollo http che mi ha inaspettatamente chiarito la questione. Non sarà Calvino, ma in confronto ad altra letteratura tecnica è di abbastanza piacevole lettura.

Dal documento traspare che non è stato il cookie ad essere “inventato”, bensì il protocollo http è stato modificato in modo da permettere ai server di depositare informazioni sui nostri computer. Il protocollo rimane quindi sempre incapace di conservare le informazioni, ma grazie a questa modifica può dire ai nostri browser di farlo al posto suo.

Un esempio molto semplice può aiutare a chiarire il concetto:

  • Digito l’indirizzo di un sito che richiede un login;
  • Creo username e password per l’accesso al sito ed effettuo il login;
  • Il server risponde con un comando per il mio browser che si chiama “Set-Cookie” e che contiene i dettagli di login che ho appena creato;
  • Il browser crea il piccolo file .txt (cookie) che contiene i miei dettagli di login e lo salva nel mio dispositivo;
  • Ogni volta mi ricollego allo stesso sito, il mio browser invierà al server anche i dettagli di login salvati nel cookie e non devo effettuare nuovamente il login.

A questo punto, dato che mi sto addentrando, vediamo proprio com’è fatto un cookie, da che parti è composto.

Ecco un esempio concreto della comunicazione che avviene tra il server e l’User Agent (in questo caso il nostro browser, che ci rappresenta a tutti gli effetti nella comunicazione).

== Server -> User Agent ==
   Set-Cookie: SID=31d4d96e407aad42
   Set-Cookie: lang=en-US

== User Agent -> Server ==
   Cookie: SID=31d4d96e407aad42; lang=en-US

In questo esempio il Server sta dicendo all’User Agent, il nostro browser, di creare due cookie tramite il comando “Set-Cookie”. Un cookie si chiama “SID”, Session Identifier, ed è l’identificativo con cui da quel momento in poi il sito ci riconoscerà; l’altro si chiama “lang”, e si riferisce alle nostre preferenze di linguaggio per la pagina che stiamo visitando, nell’esempio inglese statunitense.

Il browser di conseguenza crea i due cookie, che poi comunicherà al server assieme alla richiesta di mostrarci i contenuti del sito ad ogni successiva visita, cosa che permetterà al sito di riconoscerci con il nostro identificativo e, nell’esempio, di caricare i contenuti in lingua inglese.

Esistono altre tipologie di cookie e altri attributi, cioè parametri; uno di questi è l’attributo “Expiration date”, che determina dopo quanto tempo il cookie verrà eliminato dal browser.

Dipende dal browser; in Chrome possiamo vedere tutti i cookie copiando e incollando nella barra degli indirizzi chrome://settings/siteData. Se invece vogliamo vedere tutti i cookie che sono salvati per la pagina che stiamo visitando, possiamo cliccare con il tasto destro del mouse e selezionare la voce “Inspect”; successivamente, selezioniamo “Application” dal menu in alto e poi “Cookies” nella sezione “Storage”.

Sotto il risultato di questa operazione fatta sul sito del Corriere della Sera, che dice al browser di salvare innumerevoli cookie, tra cui molti relativi all’advertising (come quello selezionato ed evidenziato in blu). I cookie sono criptati dal server per ragioni di sicurezza, quindi non possiamo capire a cosa si riferiscano. Il che è però anche un po’ bizzarro, dato che contengono informazioni relative alla nostra navigazione: il nostro browser comunica in codice con il server del sito che stiamo visitando, ed enne altri.

La differenza tra queste due tipologie di cookie è fondamentale. I first party cookie sono scambiati tra il nostro browser e il sito che abbiamo scelto di visitare. Possono essere cookie funzionali come quelli di cui ho parlato poco sopra e contenere informazioni di login o preferenze relative alla lingua dei contenuti. Possono anche essere cookie relativi al modo in cui navighiamo sul sito, i link che clicchiamo, la frequenza con cui lo visitiamo, il contenuto del nostro carrello se si tratta di un e-commerce.

I cookie di terze parti, o third party cookie, sono invece cookie inviati al nostro browser da domini diversi dal sito che stiamo visitando. L’esempio del Corriere lo mostra chiaramente: quando ho inserito l’indirizzo http://www.corriere.it non ho affatto digitato ads.pubmatic.com, eppure il cookie è stato salvato dal mio browser.

Com’è possibile questo, dal momento che i cookie *dovrebbero* essere parte di una comunicazione privilegiata tra il mio User Agent e il dominio che sto visitando?

Visitare un sito per aprirne cento

In effetti non dovrebbe essere possibile per nessun sito che non stiamo visitando salvare cookie nei nostri browser. Il problema è che ogni volta che stiamo visitando un sito (anche criticaltech.it) apriamo una comunicazione a nostra insaputa con tanti altri siti quanti il sito che abbiamo davanti a noi permette, e praticamente non c’è eccezione alla regola.

Ad esempio, se il sito ha degli annunci pubblicitari, questi annunci appaiono sulla pagina grazie a una “chiamata” a un ad server (un server che gestisce gli annunci per conto dei brand che vogliono farsi pubblicità in modo automatizzato); e come abbiamo visto sopra, ogni volta che il server risponde può inviare assieme al contenuto richiesto un comando per creare cookie e salvarli nel nostro browser.

Questo succede anche quando una pagina ha al suo interno un video preso da Youtube o un altro provider terzo, come ad esempio il video di apertura di questo articolo; o quando c’è un bottone Like di Facebook o di un altro social media; o ancora quando il sito si appoggia a Google per le statistiche di traffico.

Nell’esempio sotto, a sinistra uno screenshot da una pagina di Rolling Stone, a destra i cookie salvati sul mio browser dalla stessa pagina. In basso vediamo l’icona di Facebook, e a destra il cookie corrispondente; il cookie di Instagram è presente perché nell’articolo è stato incollato un post del social media.

Questa è un’altra domanda banale, ma che in genere non è affrontata. Abbiamo detto che i contenuti del sito che stiamo visitando (plugin, immagini, video etc) potrebbero arrivare da altri domini, e ci arrivano sempre tramite il protocollo http, il che permette loro di salvare un cookie sul nostro browser.

Riprendiamo l’esempio di Facebook: visito Rolling Stone e questo, oltre che chiamare il server dove “abitano” i suoi contenuti, chiama anche Facebook perché ha un’icona per la condivisione degli articoli sul social. Facebook piazza un cookie nel mio browser che contiene di sicuro un nostro identificativo e il dominio principale che stiamo visitando. Queste informazioni non andranno perse: Facebook aggiungerà il dettaglio del sito che ho visitato, in questo caso Rolling Stone, al suo archivio su di me, che forse contiene già altri elementi. In questo modo, se ho un account Facebook, la prossima volta che lo visiterò potrei essere selezionata per visualizzare un annuncio che ha come destinatari gli appassionati di musica, per esempio.

Insomma, il cookie di Facebook diventa una sorta di “cimice” che dal momento dell’installazione fino al momento della sua cancellazione automatica comunicherà con Facebook, andando ad arricchire di dati il mio profilo presso l’azienda. Dico “cimice” non a caso: infatti i cookie di terze parti spesso vengono chiamati “tracking cookie”, cookie “informatori” sui nostri movimenti online.

25 anni di negligenza

Che i cookie aprissero diverse possibilità di pratiche illecite era molto chiaro fin dalla loro adozione. Già nel 1996 un sagace articolo comparso sul Financial Times, “This bug in your PC is a smart cookie”, lanciava l’allarme sui rischi posti dal cookie alla privacy, e il documento già citato, anche nella prima versione del 1997 compilata da Lou Montulli, ha un intero paragrafo dedicato all’argomento in cui, tra le altre cose, si legge: «Un server potrebbe creare un comando “Set-Cookie” per tracciare il percorso dell’utente nel server. Gli utenti potrebbero obiettare che questo comportamento è un’accumulo di informazioni intrusivo, anche se la loro identità non è evidente (l’identità potrebbe diventare evidente in seguito, se l’utente compila un form che contiene informazioni identificative).»

Il documento procede invitando i colleghi sviluppatori a dare notizia dei cookie all’utente, e a prevedere un’opzione che di default cancelli i cookie alla fine di ogni sessione di navigazione.

Questo succedeva 25 anni fa, e 22 anni prima dell’implementazione del GDPR che costringe i siti a dare notizia dei cookie; come ben sappiamo l’opzione di default, di regola, non è l’eliminazione dei cookie ma la loro accettazione indiscriminata, come nell’esempio qui sotto, preso da lastampa.it:

Come abbiamo visto, il guardiano più efficace per impedire la creazione di cookie da parte di servizi terzi è il nostro browser. Safari e Mozilla già da tempo li bloccano di default, e Chrome, che ha 2/3 del mercato dei browser, li bloccherà a partire dal 2022 (con MOLTI caveat, come spiegherò in un prossimo articolo). I cookie di terze parti quindi stanno finalmente raggiungendo l’obsolescenza che si meritavano. Purtroppo però i cookie non sono l’unico modo per tracciarci online: esistono già modi alternativi e più efficaci, ed altri sono allo studio tra le aziende di ad tech il cui interesse è preservare lo status quo e continuare a servirci annunci personalizzati, costi quel che costi.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s