【问题标题】:Google API Refresh Token Security VulnerabilityGoogle API 刷新令牌安全漏洞
【发布时间】:2014-10-27 15:51:02
【问题描述】:

随着使用 OAuth 2.0 身份验证的 Google's new API 的引入,开发人员能够设置刷新令牌,这要求最终用户只对应用程序进行一次身份验证。

开发人员可以为他/她的项目set a scope。对于刷新令牌 OAuth 设置,用户只需批准一次应用程序的身份验证,此后,Google 的服务器将使用刷新令牌处理重新身份验证。

根据开发人员最初指定的范围,同意屏幕将根据所选范围通知用户应用程序可以访问/修改的内容。请考虑 Stackoverflow 上的以下 Gmail 示例

现在,如果开发人员在稍后阶段更改应用程序的范围,用户将不必重新批准身份验证,因为身份验证最初是基于刷新令牌设置的,或者应该是offline access

用户最初仅批准“查看您的电子邮件地址”访问权限(例如)但现在,应用程序可能正在执行各种操作,包括修改访问权限、查看数据、联系人等,最初并未得到最终用户的批准

这在某种程度上是一个安全漏洞/隐私泄露,用户无法识别应用程序是否这样做。

有其他人注意到这种行为吗?这肯定不道德吗?

P.S.我使用 Stackoverflow 仅作为示例,我并没有指责这个网站这样做:)

【问题讨论】:

    标签: security oauth-2.0 google-api


    【解决方案1】:

    这是您实际注意到的安全漏洞,还是可疑的?

    根据我的参考和经验,刷新令牌用于“为单独的资源调用检索相同或更小的范围的附加令牌”[1] 例如,在我的身份验证流程中省略了一个范围后,我收到了一个访问令牌明确拒绝与省略范围相关的任何请求。

    这表明在获取用户的刷新令牌后更改项目的范围将不允许您访问他们未授权的任何内容。

    【讨论】:

    • 我至少在 Gmail 中体验过这一点。尝试设置一个以https://www.googleapis.com/auth/gmail.readonly 为范围的应用程序。创建刷新令牌进行身份验证并登录。此后,将范围修改为https://mail.google.com/,它提供“对帐户的完全访问权限,包括永久删除线程和消息。”。即使在 24 小时后,也不会要求用户重新进行身份验证。
    猜你喜欢
    • 2016-01-26
    • 1970-01-01
    • 2016-08-03
    • 2020-02-06
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    相关资源
    最近更新 更多