首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

OAuth1.0 简介及保险分析

2012-07-15 
OAuth1.0 简介及安全分析1.??概述之后针对callback的不同,有几种不同的处理方法:a)??????如果Provider站点

OAuth1.0 简介及安全分析
1.??概述

之后针对callback的不同,有几种不同的处理方法:

a)??????如果Provider站点对第二步(请求用户授权,图中第3步)中的callback没有限制,那么攻击者可以利用trap site将callback设为自己的站点,然后通过这个callback判断受害者何时完成授权。等到受害者授权后,攻击者访问合法的callback 来获得受害者的access token

b)??????其他的情况下(使用预定义的静态callback、没有callback由用户手工完成授权),那么攻击者和受害者之间进行竞争,当攻击者恰好在受害者授权和访问callback的间隙访问合法的callback,那么攻击者就获得了受害者的access token

解决方案

1.0a的版本提供了以下改进:

1.?????? oauth_callback 在第一步即获取Request Token时(Get Request Token,图中第二步)就必须提供,如果不需要重定向,则其值必须为oob(out_of_band configuration),服务提供方此时返回参数oauth_callback_confirmed,且值为true。在第二步即验证阶段(图中第三步)不接受该参数。

2.?????? 验证完成后会返回验证码(oauth_verifier)为的是在没有callback的时候,服务提供方显示给用户,然后用户可以在第三方应用的设备上输入,标示自己已经授权(和未授权的用户分开),然后第三方应用必须加上该验证码去获取Access Token

然而实际上OAuth1.0最终版(已经成为RFC5849 标准)已经没有这个安全的漏洞了。

2.3 ???协议提及的安全考量

OAuth协议(RFC5849标准)文档上提出了以下安全考量,对应http://tools.ietf.org/html/rfc5849#section-4

1.??????似乎说RSA_SHA1更安全

2.?????? 建议用SSL或者TLS保证请求的安全

3.?????? 建议用SSL或者TLS保证确认服务提供者的身份

4.??????客户端proxy或者cache的安全

5.?????? 服务端密钥的安全存储

6.??????客户端密钥的安全存储

7.?????? 警告用户,防止用户的疏忽

8.?????? 由于第三方应用的不可信任(可能希望获取更多的用户资源),需对授权的资源严格的分类,并告知明确用户可能存在的风险

9.?????? 密钥的安全性,最好是真正的随机数

10.??DOS/DDOS攻击

11.??SHA-1自身的漏洞

12.??签名只是保证了base_string的完整

13.??CSRF(Cross SiteRequest Forgery)

14.??Clickjacking

15.??客户端密钥的安全

?

上面的各条中黑体的条款,我们需要注意,其他是客户端或者用户需要防范的,我们服务提供方需要给用户足够的信息去确认授权的风险。

2.3????总结

其实协议1.0定稿后,已经广泛使用,其本身不会有什么安全漏洞,但协议的实现可能存在漏洞,这是我们需要花精力去测试的。

热点排行