【问题标题】:PKCE: Why bother to hash the code verifier?PKCE:为什么要对代码验证器进行哈希处理?
【发布时间】:2021-06-18 04:15:39
【问题描述】:

根据我所读到的关于 PKCE 的信息,恶意浏览器扩展可能会从浏览器历史记录中窃取授权代码,但不会窃取代码验证程序。如果这是真的,那为什么还要对代码验证器进行哈希处理来进行代码挑战呢?

【问题讨论】:

    标签: oauth-2.0 pkce


    【解决方案1】:

    您对代码验证器进行哈希处理,以使攻击者更难窃取它。如果他们设法以某种方式拦截在授权请求中发送的代码质询,这仍然是不够的,因为您需要原始代码验证器将授权代码交换为访问令牌。这只是提高 PKCE 安全级别的另一种措施。

    顺便说一下,对代码验证器进行哈希处理不是强制性的。规范中的“散列方法”之一是“普通”,这意味着您不对验证者进行散列。虽然建议散列它,但如果没有障碍的话。

    【讨论】:

    • 我明白你在说什么,但我认为散列代码挑战不会妨碍坚定的黑客。使用查找表找到散列的输入似乎相当容易,尤其是在不使用盐的情况下。而且我见过的大多数例子都没有使用盐。
    • 您可以查看 RFC 的安全注意事项:tools.ietf.org/html/rfc7636#section-7,因为作者确实解决了您的问题。一件重要的事情是为 code_verifier 创建一个高熵字符串,这样就不容易在表格中查找或暴力破解它。当使用高熵字符串时,不需要加盐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2021-12-12
    • 1970-01-01
    相关资源
    最近更新 更多