论文部分内容阅读
21世纪互联网的发展进入了一个信息共享的时代,公众平台的出现方便各厂商能够将自己的信息资源打包并以接口的形式向外界提供服务,使得信息共享更加便捷。在国内,微博、微信、百度等开放平台的出现,使“第三方”认证授权登录广泛应用到各个领域,因此,OAuth协议作为各开放平台中广泛使用的认证授权系统的标准协议而备受关注。 本文正是对现今各开放平台中广泛使用的OAuth2.0协议进行研究分析,主要包括以下工作: 首先,研究OAuth2.0协议的授权原理和分析授权流程。介绍了OAuth2.0协议的四种授权类型:授权码授权、隐式授权、资源所有者密码凭证授权和客户端凭证授权。文章主要选择流程最为完整、功能最全的授权码模式进行研究,分析了协议的形式化流程,研究协议的认证授权原理。 其次,对OAuth2.0协议的安全性问题进行分析。基于Dolev-Yao攻击者模型,借助AVISPA模型检测工具对OAuth2.0协议形式化建模分析,查找协议中存在的攻击模式。发现OAuth2.0协议在具体的实现过程中,容易遭受钓鱼攻击、中间人攻击和CSRF攻击等,接着采用形式化语言描述了详细的攻击过程,并分析了这些安全性问题产生的原因,这些为本文提出OAuth2.0授权机制的改进方案奠定了重要基础。 再次,在安全性分析的基础上,针对OAuth2.0协议在实现过程中经常遇到的钓鱼攻击问题提出了改进方案,并对改进方案做了有效性评估。为了抵抗网络中最常见的钓鱼攻击,研究提出授权机制中通过引入 OTP和三方协商的方式来防止攻击者伪装成授权服务器;为避免原始密码被盗引入了验证网关(VGateway)来安全生成用户凭证。改进后的OAuth2.0授权机制使得攻击者很难通过网络浏览器或移动设备进行钓鱼攻击。 最后,将改进后的OAuth2.0授权机制的架构进行编程实现。详细给出了各功能模块的具体实现,基于Spring Security框架,并运用Java语言编程实现改进后的OAuth2.0授权机制中的各角色:资源拥有者、客户端应用、授权服务器、资源服务器及验证网关之间的交互,完成对用户身份的认证和用户授权功能,并给出测试结果展示。 在本文的结尾,对全文的工作进行总结,并给出下一步的研究方向。