将 PKCE 与授权码授予类型结合使用如何提高 OAuth 2.0 中机密客户端的安全性?

问题描述 投票:0回答:1

对于 OAuth 2.1,即使对于授权码授予类型,也建议使用 PKCE,以防止授权码注入攻击。

但是,假设攻击者已经可以拦截响应并读取 cookie(例如,使用恶意浏览器扩展),他们难道不能窃取会话 cookie,从而使 PKCE 毫无意义吗?我不确定它可以防止

state
和客户端密码不能防止的哪种攻击。

谢谢

security oauth-2.0 oauth
1个回答
0
投票

为机密客户启用 PKCE 可能看起来有点矫枉过正。

正如规范的标题所说,PKCE主要面向公共客户。

但是,OAuth 2.1 规范

历史记录:虽然 PKCE [RFC7636](其中 code_challenge 和 code_verifier 参数被创建)最初被设计为 保护本机应用程序的机制,此建议适用于所有类型 OAuth 客户端,包括 Web 应用程序和其他 机密 客户。

那么,为什么为机密客户端添加 PKCE 仍然是一个好主意?

原因是,我们发现许多客户端库实现无法正确验证随机数/状态,从而使客户端容易受到攻击。虽然 PKCE 在授权服务器上进行验证,这意味着即使客户端没有正确(或未能)验证状态/随机数,PKCE 仍然会保护它们。

© www.soinside.com 2019 - 2024. All rights reserved.