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 表示,這一解決方案標誌著瀏覽器架構的演變,結束了隱私工程師與攻擊者之間長達數十年的「軍備競賽」。他說:「這標誌著在為所有用戶構建一個更私密、更尊重隱私的網路方面邁出了重要一步。」