APP下载

基于CPN的OAuth协议建模与分析①

2018-03-02张新刚

计算机系统应用 2018年2期
关键词:令牌客户端服务器

张 婷,张 鑫,张新刚

1(南阳师范学院 计算机与信息技术学院,南阳 473061)

2(南阳理工学院 软件学院,南阳 473000)

1 Web安全开放授权协议

在云计算时代,开放和共享数据的需求日益增加,为了便于用户将资源授权给第三方应用,开放授权的思想应运而生.开放授权旨在对权限进行细粒度的控制,并且保护用户的密码以及认证凭据.目前主要的Web2.0安全开放授权机制是:OAuth协议[1],OpenID协议[2]和IAM服务[3].

OAuth协议面向个人用户,可对资源进行开放授权.在线授权是其特点:OAuth让第三方无法触及到用户的敏感信息(如用户名与密码等),在认证用户的资源所有者身份后,即可以申请获得该用户资源的授权[4],从而安全便捷地访问用户的网络资源.

OpenID描述用户分布式方式身份认证的URI框架[5],解决了传统数字身份标识管理以及认证的问题.具有多种认证方式,例如用户名/密码的通用认证方式,或生物识别技术、智能卡等新型认证方式.服务提供商不用考虑认证机制,用户只需要注册获取 OpenID 账户,即可在多个网站间登录,而不需要重复注册,便于用户统一管理身份信息[6].

IAM服务涵盖两方面内容:用户信息管理和用户访问策略管理.IAM服务采用预先授权,用户在预先知道第三方应用所需资源请求的情况下,授权客户端使用REST API方式访问资源.

2 OAuth协议工作原理

OAuth协议工作的基本流程[1]如图1所示.

(1)用户打开客户端后,客户端要求用户给予授权.请求会包含以下信息:用户的身份信息,要访问的资源路径和操作类型等.

(2)用户同意给予客户端授权,并传输授权证据.

(3)客户端向认证服务器申请访问令牌.此时,客户端需提供授权证据和客户端的凭证.

(4)客户端通过认证服务器的认证后,得到其发放的访问令牌.

(5)客户端携带访问令牌,向资源服务器申请获取资源.在令牌的有效期内,客户端可多次携带令牌访问资源.(6)资源服务器验证令牌的有效性后同意让客户端访问资源.令牌的有效性包括是否过期、是否伪造、是否越权等.

图1 OAuth协议工作原理

在OAuth 2.0中定义了四种授权方式,如表1所示.

表1 授权方式

在OAuth 2.0协议在使用授权码模式与认证服务器进行互动时,使用到的各个参数如表2至表6所示.

表2 申请认证URI的参数含义

表3 回应URI的参数含义

表4 请求令牌的参数含义

表5 返回令牌的参数含义

表6 更新令牌的参数含义

3 CPN简介

Petri 网是一种基于状态的建模方法,CPN(Colored Petri Net)是在 Petri 网基础上扩展而来,具有概念简单性以及图形化表达的特点.Kumar和Spafford将 Petri 网应用于Web安全领域[7],建立了基于Petri网的入侵检测模型,对入侵行为进行CPN建模,当相应模型匹配的事件序列被触发时,表示入侵行为发生.

CPN在解决协议建模问题时具有以下的优势:

(1)层次化.引入了层次子网的结构,含有替代变迁和融合库所,可利用多个彼此联系的CPN网子模型构建复杂系统的整体模型.

(2)可实现推理.具有变迁机制,库所被触发后变迁到达新的库所,因果关系明确.

(3)可处理并发或顺序性问题.具有时间因子可以处理不同行为发生的时间.

(4)有较完善的仿真工具,可使用CPNTools工具进行可视化建模和仿真分析.

4 OAuth2.0协议建模

4.1 OAuth2.0协议的顶层模型

基于CPN的OAuth2.0协议顶层模型如图2所示,定义模型的颜色集和变量如下:

colset DATA= String;

colset NO = INT;

colset NO*DATA =Product NO*DATA;

var success:BOOL;

图2 OAuth2.0协议的顶层模型

库所A表示申请认证URI,库所B表示请求令牌,库所C表示返回令牌,库所D表示回应URI,库所E表示更新令牌.库所Type credential 表示授权证书,库所Grant Access表示授权访问.

申请认证URI的参数和请求令牌的参数(client_id,redirect_uri)用数据类型NO×DATA表示,回应URI的参数(code)用数据类型NO表示,返回令牌的参数(expires_in)用数据类型NO表示,更新令牌的参数(refresh_token,scope)用数据类型NO×DATA表示.

