Firefox continua a reprimere il monitoraggio con il partizionamento della cache

579

Ingrandire / suddividere la cache del browser in pool separati impedisce sofisticati controlli di temporizzazione che consentono a un sito di sapere se si è connessi a un altro.

La versione 85 di Firefox verrà rilasciata a gennaio 2021 e una delle sue caratteristiche è l'aumento della privacy degli utenti tramite miglioramenti nel partizionamento dello storage lato client (cache). Questo è stato ampiamente e erroneamente segnalato altrove come partizionamento di rete, probabilmente a causa della confusione intorno al flag di stato privacy.partition.network in Firefox, che consente agli utenti avanzati di abilitare o disabilitare il partizionamento della cache come desiderato.

Contents

Che cos'è il partizionamento della cache e perché potrei volerlo?

In poche parole, il partizionamento della cache è il processo di mantenere pool di cache separati per siti Web separati, in base al sito che richiede le risorse caricate, piuttosto che semplicemente sul sito che fornisce le risorse.

Con una cache del browser tradizionale con ambito globale, potresti vedere un comportamento come questo:

  • l'utente accede a https://coolwebsite.com/
  • molte risorse diverse vengono caricate e memorizzate nella cache, incluso https://coolwebsite.com/logo.jpg
  • l'utente accede a https://shadywebsite.com/
  • in un div nascosto, shadywebsite carica https://coolwebsite.com/logo.jpg
  • shadywebsite utilizza elementi JavaScript per calcolare il tempo necessario al browser dell'utente per visualizzare logo.jpg
  • Poiché https://coolwebsite.com/logo.jpg era nella cache, il rendering viene eseguito in meno di cinque millisecondi
  • shadywebsite ora sa che l'utente ha recentemente visitato https://coolwebsite.com/ – perché se logo.jpg non fosse stato memorizzato nella cache, sarebbe stato necessario più tempo per il rendering nel browser.
  • Quando si utilizza una cache partizionata, la copia di https://coolwebsite.com/logo.jpg che è stata scaricata e memorizzata nella cache quando l'utente ha visitato coolwebsite non è disponibile quando l'utente visita shadywebsite. Poiché non esiste una copia del file nel cache pool specifico del sito di shadywebsite, logo.jpg deve essere caricato direttamente, indipendentemente dal fatto che si trovi o meno nel cache pool di coolwebsite.

    Questa è una versione molto semplicistica degli attacchi di temporizzazione della cache che si verificano regolarmente: attacchi più sofisticati possono concentrarsi su elementi che implicano fortemente che un utente sia attualmente connesso a un sito non correlato, piuttosto che semplicemente averlo visitato di recente.

    Annuncio pubblicitario

    In alcuni casi, il sito Web che attacca può persino essere in grado di espellere con la forza i record della cache, il che può consentirgli di vedere quanto tempo impiega quei record a riapparire, fornendo ancora più dati sulle attività dell'utente.

    Per una discussione più dettagliata sul partizionamento dello storage lato client, vedere l'elemento di lavoro del W3C Privacy Community Group sull'argomento, all'indirizzo https://github.com/privacycg/storage-partitioning.

    Qual è lo svantaggio del partizionamento della cache?

    Esistono alcune risorse Web che sono legittimamente utilizzate quasi universalmente su migliaia o milioni di siti, ad esempio i caratteri incorporati forniti da fonts.google.com. Con una cache con ambito globale, site1.com potrebbe incorporare una copia del carattere Roboto da fonts.google.com e quando site2.com tramite site999.com incorporano lo stesso carattere, può essere distribuito dalla cache del browser.

    Sotto una cache partizionata, la copia di Roboto di site1.com è accessibile solo a site1.com stesso: quando l'utente accede a site938.com, che incorpora anche Roboto dalla stessa fonte, deve essere scaricata (e memorizzata nella cache) separatamente.

    Quali risorse verranno partizionate in Firefox 85?

    Come riportato da ZDNet, le seguenti risorse verranno ora partizionate quando privacy.partition.network_state è abilitato:

    • Cache HTTP
    • Cache delle immagini
    • Cache Favicon
    • Pool di connessioni
    • StyleSheet cache
    • DNS
    • Autenticazione HTTP
    • Alt-Svc
    • Connessioni speculative
    • Cache dei caratteri
    • HTTP Strict Transport Security (HSTS)
    • Protocollo di stato del certificato in linea (OCSP)
    • Cache CA intermedia
    • Certificati client TLS
    • Identificatori di sessione TLS
    • Precarica
    • Preconnettere
    • Cache di verifica preliminare CORS

    Anche se questo sarà il più ampio schema di partizionamento della cache dei dati utente in produzione una volta avviato, Mozilla sta cercando di recuperare il ritardo nella distribuzione di uno. Apple ha iniziato a partizionare la cache del browser di Safari nel 2013 e da allora ha continuato a partizionarla ulteriormente e Google ha partizionato la cache HTTP di Chrome a partire da Chrome 86, rilasciato all'inizio di ottobre.

    Ciò lascerà Microsoft Internet Explorer e Edge come gli ultimi browser mainstream con cache HTTP con ambito globale. Edge presumibilmente otterrà il partizionamento della cache in modo efficace per impostazione predefinita in quanto si ridisegna sulle nuove versioni di Chromium in futuro.