跟踪器和广告技术公司长期以来一直滥用浏览器功能来跟踪网络上的人们。自2018年以来,我们一直致力于减少跟踪用户的方式。作为第一道防线,我们已阻止来自已知跟踪器的Cookie和来自已知指纹识别公司的脚本。
在Firefox 85中,我们对浏览器的网络架构进行了根本性的更改,以使我们的所有用户更加安全:现在,我们通过所访问的网站对网络连接和缓存进行分区。跟踪器可以滥用缓存来创建超级cookie,并且可以使用连接标识符来跟踪用户。但是,通过隔离到创建它们的网站的缓存和网络连接,我们使它们对于跨站点跟踪毫无用处。
简而言之,可以使用超级cookie代替普通cookie来存储用户标识符,但是要删除和阻止它们要困难得多。这使得用户在浏览网络时几乎无法保护自己的隐私。多年来,已经发现跟踪器将用户标识符作为超级cookie存储在浏览器的越来越模糊的部分中,包括闪存,ETag和HSTS标志。
我们在Firefox 85中所做的更改通过消除跟踪器跨网站使用它们的能力,大大降低了基于缓存的超级cookie的有效性。
像所有网络浏览器一样,Firefox在网站之间共享一些内部资源以减少开销。 Firefox的图像缓存是一个很好的例子:如果将相同的图像嵌入到多个网站中,则Firefox将在访问第一个网站时从网络中加载图像,而在随后的网站上,传统上会从浏览器的本地图像缓存中加载图像(而是而不是从网络上重新加载)。同样,当从嵌入在多个网站上的同一方加载资源时,Firefox将重用单个网络连接。这些技术旨在节省用户带宽和时间。
不幸的是,一些跟踪器发现了滥用这些共享资源来跟踪网络用户的方法。对于Firefox的图片缓存,跟踪器可以通过在一个网站上缓存的图片中“编码”用户的标识符,然后通过嵌入同一图片在其他网站上“检索”该标识符,来创建超级Cookie。为了避免这种情况,Firefox 85为用户访问的每个网站使用了不同的图像缓存。这意味着当用户再次访问同一网站时,我们仍会加载缓存的图片,但我们不会在网站之间共享这些缓存。
实际上,跟踪器可以滥用许多不同的缓存来构建超级cookie。 Firefox 85通过访问的顶级站点对以下所有缓存进行分区:HTTP缓存,图像缓存,网站图标缓存,HSTS缓存,OCSP缓存,样式表缓存,字体缓存,DNS缓存,HTTP身份验证缓存,Alt-Svc缓存以及TLS证书缓存。
为了进一步保护用户免受基于连接的跟踪的影响,Firefox 85还对池连接,预取连接,预连接,推测性连接和TLS会话标识符进行了分区。
此分区适用于网站上嵌入的所有第三方资源,无论Firefox是否认为该资源已从跟踪域加载。我们的指标显示对页面加载时间的影响很小:在第80个百分点以下,增加了0.09%至0.75%,在第85个百分点最大增加了1.32%。这些影响与Chrome小组报告的影响相似,他们计划推出类似的缓存保护功能。
系统的网络分区使跟踪者更难绕过Firefox的反跟踪功能,但是我们仍然有更多工作要做,以继续加强我们的保护。请继续关注未来几个月的更多隐私保护!
重新设计Firefox如何处理网络连接和缓存不是一件容易的事,如果没有我们工程团队的不懈努力,就不可能实现:Andrea Marchesini,Tim Huang,Gary Chen,Johann Hofmann,Tanvi Vyas,Anne van Kesteren,Ethan曾(Tseng),普兰雅(Brangya Basu),梁雯妮(Engsan Akhgari)和李美美(Dimi Lee)。
我们要感谢为这项工作做出贡献和支持的许多Mozillians,包括:Selena Deckelmann,Mikal Lewis,Tom Ritter,Eric Rescorla,Olli Pettay,Kim Moir,Gregory Mierzwinski,Doug Thayer和Vicky Chin。
我们也要感谢Brave,Chrome,Safari和Tor浏览器团队的同事过去和正在进行的努力,以在自己的浏览器中与超级cookie作战。