OAuth 2.0 应用层持有证明(DPoP)(2023)
本文档描述了OAuth 2.0协议的一种扩展机制,即应用层持有证明(DPoP)。该机制允许OAuth客户端在应用层向授权服务器和资源服务器证明其对访问令牌的持有权,从而增强安全性,防止令牌被盗用和重放攻击。DPoP通过将令牌与客户端持有的特定密钥对绑定,实现了更细粒度的安全控制。
背景速读
- OAuth 2.0 是目前互联网上最广泛使用的授权框架,让用户授权第三方应用访问自己的数据(如"用 Google/微信登录"),而无需交出密码。
- DPoP 是 OAuth 2.0 的一个安全增强扩展。传统 OAuth 中使用的是"持有者令牌"(Bearer Token)——谁拿到令牌谁就能用,容易被窃取和重放攻击。
- DPoP 要求客户端(App 或浏览器)在每次请求时,用只有自己掌握的私钥对请求进行签名,证明自己就是当初被授权的那个客户端。服务器通过验证签名,确保令牌没有被盗用者拿去其他地方使用。
- 这个草案由 IETF OAuth 工作组制定,2023 年发布,RFC 编号待定。它解决的是令牌泄露后的"绑定"问题,是 OAuth 安全演进中的重要标准化成果。Google、苹果和微软等已在各自系统中借鉴或实现类似机制。