4.2 Resource Owner模型

Resource Owner的执行过程如图3所示.用户访问客户端,给客户端授权后,认证服务器将用户导向重定向URI,并附授权码.

变迁Resource Owner表示客户端将用户导向认证服务器,变迁Receive Token表示用户是否将授权给予客户端.库所NextToken表示用户批准授权后发送的授权证据.库所Type credential 表示授权证书.库所A表示申请认证URI,库所D表示回应URI,库所E表示更新令牌.

图3 Resource Owner模型

4.3 Authorization Server模型

Authorization Server的执行过程如图4所示.在认证服务器确认授权码以及重定向URI无误后之,将访问令牌发送给客户端.

图4 Authorization Server模型

变迁Generate token表示客户端向认证服务器请求访问令牌,变迁Validate token表示验证通过后,向客户端返回访问令牌.库所A表示申请认证URI,库所B表示请求令牌,库所C表示返回令牌,库所D表示回应URI.

4.4 Resource Server模型

Resource Server的执行过程如图5所示.客户端携带访问令牌访问资源服务器上的资源.如果令牌在有效期内,客户端可以多次访问相关资源.资源服务器验证令牌的有效性,通过验证后,提供所需服务.

图5 Resource Server模型

变迁Resource server表示验证令牌的有效性.库所NextReq表示客户端多次携带令牌访问资源.库所Grant access表示授权访问相应资源.库所B表示请求令牌,库所C表示返回令牌,库所E表示更新令牌.

5 OAuth2.0协议分析

跨站请求伪造缩写为CSRF,通过在授权用户访问的页面中包含链接,CSRF攻击可伪装用户请求,访问受信任网站.CSRF攻击者的目标站点常具有持久化授权cookie或者具有当前受信任用户的会话cookie.为了防范CSRF攻击,需要将类似cookie的持久化授权方法,转换为瞬时授权方法.例如在form中包含用户授权证据作为cookie之外的验证.

申请认证URI的参数(client_id,redirect_uri)如果在redirect_uri中注入攻击者提供的authorization_code,模型仿真会终止在Authorization Server的变迁validate token执行过程中,不会访问资源服务器上的资源.这说明从浏览器安全角度考虑,OAuth协议在redirect_uri中引入state参数可以防范CSRF攻击.如果没有state参数,攻击者可能导致客户端访问错误的资源.

6 小结

本文列举了主要的几种Web安全开放协议,绘制了OAuth协议时序图,使用CPN对OAuth2.0协议的授权码模式进行层次化建模.OAuth2.0协议的模型包括顶层模型、Resource Owner模型、Authorization Server模型和Resource Server模型.并使用Petri网仿真工具CPNTools对OAuth2.0协议进行了仿真分析,直观地展现协议运行过程和防范CSRF攻击的特点.

1The OAuth 2.0 authorization protocol (draft-ietf-oauth-v2-16).http://tools.ietf.org/html/draft-ietf-oauth-v2-16.[2011-05-19].

2Recordon D,Reed D.OpenID 2.0:A platform for user-centric identity management.Proceedings of the 2nd ACM Workshop on Digital Identity Management.Alexandria,VA,USA.2006.11-16.

3胡刚,郭文奇,戚前方.IAM安全技术在开放平台系统管理的应用.计算机工程,2005,31(S1):192-194.

4李馥娟.基于OAuth的开放授权技术及在云计算中的应用.计算机系统应用,2015,24(4):228-232.

5夏晔,钱松荣.OpenID身份认证系统的认证等级模型研究.微型电脑应用,2011,27(4):7-9.

6刘润达,王卷乐,杜佳.OpenID:一种开放的数字身份标识管理及其认证框架.计算机应用与软件,2008,25(12):127-129.[doi:10.3969/j.issn.1000-386X.2008.12.043]

7Kumar S,Spafford E H.A software architecture to support misuse intrusion detection [Technical Report].CSD-TR-95-009.West Lafayette,USA:Purdue University,Department of Computer Sciences,1995.

猜你喜欢

令牌客户端服务器
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
称金块
基于路由和QoS令牌桶的集中式限速网关
一种高精度均匀取样算法及其网络应用
PowerTCP Server Tool
BlackJumboDog
2018年全球服务器市场将保持温和增长
新华社推出新版客户端 打造移动互联新闻旗舰
用独立服务器的站长注意了