我想弄清楚什么state和nonceOpenID Connect 代码流中的哪些内容有好处。
从我目前所读到的内容来看,主要攻击似乎是攻击者可以拦截身份验证响应,包括授权代码。但是,如果攻击者重放身份验证响应,则身份验证代码将已被使用,OP 将拒绝令牌请求。我看到,规范不需要验证码是一次性密码,在这种情况下,我看到了重播是如何可能的。但是,我们会在使用后使验证码无效。
我也知道,使用 CSRF,攻击者可以使用不同的身份验证代码调用我的客户端重定向 uri。我还没有看到该代码在 OP 中如何有效。攻击者可以猜测有效的身份验证代码的想法是什么?
任何人都可以向我展示一个用状态和/或随机数解决的攻击向量吗?
OpenID Connect 继承了stateOAuth 2.0的参数。该nonce参数随 OpenID Connect 规范一起提供。他们有两个不同的目的。这是解释它们的 SO 答案的链接。
在授权流程中,您有两个步骤。首先您会收到一个授权码,然后您使用授权码来获取访问令牌。当您在重定向 URL 处收到响应时,必须有一种方法来验证响应是否来自您发送的请求。该state值通过绑定请求和响应解决了这个问题。客户端应该验证响应。
授权码的生命周期很短(30 到 120 秒),我不相信它对许多请求来说都是一样的。通常,代码必须是一次性密码。
nonce将令牌连接到原始客户端请求。如果nonce存在于授权代码请求中,则它必须存在于从成功的 OpenID Connect 流接收的 id 令牌中。这样,客户端就知道令牌是为自己生成的,它不会消耗某些恶意方注入的令牌。
| 归档时间: |
|
| 查看次数: |
5410 次 |
| 最近记录: |