22

我在 Fiddler 中查看 chrome 发送的 http 请求,我注意到以下 http 标头让我感到困惑:

 X-Chrome-Variations: CNa1yQEIjrbJAQiYtskBCKK2yQEIp7bJAQiptskBCLmDygE=

这是一个 base64 编码的 35 字节数组:

8,214,181,201,1,
8,142,182,201,1,
8,152,182,201,1,
8,162,182,201,1,
8,167,182,201,1,
8,169,182,201,1,
8,185,131,202,1

我在网上看到过这个数字的几个例子。

谁能向我解释这是什么,以及为什么 chrome 将其发送出去(以及它是否可用于识别/跟踪我)?

4

1 回答 1

45

Google Chrome 开发人员通过为一小部分随机选择的 Chrome 安装启用一项功能并观察该功能的工作方式来测试实验性功能。对此的常用术语是现场试验。当谷歌浏览器第一次运行时,它会生成一个介于 1 到 8192 之间的随机数,然后使用它来确定是否参加特定的现场试验。

Google Chrome 和隐私”白皮书(PDF,2012 年 10 月,当前为 Chrome 22.0.1229.79)提供了这些详细信息。

为了帮助指导用户实际认为有用的功能的构建,一部分用户可能会在新功能向全世界发布之前先睹为快。当前在您安装的 Chrome 中处于活动状态的现场试验将包含在发送到 Google 服务器的所有请求中,以允许 Google 仅过滤由特定 Chrome 变体生成的日志。此Chrome-Variations标头不会包含任何个人身份信息,并将严格描述 Chrome 本身的安装状态。

给定安装的活动变化由 1 到 8192(13 位熵)之间的种子数确定,该种子数在第一次运行时随机选择。如果您想重置您的变体种子,请使用命令行标志“--reset-variation-state”运行 Chrome。

*.google.<TLD>谷歌浏览器向表单的所有域(.<TLD>顶级域,如 .com、.org、.co.uk、.cn、.biz 等)发送有关当前处于活动状态的现场试验的信息。大多数但不是所有这些域都归 Google 所有。现场试验标识符存储在协议缓冲区中,使用 base64 编码并在X-Chrome-Variations标头中发送。如果您已选择向 Google 发送使用情况统计信息和崩溃报告(可在 上访问的复选框chrome://​chrome/​settings/​search#privacy),X-Chrome-UMA-Enabled: 1还会发送一个标头。在隐身模式下不发送标头。

修订版 156914(根据发布表包含在 Chrome 23 及更高版本中)开始,现场试验列表显示在about:version页面上的 Variations 标题下。

相关源码在chromium/​src/​chrome/​browser/​renderer_host/​chrome_resource_dispatcher_host_delegate.cc文件中。标头在ChromeResourceDispatcherHostDelegate::​AppendChromeMetricsHeaders方法中发送。的值X-Chrome-Variations是在方法中构造的ChromeResourceDispatcherHostDelegate::​UpdateVariationIDsHeaderValue。现场试验使用base::FieldTrial文件src/​base/​metrics/​field_trial.h中的类定义

至于使用这些标头跟踪您的能力,这取决于您的现场试验的实际组合的唯一性属性,我不知道。但请记住,即使您去除X-Chrome-Variations标头、禁用 cookie、本地存储和 Flash 本地存储,您的浏览器仍然可以使用缓存指纹技术或使用它通常发送的请求标头的组合来识别,您的系统配置信息可用于如 EFF 的Panopticlick所示,JavaScript 或 Flash 以及您可能倾向于使用的 IP 地址块。因此,除非您使用经过精心配置的Tor和 Privoxy 设置,否则隐私游戏基本上会丢失,即便如此,泄漏也是可能的。

于 2012-11-05T20:32:22.890 回答