Google 绕过用户隐私设置

当 IE 团队听说 Google 绕过了 Safari 上的用户隐私设置时,我们问了自己一个简单的问题:Google 是否也绕过了 Internet Explorer 的用户隐私首选项?我们发现答案是肯定的:Google 采用类似方法绕过了 IE 的默认隐私保护,并通过 Cookie 跟踪 IE 用户。下文中我们将进一步详细解释自己的发现,并为 IE 用户提供如何借助 IE9 的跟踪保护功能确保其隐私免遭 Google 侵害的建议。我们也联系了 Google,要求其承诺尊重所有浏览器用户的 P3P 隐私设置。

我们已经发现 Google 绕过了 IE 中的 P3P 隐私保护功能。虽然 Google 使用了不同的实际绕行机制,但其结果与近期内爆出的 Google 绕过 Apple Safari Web 浏览器隐私保护的报告相似。

Internet Explorer 9 具有一项名为跟踪保护的额外隐私功能,该功能不易受到此类绕行的影响。Microsoft 建议希望保护其自己免遭 Google P3P 隐私保护绕行的用户使用 Internet Explorer 9,并单击此处以添加跟踪保护列表。用户可以参阅本页面以获取额外的列表和信息。

背景知识:Google 绕过 Apple 的用户隐私设置

一篇最近的华尔街日报头版文章论述了 Google 如何“绕过 Apple 的浏览器隐私保护设置”。著名商业新闻和分析网站 Business Insider 的编辑和 CEO 将该事件总结如下:

Google 秘密地开发了一种能够绕过由其...竞争对手 Apple...建立的默认隐私设置的方法,[并且] 通过该方法向 Safari 用户植入广告跟踪 Cookie,而这正是 Apple 致力于阻止的做法。

第三方 Cookie 是一种用于跟踪用户在线行为的常见机制。Safari 通过拦截第三方 Cookie 的默认用户设置来保护其用户免遭这种类型的跟踪。Business Insider 总结道:

Safari 在默认情况下不允许第三方...Cookie 未经用户允许便植入其计算机。正是这种广告跟踪 Cookie 导致大量 Internet 用户陷入隐私遭到侵犯的恐慌,因此 Apple 决定对其采取默认拦截的策略也在情理之中。

但这些默认设置妨碍了 Google,至少妨碍了其广告业务的目标。

Google 的做法似乎是将第三方 Cookie 伪装为第一方 Cookie,从而骗过 Safari 浏览器。

IE 中发生的情况

默认情况下,IE 会拦截第三方 Cookie,但有一种例外情况,即网站出示一份 P3P 简短策略声明,并在其中表明该网站将如何使用 Cookie,承诺其用途不包括对用户进行跟踪。Google 的 P3P 策略导致 Internet Explorer 接受了 Google 的 Cookie,但该策略并未声明 Google 的意图。

P3P 是一种 W3C Web 标准组织官方推荐的 Web 技术,所有浏览器和网站都可为其提供支持。网站会使用 P3P 来描述 Cookie 和用户信息的用途。通过支持 P3P,浏览器可以根据网站的声明意图选择拦截或允许 Cookie,以便遵守用户隐私首选项。

值得注意的是,用户无法轻松访问 P3P 策略。网站会使用 HTTP 标头直接将这些策略发送至 Web 浏览器。只有精通技术的用户才能通过特殊工具(例如 Fiddler 工具中的 Cookie 检查器)查看 P3P 描述。例如,以下为 Microsoft.com 的 P3P 简短策略 (CP) 声明:

P3P:CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"

每个标记(例如 ALL、IND)对于 P3P 合规的浏览器都具有特定含义。例如,“SAMo”表明“我们 [本网站] 会将信息按照我们的做法与法律实体共享”,而“TAI”表明“信息可能会用于定制及修改网站内容或设计网站,但此类信息仅用于对该网站的单次访问,并且不会用于任何类型的未来定制”。由于隐私涉及的层面众多,因此 P3P 标准非常复杂。您可以在此处了解有关 P3P 的更多信息。

从技术层面来讲,Google 利用了 P3P 规范中一种微妙的细节,从而实现了绕过 Cookie 用户首选项这一效果。P3P 规范(为了给将来的隐私策略扩展预留空间)规定浏览器应忽略其遇到的任何未定义策略。Google 在其发送的 P3P 策略中未通知浏览器 Cookie 和用户信息的相关用途。事实上,Google 的 P3P 策略并非 P3P 策略。该策略只能通过人工方式阅读,而 P3P 策略是旨在供浏览器“读取”的策略: 

P3P:CP="This is not a P3P policy!See https://www.google.com/support/accounts/bin/answer.py?hl=en\&answer=151657 for more info."

P3P 合规的浏览器会将 Google 的策略解释为该网站不会将 Cookie 用于跟踪或任何其他用途。通过发送此文本,Google 将绕过 Cookie 保护,并保证其第三方 Cookie 不会遭到拦截。P3P 规范(“4.2 简短策略词汇表”)要求 IE 在处理未知标记时实施以下行为:“如果在简短策略中出现无法识别的标记,则该简短策略的语义等同于不存在该标记时的语义。”

同样,P3P 规范中“3.2 策略”一节的内容也值得引起注意:

3.2 策略

如果 P3P 词汇表无法足够准确的描述网站的做法,则网站应该使用最符合其做法的词汇表术语,并在 CONSEQUENCE 字段和/或其人工阅读策略中提供进一步的解释。但是,策略不得包含虚假或误导性陈述。

P3P 旨在支持网站传达其隐私意图。Google 在使用 P3P 时,未按照该技术要求的方式传达其意图。 

由于上述问题,以及不通过 Cookie 即可跟踪用户的新机制陆续出现,我们将注意力放在了新的跟踪保护技术上。

后续步骤

调查了 Google 发送至 IE 的内容后,我们确认了上述事实。我们制定了一份跟踪保护列表,如果 Google 继续实施这种做法,IE9 用户可以通过单击此处来获得保护。用户可以参阅本页面以获取额外的列表和信息。

如果用户从未向跟踪服务器发送任何信息,则跟踪服务器将不会获得使用 Cookie 或任何其他机制来跟踪用户的机会,这是 IE9 中跟踪保护功能的前提。此逻辑正是跟踪保护可以彻底拦截网络请求的原因。这种新技术方案目前正在由 W3C 进行标准化。

您可以在本博文中查看有关 IE Cookie 控制的更多信息,并了解如何拦截来自特定网站(例如,*.google.com)的所有第一方或第三方 Cookie。这种 Cookie 拦截方法不会受到 Google 所使用方法的影响。我们建议所有尚未使用 IE9 的用户采取本博文中所述的步骤。

有鉴于此类实际情况,我们仍在调查还需要对产品进行哪些更改。P3P 规范要求浏览器应该忽略未知的标记。原始规范中包含的隐私倡议近期建议 IE 忽略该规范,并拦截带有无法识别标记的 Cookie。我们目前正在积极调查该行动方针。

―负责 Internet Explorer 业务的公司副总裁 Dean Hachamovitch