Chrome的代理预取建议:隐私,安全性和更广泛的网络含义

2021-02-21 07:37:06

我对Chrome Security团队表示高度赞赏,因为他们注重细节,以保护Chrome用户免受恶意发布者的攻击(例如:请参阅Chrome的网站隔离工作)。

但是,Chrome中的隐私则完全不同。过去,他们使用暗纹将用户信息泄漏到Google服务器(例如,Chrome自动将用户登录到浏览器中,Chrome将用户标识属性发送到Google服务器,Chrome将Google网站从用户网站数据设置中排除)。

最近,Google现在已开始悄悄地拦截用户流量,并在未经用户或Web开发人员同意的情况下通过其服务器进行代理(在Chrome的隐私白皮书,相关的GitHub代理建议和Google隐私白皮书中查找“搜索结果链接的预取”)。备用加载方式提案)。我很伤心地说,但是这是比喻的稻草最终压垮骆驼的背上,我已经完全失去了我在Chrome的信任。

过去,Google推出了签署交易的提议,该提议使聚合器(例如Google的搜索引擎)能够代表其他站点提供内容。出于安全考虑,Safari和Firefox甚至在此日期之前都不支持签名交换。 Google通过声称已签署的交易所是站点的选择功能来“解决”他们的担忧,他们需要意识到安全风险。请参见Mozilla对此观点的评论:“网站选择使用此机制,这样做时需要意识到这样做会带来一些风险,但这样做会启用新功能”。

据我所知,大多数Web开发人员还决定不加入已签署的交易所。这大大减少了已签约交易所的使用,但从积极的方面来说,这也意味着开发人员对他们的发展拥有发言权。

Google的这项新提议似乎是对类似想法的另一种理解。但是,这次Google决定通过用户的服务器以静默方式代理用户的流量,而无需用户或网站的任何选择。

现在,这个问题有多种原因。我仔细研究了提案,Chrome隐私权白皮书,代码源并将其精简如下:

为了更好地理解这些风险,可以将建议的CONNECT HTTPS代理视为VPN。在第一层近似上,将用户信息公开给一个全新的实体(VPN或代理)对隐私不利。当然,如果协议和代理经过精心设计和信任,则实际上可以改善用户的隐私。不幸的是,我认为情况并非如此。 Chrome的私人代理建议至少有几种特定的方式泄漏用户的信息:

该提案提到,浏览器将仅预取用户没有Cookie的URL。假设Google搜索页面(或GMail或Google控制的任何其他页面)请求预取https://foo.com和https://bar.com。假设用户有用于foo.com的cookie,因此Chrome只会预取bar.com。通过内部在不同后端之间加入日志,Google可以轻松得出用户先前访问过foo.com的结论。未经用户同意,这会将用户的浏览历史记录泄露给Google。

过去的浏览历史泄露给了雇主:可以说,您的雇主想确定您过去是否在雇主的网络上访问过https://foo.com,或者甚至在他们无法控制的网络上访问过外部。为此,您的雇主要求在公司Intranet网页上的其中一个网页上预提取https://foo.com。由于Chrome仅在用户过去没有访问过https://foo.com时才会预取https://foo.com,因此雇主可以观察预取的流量并确定用户的浏览历史记录。

浏览历史记录泄露给所有网络观察者:按照与上述相同的逻辑,用户的网络提供商(例如ISP /酒店/机场/咖啡链WiFi)也可以在未经用户同意的情况下确定用户的过去浏览历史记录。即使所有站点和连接都使用HTTPS,也会发生这种情况。

目前尚不清楚代理提供了哪些隐私保证,以及用户或网络开发人员如何验证这些保证。 Google会使用拦截的流量来构建用户的广告资料吗?我希望该提案在代理提供的保证以及用户和开发人员如何验证这些保证方面更加清晰。

Google不会透露他们正在代理服务器上记录的用户信息。我怀疑为防止滥用,代理最终会记录的信息不仅仅是用户的IP地址。有关类似的讨论,请参见Tom Scott的有关VPN的视频。

用户通常不知道这一点,但是代理或VPN可以利用最近泄漏的TLS证书在浏览器中注入恶意代码。如果浏览器尚未了解已吊销的证书,它将为代理/ VPN提供机会来创建恶意HTML / JavaScript,使用泄漏的证书对其进行签名,然后将其交付给浏览器。无论恶意代理在缓存头中指定的持续时间是多少,浏览器都会愉快地缓存恶意代码,并在用户每次访问该网站时运行该恶意代码。

现在,我确定Google不会将恶意代码推送给自己的用户,但它无疑使代理成为攻击者和当局的一个有吸引力的目标。用户或发布者在代理的工作过程中没有可见性,也无法连续地验证代理没有受到损害。作为用户或开发人员,我看不到为什么我应该使用不必要地增加安全攻击面的浏览器?

该提案要求站点负担预取流量的服务成本,但不向其提供任何工具来管理流量。该站点隐藏了另一个端点的IP地址,这将使他们很难检测到滥用流量。他们必须完全依靠代理来过滤滥用流量。

如果您曾经在VPN上使用过Google搜索,那么您可能已经获得了验证码。这告诉我们,Google对信任隐藏用户IP地址的其他服务非常谨慎。如果是这样,为什么Google会期望其他Web开发人员盲目地信任Google并将其控制权交给Google?

该提案提到它将允许站点选择退出代理。但是,Google会通过从Google搜索中取消对那些退出网站的排名来直接或间接地对其进行惩罚?这意味着这些站点将可以选择放弃其安全性和控制权,或者失去其市场业务-并不是真正的最佳选择。

这些站点必须依靠代理来过滤滥用流量并盲目地信任代理。由于只有单个站点可以盲目信任的代理,因此自然意味着Web生态系统实际上可以支持很少的代理。即将到来的Web浏览器(或市场份额较低的浏览器)将不可能赢得开发人员的信任。这进一步将网络集中在Google上。

同时,目前尚不清楚代理服务器是否会相对于其他网站对Google网站的预取进行某些优惠。例如,将来自其他网站的预取流量标记为滥用,同时让www.google.com进行不加选择的预取? Google应该提供有关其滥用预防机制的更多详细信息。

该提案提到将允许用户退出这种流量拦截,但是我将争辩说默认情况下启用此功能是Chrome暗模式的另一个示例。用户不必一直保持警惕,以避免其软件中出现恶意的默认设置。

我确信Google会尽力保护其代理服务器免受攻击。我不太确定他们是否会解决隐私方面的差距,或者就代理如何在记录最少的用户信息的同时保护站点免受滥用流量的影响提供更多保证。

对我来说,我只是无语了,认为浏览器自动代理部分用户流量是可以的。如果Chrome希望赢得用户的信任,他们希望将此功能移至网站或用户选择加入之后。

我建议站点尽快选择退出此功能,以避免安全风险并安全保护用户的隐私。

最后,这些建议的目标是让用户向Google而不是单个网站提供其私人信息。如果是这样,我会挑战Chrome的第三个选择:回到白板并设计一种解决方案,该解决方案不会向网站或Google披露用户的私人信息。设计一个用户和网站都喜欢的解决方案。这样一来,您就不必将用户和网站强加于对用户,网站和整个网络有害的功能。