Chrome Origin Trial: Device Bound Session Credentials
Chrome Origin Trial:设备绑定的会话凭据 (Device Bound Session Credentials)
Device Bound Session Credentials (DBSC) 是一种新的 Web 功能,旨在保护用户会话免受 Cookie 盗窃和会话劫持的侵害。此功能现在在 Chrome 135 中作为 Origin Trial 提供测试。
背景
Cookie 在现代 Web 身份验证中发挥着至关重要的作用,允许用户在浏览会话中保持登录状态。然而,攻击者越来越多地利用被盗的身份验证 Cookie 来劫持会话,绕过多因素身份验证和其他登录安全机制。
恶意软件运营者经常从受感染的设备中提取会话 Cookie,从而未经授权访问用户帐户。由于 Cookie 是持有者令牌,它们在无需证明所有权的情况下授予访问权限,这使得它们成为攻击者有利可图的目标。
Device Bound Session Credentials (DBSC) 旨在通过创建绑定到设备的经过身份验证的会话来破坏 Cookie 盗窃。这种方法降低了从另一台设备访问提取的 Cookie 的机会。
工作原理
DBSC 引入了一个新的 API,允许服务器创建绑定到设备的经过身份验证的会话。启动会话时,浏览器会生成一个公钥-私钥对,并在可用时使用硬件支持的存储(例如可信平台模块 (TPM))安全地存储私钥。
然后,浏览器会颁发常规会话 Cookie。在会话生命周期内,浏览器会定期证明私钥的所有权并刷新会话 Cookie。可以将 Cookie 的生存期设置得足够短,以使窃取 Cookie 不会给攻击者带来好处。
关键组件
-
会话注册:
- 当用户登录时,服务器使用
Sec-Session-Registration
HTTP 标头请求设备绑定的会话。 - 浏览器生成一个新的密钥对,安全地存储私钥。
- 还建立了与此密钥对绑定的短期身份验证 Cookie。
- 服务器将该会话与相应的公钥相关联,确保该会话只能在原始设备上使用。
- 当用户登录时,服务器使用
-
会话刷新和所有权证明:
- 当短期 Cookie 过期时,Chrome 会触发会话刷新。
- 浏览器向服务器定义的刷新端点(在会话注册期间提供)发送请求,并且,如果服务器提供了一个
Sec-Session-Challenge
标头签名的 challenge。 - 服务器通过验证使用会话私钥签名的响应来验证所有权证明。
- 如果有效,服务器会颁发一个新的短期 Cookie,允许会话继续。
这种方法的一个好处是,Chrome 会延迟那些否则会缺少刷新的短期 Cookie 的请求。此行为使会话绑定的 Cookie 在整个会话中始终可用,并允许开发人员比使用 Cookie 可能会过期或在没有自动续订的情况下消失的方法更自信地依赖它们。
示例实现
服务器可以像这样请求设备绑定的会话:
HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"
当会话处于活动状态时,服务器可以使用 challenge-response 交换对其进行验证:
HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"
浏览器响应:
POST /refresh
Sec-Session-Response: "signed-proof"
好处
- 缓解 Cookie 盗窃:即使会话 Cookie 被盗,也无法从另一台设备使用。
- 增强安全性,无需重大的 UX 更改:在后台透明地工作,无需额外的用户交互。
- 减少对长期会话 Cookie 的依赖:只要会话在原始设备上保持有效,短期 Cookie 就会自动刷新。
- 支持标准加密机制:在可用时利用 TPM 支持的安全存储,提供强大的保护以防止数据泄露。
隐私和安全注意事项
DBSC 旨在增强安全性,同时保护用户隐私:
- 没有额外的跟踪向量:每个会话都与一个唯一的密钥对相关联,从而防止跨会话跟踪。
- 没有长期的设备指纹:服务器无法关联同一设备上的不同会话,除非用户明确允许。
- 用户可清除:当用户清除站点数据时,会话和密钥将被删除。
- 与 Cookie 策略保持一致:DBSC 遵循与 Cookie 相同的基于站点的范围,确保它不会引入跨域数据泄漏。
试用
Device Bound Session Credentials Origin Trial 可从 Chrome 135 获得。
对于本地测试
要在本地测试 DBSC:
- 转到
chrome://flags#device-bound-session-credentials
并启用该功能。
对于公共测试
要在公共环境中通过 Origin Trial 测试 DBSC:
- 访问 Chrome Origin Trials page 并注册。
- 将提供的令牌添加到站点的 HTTP 标头:
Origin-Trial: <your-trial-token>
资源
- Device Bound Session Credentials specification
- GitHub repository for DBSC
- Device Bound Session Credentials (DBSC) integration guide
参与并塑造 Web 安全的未来
加入我们,让 Web 身份验证更加安全!我们鼓励 Web 开发人员测试 DBSC,将其集成到他们的应用程序中,并分享反馈。您可以在 GitHub 上与我们互动,或参与与 Web Application Security Working Group 的讨论。
通过实施 DBSC,我们可以共同降低会话劫持风险并增强用户的身份验证安全性。立即开始,帮助定义 Web 安全的未来!