
于2009-04-26 11:47:36翻译 | 已有4163人浏览 | 有0人评论
OAuth安全漏洞:针对OAuth Request Token授权流程的session fixation攻击。
2009年4月24日(北京时间)
所有使用OAuth认证流程(亦称3阶段OAuth)的OAuth1.0标准兼容实现皆受影响。
攻击者一开始访问(可靠的)Consumer站点(也可以使用攻击者在该站点的账号进行登陆)。而后攻击者发起OAuth认证流程,然而他仅仅保存获得的包含Request Token的授权URI,但不定向到该URI指向的页面。接着,攻击者向受害者解释需要受害者授权(可靠的)Consumer站点使用其受保护数据,并说服受害者点击攻击者之前获得的授权URI。
点击之后,受害者将继续之前攻击者发起的认证流程。该认证流程使用(可靠的)Consumer为攻击者准备的Request Token。注意受害者会被定向到Service Provider提供的合法授权页面,并提示是否授权(可靠的)Consumer站点使用受害者的受保护数据。因此受害者不可能发现潜在的攻击。
受害者授权之后,攻击者可以使用保存的Request Token完成认证流程,并通过(可靠的)Consumer站点提供的服务使用受害者的受保护数据。如果攻击者拥有一个(可靠的)Consumer站点的账号,那么该使用权限可能被保存为将来使用。
使用XSRF(跨站点请求伪造)保护的Consumer站点也不能免于该攻击。
建议Service Provider立即实现适当的监控机制来检测可能的攻击。
针对这一问题的修改版协议将在不久之后提供。一旦新版本协议可用,强烈建议所有OAuth实现及时升级。
建议Service Provider向用户提供足够的信息说明从不可信位置发起的认证流程的风险(参见下面提供的建议文本)。对于所有尚未升级到未来修改版协议的Consumer站点,警告信息都应显示在针对这些站点的授权页面上。如果Service Provider和Consumer使用了其他非协议规范的解决方案,警告信息则可以去除。
建议在授权页面显示以下文本(不翻了,这种规范文本一般各个网站自有写法):
“This website is registered with SERVICE_PROVIDER_DOMAIN_NAME to make authorization requests, but has not been configured to send requests securely. If you grant access but you did not initiate this request at CONSUMER_DOMAIN_NAME, it may be possible for other users of CONSUMER_DOMAIN_NAME to access your data. We recommend you deny access unless you are certain that you initiated this request directly with CONSUMER_DOMAIN_NAME.”
尚未出现针对该攻击的报告。
请联系Eran Hammer-Lahav以获取关于该问题的更多信息。更详细的解释请参见这篇文章。
【本文翻译仅为外语学习及阅读目的,原文作者个人观点与译者及译言网无关】