oauth-2.0 - PKCE OAuth 2.0 中“code_verifier”的意义是什么?
问题描述
在 PKCE 中,我了解 code_verifier 用于生成代码质询,稍后此 code_verifier 值由授权服务器验证以完成 PKCE 过程。
这个 code_verfier 值有多敏感?这个值是否必须保密?如果这个值被泄露,对手可以执行什么攻击?
解决方案
这code_verifier
确实是敏感的:它是客户端在调用令牌端点时证明它是首先发起授权请求的机制。
这个值应该保密,见下文。
泄漏它将允许攻击者在调用授权服务器的令牌端点时冒充(公共)客户端,从而获得打算用于真实客户端的令牌。
请注意,即使不使用任何(散列)转换,code_verifier
而是像plain
在code_challenge
授权请求中那样发送它,对于能够拦截到重定向 URI 的回调的攻击者来说,它仍然会变得困难,因为他还必须拦截传出请求。
但一般来说,code_verifier
应该用 SHA256 散列到 中,code_challenge
所以即使在拦截请求时,攻击者也无法推断出code_verifier
.
推荐阅读
- python - 如何在python 3中打印红心
- c - 从“struct node”类型分配给“struct node *”类型时的类型不兼容
- c# - 当我在 c# 的下拉列表中使用数据绑定时,如何解决 System.InvalidOperationException
- ros - 在凉亭中使用 IMU 传感器向上移动对象
- postgresql - 渡槽数据库升级无法连接到数据库
- python - 如何搜索二维数组并返回元素
- python - 以一定的价格百分比创建新功能
- python - 找不到可以处理输入的数据适配器:...(列出给定维度的 numpy 数组)
- bash - 如何显示变量名而不是其值
- google-bigquery - 如何在 BigQuery 中的每个列级别获取最新值