什么阻止虚假应用程序劫持合法的应用程序OAuth2 clientId?

时间:2016-06-20 20:28:10

标签: security oauth oauth-2.0

什么阻止了以下情况:

  • 攻击者下载合法的应用程序,将合法的OAuth 2.0授权许可授予所需的资源
  • 攻击者记录client_id和redirect_uri
  • 攻击者在真实形象中创建虚假应用
  • 受害者下载虚假应用并开始使用所需资源的OAuth 2流程
  • Phony app提供相同的client_id和redirect_uri作为合法应用
  • 受害者验证并授权使用所需资源
  • Phony应用程序捕获重定向而不会访问URL(我知道iOS可以执行此操作)并保护其包含的授权代码。
  • Phony应用程序现在可以访问所需资源"名称"一个合法的应用程序

在使用公共客户端(没有client_secret)时,有没有办法真正验证发出授权请求的应用程序的身份?

1 个答案:

答案 0 :(得分:0)

OAuth 2.0安全注意事项规范承认:https://tools.ietf.org/html/rfc6819#section-5.5没有针对该威胁的包容性保护。它承认用户在这里发挥着重要作用。但有些评论:

通过移动设备管理的应用程序安装控制可能适用于某些(企业)用例以缓解此问题。

动态客户端注册(http://openid.net/specs/openid-connect-registration-1_0.html)可用于生成每个实例的客户端密钥,以便在注册后客户端是机密客户端。然而,应用程序完整性问题仍然存在(仅)在初始引导/注册阶段。