裝置綁定工作階段憑證 (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,請按照下列步驟操作:
- 前往 Chrome 開發人員測試版頁面並註冊。
將提供的符記新增至網站的 HTTP 標頭:
Origin-Trial: <your-trial-token>
資源
參與這項計畫,共同塑造網路安全的未來
歡迎加入我們,共同打造更安全的網路驗證機制!我們鼓勵網頁開發人員測試 DBSC,並將其整合至應用程式,並提供意見回饋。您可以在 GitHub 上與我們互動,也可以與網路應用程式安全工作小組進行討論。
實施 DBSC 後,我們就能共同降低工作階段劫持風險,並強化使用者的驗證安全性。立即開始使用,協助定義網路安全的未來!