谷歌Chrome浏览器136将修复可使网站窥探用户浏览历史的漏洞
IT之家 4 月 8 日消息,根据谷歌软件工程师 Kyra Seevers 在博客中的消息,Chrome 136 将彻底解决一个存在了 23 年之久的浏览器历史嗅探漏洞,该版本已于上周四推送至 Chrome Beta 通道,预计将于 4 月 23 日正式发布。Seevers 表示:“这是首个使这些攻击失效的主流浏览器。”
浏览器历史嗅探(Browser History Sniffing)是一种通过检测网页链接颜色来判断用户是否访问过特定页面的隐私攻击方式。攻击者通过在网页上放置大量链接,并检查用户浏览器渲染这些链接的颜色,从而判断用户是否访问过某些特定网站。例如,如果用户访问过的链接被渲染为紫色,攻击者就能获取到这一信息,进而推断出用户的浏览历史。
据IT之家了解,这种攻击方式早在 2000 年就被普林斯顿大学的研究人员 Edward Felten 和 Michael Schneider 在论文《Timing Attacks on Web Privacy》中提及。2002 年 5 月 28 日,当时在 Mozilla 工作的 David Baron 提交了一份关于该问题的 Firefox 错误报告。然而,直到 2009 年 4 月,一个名为 StartPanic 的网站才真正引起公众关注,该网站展示了如何通过链接颜色推断用户的浏览历史,并呼吁浏览器厂商修复这一隐私漏洞。
此后,尽管浏览器厂商采取了一些缓解措施,但这些措施并未能彻底解决问题。2010 年,Mozilla 发布了一篇博客文章,指出默认情况下已访问链接和未访问链接的颜色差异可以被网站读取。同年,研究人员 Artur Janc 和 Lukasz Olejnik 在 Web 2.0 安全与隐私研讨会上发表了一篇关于如何利用 CSS 滥用进行浏览器历史检测的论文。2011 年,卡内基梅隆大学的研究人员在论文《I Still Know What You Visited Last Summer》中展示了六种绕过缓解措施的历史嗅探漏洞。
Chrome 136 的发布将标志着这一长期隐私漏洞的终结。谷歌采用了一种名为“分区访问链接历史”的新解决方案。该方案彻底改变了浏览器存储和暴露已访问链接数据的方式。具体而言,浏览器不再维护一个全局列表,而是将已访问链接存储为一个三元组分区,包括链接 URL、顶级网站域和渲染链接的框架来源。只有这三个键完全匹配时,链接才会被 `:visited` CSS 选择器样式化。
这种分区机制阻止了网站评估其他网站的访问状态,因为它们的域名不匹配。正如 Seevers 所解释的那样:“分区是指存储链接时附加关于点击链接位置的额外信息。在 Chrome 中,这包括链接 URL、顶级网站和框架来源。启用分区后,您的 `:visited` 历史记录不再是可以被任何网站查询的全局列表,而是根据您最初访问该链接的上下文进行‘分区’或分离。”
Olejnik 表示,这一解决方案标志着浏览器架构的演变,结束了隐私工程师与攻击者之间长达数十年的“军备竞赛”。他说:“这标志着在为所有用户构建一个更私密、更尊重隐私的网络方面迈出了重要一步。”