gpt4 book ai didi

oauth-2.0 - 在带有 PKCE 的 OAuth 2.0 授权代码流中,什么阻止在第一次调用身份验证服务器时拦截代码质询?

转载 作者:行者123 更新时间:2023-12-04 01:35:26 24 4
gpt4 key购买 nike

想象一下这次攻击

  • 攻击者拦截对授权服务器的第一次调用,然后他们面临代码挑战。 (图中的第 1 步)
  • 攻击者现在使用授权代码拦截来自授权服务器的响应。 (图中的第 2 步)
  • 然后攻击者可以 POST 授权代码和代码验证器来获取访问 token 。 (第 3 步)

  • 引用这张图:
    流量: enter image description here

    问题
  • 是什么阻止攻击者拦截对授权服务器的第一次调用?这就是为了使授权码 + PKCE 比隐式流更安全。
  • 也许调用是否被拦截并不重要,因为代码挑战是散列的,因此攻击者没有第二次调用所需的代码验证器。但是如果代码挑战没有被散列呢?
  • 最佳答案

    PKCE 旨在确保请求用户进行身份验证的客户端与交换访问 token 的授权代码的客户端相同。

    与授权服务器的所有通信都是使用HTTPS,很难拦截。但是一些移动平台允许(恶意)应用程序注册与合法客户端相同的 redirect_uri。这意味着当授权服务器使用授权代码重定向回客户端时,合法客户端和恶意客户端都会被代码调用。这允许恶意客户端交换访问 token 的代码,因为没有完成客户端身份验证。

    PKCE 通过在身份验证请求中包含 code_challenge 来解决这个问题,它是代码验证器的哈希值。然后它需要 token 交换调用中的实际验证者。恶意客户端没有验证器,因此无法对自己进行身份验证,因此无法用代码交换 token 。

    关于oauth-2.0 - 在带有 PKCE 的 OAuth 2.0 授权代码流中,什么阻止在第一次调用身份验证服务器时拦截代码质询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59771057/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com