Safari 浏览器的智能跟踪预防工作原理

阅读数:345 2018 年 6 月 20 日

话题:安全Apple语言 & 开发架构

最新版本的 Apple 浏览器Safari 12将提供“智能跟踪预防”(Intelligent Tracking Prevention,ITP)2.0,旨在降低第三方通过 Cookie 和其他方法跟踪网络用户的能力。

Safari 和 MacOS、iOS 和 Linux 上的很多应用程序都使用开源的 Web 浏览器引擎WebKit。WebKit 中的 ITP 功能会收集有关网页资源加载以及用户交互(如“轻触、单击和文本输入”)的统计信息。统计信息会存储在每个顶级私有控制域或 eTLD+1 中,eTLD+1 是由典型的网站 URL 基地址组成的“有效顶级域名(Top Level Domain)”的简写。一个 eTLD+1 的例子是 social.co.uk,但 sub.social.co.uk 不是(eTLD+2),co.uk 也不是(eTLD)。根据 WebKit 博客所述,他们使用了一个机器学习模型,基于所收集的统计数据来分类哪些顶级私人控制域有跟踪用户跨站点的能力。所有数据收集和分类均在设备上进行。

因为 eTLD 被分类为可跟踪用户跨站点,所以在 ITP 版本 1.0 和 1.1 中实现了几项预防措施。如果用户在过去 30 天内未与某个网站互动,比如“example.com”,那么 example.com 网站数据和 Cookie 将立即被清除,新添加的数据也会继续被清除。但是,如果用户将 example.com 作为顶级域名(通常称为第一方域名),则 ITP 会认为用户对该网站感兴趣,并暂时调整其行为,如以下时间线所示:



在使用 ITP 1.0 和 1.1 时,如果用户在过去 24 小时内访问了 example.com,则在请求 example.com 资源或将其作为第三方嵌入资源时,其 cookie 也可用。根据 WebKit 博客,这样可以允许“使用 X 帐号登录 Y 网站”。这意味着用户只能从实际访问的网站获得持久性 Cookie 和网站数据,并且在浏览网页时会主动删除跟踪数据。

如果用户在过去 30 天但不是最近 24 小时访问 example.com,example.com 会保留其 cookie,但它们将被“分区”。分区意味着第三方将根据每个顶级私人控制域或 TLD+1 获得唯一的独立存储。例如,account.example.com 和www.example.com共享分区 example.com。这样,即使用户偶尔访问某个网站,也可以保持登录状态,同时限制使用 Cookie 进行跨网站跟踪。

ITP 2.0已经删除了 24 小时的 Cookie 访问窗口。通过身份验证的嵌入只能通过 Storage Access API 访问第一方 Cookie。ITP 2.0 还限制了第三方内容,以便只有在用户实际使用内容时才能识别用户,比如撰写评论或播放视频。这也是 Safari 会向用户询问许可的地方(比如 widget 要求许可查看其 Cookie)。



ITP 2.0 还具有检测一个域名被用作“第一方跳转跟踪器”的能力,这意味着它不会被用作第三方内容提供者,而是纯粹通过导航重定向来跟踪用户。这种模式经常出现在社交媒体网站提供的短链接中。其他对策还包括防止追踪者串通(多个站点试图串通来识别用户),以及对于非用户交互的域名使用 origin-only referrer(例如,“https://store.example/baby/strollers/deluxe-stroller-navy-blue.html”变成简单的“https://store.example/”)。

Safari 技术预览版58 现已提供下载,可在 macOS High Sierra 和 macOS Mojave 的 beta 版上安装。

查看英文原文How Apple's Intelligent Tracking Prevention in Safari Works