來源試用:Chrome 中的裝置繫結工作階段憑證

裝置綁定工作階段憑證 (DBSC) 是一種新的網頁功能,可保護使用者工作階段免於遭到 Cookie 竊取和工作階段劫持。這項功能現已可在 Chrome 135 中以原始版本測試。

背景

Cookie 在現代網頁驗證中扮演重要角色,可讓使用者在瀏覽工作階段中保持登入狀態。不過,攻擊者越來越常利用遭竊的驗證 Cookie 來劫持工作階段,繞過多重驗證和其他登入安全機制。

惡意軟體操作者經常從遭到入侵的裝置中竊取工作階段 Cookie,以便未經授權存取使用者帳戶。由於 Cookie 是憑證權杖,因此無須證明擁有權即可授予存取權,這也讓 Cookie 成為攻擊者眼中的肥羊。

裝置繫結工作階段憑證 (DBSC) 旨在建立已驗證且繫結至裝置的工作階段,以阻止 Cookie 遭竊。這項做法可降低遭竊取的 Cookie 從其他裝置存取帳戶的機率。

運作方式

DBSC 推出了新的 API,可讓伺服器建立已驗證且繫結至裝置的工作階段。啟動工作階段時,瀏覽器會產生公開/私密金鑰組,並使用硬體支援的儲存空間 (例如可信平台模組 (TPM),如果有) 安全地儲存私密金鑰。

瀏覽器接著會發出一般工作階段 Cookie。在工作階段生命週期內,瀏覽器會定期證明自己擁有私密金鑰,並重新整理工作階段 Cookie。您可以將 Cookie 的生命週期設得足夠短,這樣攻擊者就無法從 Cookie 竊取資訊。

重要元件

  • 工作階段登錄

    • 使用者登入時,伺服器會使用 Sec-Session-Registration HTTP 標頭要求裝置綁定的工作階段。
    • 瀏覽器會產生新的金鑰組,並妥善儲存私密金鑰。
    • 系統也會建立短期驗證 Cookie,並繫結至這個金鑰組。
    • 伺服器會將工作階段與對應的公開金鑰建立關聯,確保工作階段只能在原始裝置上使用。
  • 工作階段重新整理和證明擁有權

    • 當短效 Cookie 到期時,Chrome 會觸發工作階段重新整理。
    • 瀏覽器會將要求傳送至伺服器定義的重新整理端點 (在工作階段註冊期間提供),如果伺服器提供一個,則會使用 Sec-Session-Challenge 標頭傳送已簽署的挑戰。
    • 伺服器會驗證使用會話私密金鑰簽署的回應,以便驗證擁有權證明。
    • 如果有效,伺服器會發出新的短效 Cookie,讓工作階段繼續執行。

這種做法的好處之一,是 Chrome 會延遲要求,否則會缺少重新整理過的短效 cookie。這項行為可讓會話綁定的 Cookie 在整個會話期間持續可用,讓開發人員更放心地依賴這些 Cookie,而不會因為 Cookie 可能過期或消失而無法自動更新。

實作範例

伺服器可以要求裝置綁定的工作階段,如下所示:

HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"

在工作階段處於活動狀態時,伺服器可以透過挑戰-回應交換機制進行驗證:

HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"

瀏覽器會回應:

POST /refresh
Sec-Session-Response: "signed-proof"

優點

  • 減少 Cookie 竊取:即使工作階段 Cookie 遭竊,也無法在其他裝置上使用。
  • 提升安全性,不必大幅變更使用者體驗:在背景中以透明方式運作,不必額外要求使用者互動。
  • 減少對長效工作階段 Cookie 的依賴:只要在原始裝置上的工作階段仍有效,短效 Cookie 就會自動重新整理。
  • 支援標準加密機制:在可用時利用 TPM 支援的安全儲存空間,提供強大的資料外洩防護機制。

隱私權和安全性考量

DBSC 的設計宗旨是提升安全性,同時兼顧使用者隱私:

  • 沒有其他追蹤向量:每個工作階段都會與專屬的鍵組相關聯,以免發生跨工作階段追蹤。
  • 不使用長期裝置指紋:除非使用者明確允許,否則伺服器無法將同一裝置上的不同工作階段建立關聯。
  • 可由使用者清除:使用者清除網站資料時,系統會刪除工作階段和金鑰。
  • 符合 Cookie 政策:DBSC 會遵循與 Cookie 相同的網站範圍,確保不會引入跨來源資料外洩。

立即試用

裝置繫結工作階段憑證來源試用功能自 Chrome 135 版起推出。

本機測試

如要在本機測試 DBSC:

  • 前往 chrome://flags#device-bound-session-credentials 並啟用這項功能。

公開測試

如要在公開環境中使用來源試用版測試 DBSC,請按照下列步驟操作:

  1. 前往 Chrome 開發人員測試版頁面並註冊。
  2. 將提供的符記新增至網站的 HTTP 標頭:

    Origin-Trial: <your-trial-token>
    

資源

參與這項計畫,共同塑造網路安全的未來

歡迎加入我們,共同打造更安全的網路驗證機制!我們鼓勵網頁開發人員測試 DBSC,並將其整合至應用程式,並提供意見回饋。您可以在 GitHub 上與我們互動,也可以與網路應用程式安全工作小組進行討論。

實施 DBSC 後,我們就能共同降低工作階段劫持風險,並強化使用者的驗證安全性。立即開始使用,協助定義網路安全的未來!