张辉华1,2,李炜1,2
(1. 北京邮电大学网络与交换技术国家重点实验室北京 100876;2. 东信北邮信息技术有限公司北京 100191)
摘要:WDPF(Wireless Digital Picture Frame, 无线数码相框平台)系统是一个平台与终端紧密结合的新型业务。安全性是所有可以用来对资源或信息进行保护和验证的机制。认证授权处于业务核心层,用于识别用户身份,允许特定用户访问特定资源或信息,起访问控制作用,保证系统资源和信息的安全。该文介绍了业务平台中不同模块采用不同认证方式,重点介绍基本认证、摘要认证和OAuth认证在业务平台中的设计与实现。
关键词:无线数码相框平台;Diameter协议;基本认证;摘要认证;OAuth认证
中图分类号:TP393.09
稿件编号:94448
Design and Implementation of Authentication and Authorization Flow in WDPF System
ZHANG Hui-hua1,2, LI Wei1,2
(1. State Key Lab of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876; 2. EBUPT Information Technology Co., Ltd., Beijing 100191)
Abstract: WDPF system is a brand-new kind of service which tightly couples platform with terminals. Security is a mechanism used to protect and verify resources or information. Authentication and authorization management lies in service core layer for the purpose of identifying user identities and allowing specific users to access specific resources or information, acting as controller of access, and protecting security of system resources and information. It is introduced that different modules of WDPF system have different authentication methods. Specifically this paper emphasizes on design and implementation of basic authentication, digest authentication and OAuth authentication.
Keywords: WDPF; diameter protocol; basic authentication; digest authentication; OAuth authentication
0引言
无线数码相框平台是一个综合平台,提供对类无线数码相框终端的管理、类无线数码相框终端与平台接入能力支撑、类无线数码相框终端相关业务加载运行能力,其业务模式包含亲情速递和G3传媒等。亲情速递是一种以无线数码相框为载体,实现随时随地照片分享,同时附加天气预报、热点资讯免费增值服务的业务,是进入家庭信息化领域的重要手段。G3传媒则以亲情速递业务为基础,可以实现广告在线发布和终端远程管理,打造一种新型的广告传媒模式。无线数码相框终端是一个具备移动通信模块的数码相框,是通过液晶屏幕向用户显示电子照片的小型电子类消费产品。可放置在各种地方(如家中、办公室、车内等)用作照片的展示。
无线数码相框业务系统结构图如图1所示:
图1 无线数码相框业务系统结构
无线数码相框业务系统主要包括接入协议适配层、业务核心层和发送协议适配层。安全性是所有可以用来对资源或信息进行保护和验证的机制。授权管理处在业务核心层,用于识别用户身份,允许特定用户访问特定资源或信息,起访问控制作用,保证系统资源和信息的安全。
无线数码相框平台业务包含以下多种认证授权方式:
1.用户门户,管理门户采用用户名和密码进行认证。
2.平台与终端采用HTTP(Hyper Text Transfer Protocol,超文本传输协议)Digest的方式进行认证。
3.平台与第三方应用采用OAuth的方式进行认证。
4.平台与短信网关采用CMPP(China Mobile Peer to Peer,中国移动点对点协议)的认证方式。
5.平台与彩信中心采用MM7(Multimedia Message,多媒体消息即彩信)的认证方式。
6.平台与BOSS(Business & Operation Support System,业务运营支撑系统)采用BOSS规定的认证方式。
由于文章篇幅限制,该文只介绍前三种认证方式的设计和实现。
1认证授权流程设计与实现
1.1基于用户名密码的认证
HTTP基本认证[1]应用在web portal,是目前最常见的用户身份认证的方式之一。无线数码相框平台用户门户和管理门户都涉及用户名密码登录,使用HTTP基本认证。用户登录门户时输入正确用户名密码即可进入自己的页面。考虑到机器人登录和密码截取等因素,在一般用户名密码验证的情形下,对以下几点进行了增强:
1.验证码校验
验证码是一种区分用户是计算机和人的公共全自动程序。可以防止恶意破解密码,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。
2.密码再加密
表单提交事件前对输入的密码再加密,防止密码在提交时被截获。移动领域基于密码的认证安全性可以得到保证,只要相应的密钥建立方案合理有效[2]。类似地,密码再加密也可以采用合理有效密钥建立协议,不过对于WDPF系统门户的密码再加密使用常见加密算法即可,否则难免舍本求末。
3.限制密码域使用
虽然在密码域中已经将所输入的字符以掩码形式显示了,但是它并没有实现真正保密,因为用户可以通过复制该密码域中的内容,并将复制的密码粘贴到其他文档中查看到密码。为实现密码的真正安全,可将密码域的复制功能屏蔽,同时将密码域的掩码符号也进行改变。实现密码域的内容禁止复制的功能主要是通过控制其oncopy、oncut、onpaste事件实现的。
此外,提高基本认证安全性措施还可以绑定用户手机使用一次性随机码,安装密码域安全插件等。
1.2基于HTTP摘要的认证
为了保证业务终端和服务器之间交互的安全性,业务规范中采用HTTP Digest[1]方式进行终端注册和消息保护。在该过程中,双方需要有特定的密钥对消息头内容进行摘要和对摘要进行认证。通过此方式,终端和服务器对彼此进行身份认证,并保证消息防篡改。HTTP Digest摘要认证请求基于Diameter基本协议[3]实现。
Diameter基本协议为移动IP(Internet Protocol,网际协议),网络接入服务等应用提供最基本的服务,例如用户会话,计费等,具有能力协商、差错通知等功能[4]。协议元素由众多命令和AVP(Attribute-Value Pair, 属性值对)构成,可以在客户机、代理、服务器之间传递鉴别,授权和计费信息。但是不管客户机、代理还是服务器,都可以主动发出会话请求,对方给予应答,所以也叫对等实体之间的协议。命令代码,AVP值和种类都可以按应用需要和规则进行扩展。
通过使用HTTP Digest方式进行鉴权,完成客户端和服务器间的双向认证,系统默认使用MD5[5]摘要算法。
1.2.1摘要计算算法
1.客户端请求服务器的请求消息摘要计算算法如下:
response=MD5(MD5(A1)”:”unq(nonce-value)”:”nc-value”:”unq(cnonce-value)”:”unq(qop-value)”:”MD5(A2))
A1=unq(username-value)”:”unq(realm-value)”:”passwd
qop等于 auth或无值时,A2=Method”:”digest-uri-value
qop等于auth-int时,A2=Method”:”digest-uri-value”:”MD5(entity-body)
2.服务器返回客户端的响应消息摘要计算算法如下:
respauth=MD5(MD5(A1)”:”unq(nonce-value)”:”nc-value”:”unq(cnonce-value)”:”unq(qop-value)”:”MD5(A2))
A1=unq(username-value)”:”unq(realm-value)”:”passwd
qop等于 auth或无值时,A2=”:”digest-uri-value
qop等于auth-int时,A2=”:”digest-uri-value”:”MD5(entity-body)
其中,Method=GET;unq(X)代表去掉X前后的引号;entity-body代表HTTP请求的消息体;passwd代表客户端和服务器间共享的私钥。
1.2.2摘要认证流程
当终端需要与WDPF进行业务交互时,可通过Digest Verify接口从WDPF获得终端摘要认证消息的验证结果。1)终端组装Digest_Verify.REQ消息给WDPF;2)WDPF执行摘要认证消息的计算和摘要认证结果的对比,WDPF将执行结果Result Code AVP封装在Digest_Verify.RES消息返回给终端。
实现HTTP Digest请求使用以下三组Diameter命令,见表1.
表1 摘要认证Diameter消息
-
CER/CEA:在传送连接建立时,两个Diameter节点进行交换的第一个Diameter消息为CER/CEA。该消息包括节点的标识和它的能力(协议版本号,支持的Diameter应用,支持的安全机制等等)。
-
DWR/DWA:一旦传送层或应用层发生故障,Diameter需要立即发现并采取正确的行动。Diameter检测故障的机制基于应用层监督。当两个Diameter节点建立通信时,如果一个节点发送请求,并在规定的时间内没有收到应答,就可以检测到传送层或应用层出现故障了。如果没有定期的通信,就无法检测到潜在的故障。通过在Diameter节点发送DWR消息,检测传送层和应用层,从而解决了上述问题。若没有收到DWA,则可以断定有故障发生。
-
DVR/DVA:以上两组Diameter消息中,CER/CEA保证了节点有权限和服务器进行能力交互,DWR/DWA保证了客户端和服务器之间链路的顺畅,在此基础之上DVR/DVA消息才是真正实现摘要认证,客户端携带Digest-Username AVP,Digest-Realm AVP,Digest-Nonce AVP等RADIUS(Remote Authentication Dial In User Service, 远程认证拨号用户服务)应用于Digest认证的扩展[6],根据客户端和服务器间的双向认证实现HTTP Digest的算法计算应答认证值并存储在Digest-Response-Auth AVP值域通过DVA消息返回。
1.3基于OAuth的认证授权
数码相框平台图片社区提供数码相框终端图片上传、同步、存储、欣赏和分享等基本功能,也可以整合第三方应用,比如flickr,又拍网等图片应用,google地图,日历等应用,还可以作为独立的应用开放API提供给数码相框平台其他模块或其他网站使用。无论作为第三方应用的提供者还是消费方,用户需要授权第三方应用使用自己的数据或资源,传统的用户名口令授权容易被截获用户名和密码,泄露用户信息,安全性很难得以保证。
OAuth协议[7]为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的账号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAuth是开放的。业界提供了OAuth的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAuth是简易的。目前互联网很多服务如Open API,很多公司如Google,Yahoo,Microsoft等都提供了OAuth认证服务,这些都足以说明OAuth标准逐渐成为开放资源授权的标准。
OAuth认证流程如图2所示:
图2 图片社区OAuth认证流程
具体每步执行信息如下:
A. 消费方(第三方应用)向图片社区(OAuth服务提供商)请求未授权的Request Token。向Request Token URL发起请求,请求需要带上的参数见图2。
B. 图片社区同意消费方的请求,并向其颁发未经用户授权的oauth_token与对应的oauth_token_secret,并返回给消费方。
C. 消费方向图片社区请求用户授权的Request Token。向User Authorization URL发起请求,请求带上上步拿到的未授权的token与其密钥。
D. 图片社区将引导用户授权。该过程可能会提示用户,你想将哪些受保护的资源授权给该
应用。此步可能会返回授权的Request Token也可能不返回。如Yahoo OAuth就不会返回任何信息给消费方。
E. Request Token 授权后,消费方将向Access Token URL发起请求,将上步授权的Request Token换取成Access Token。请求的参数见图2,这个比第一步A多了一个参数就是Request Token。
F. 图片社区同意消费方的请求,并向其颁发Access Token与对应的密钥,并返回给消费方。
G. 消费方以后就可以使用上步返回的Access Token访问用户授权的资源。
图片社区通过以下四个步骤来完成认证授权并访问或修改受限资源的流程
1.获取未授权的Request Token
通过访问以下URL获取未授权的Request Token,
http://home-g3.com/request_token
返回值包括未授权的Request Token和对应的Request Token Secret。
2.请求用户授权Request Token
获得Request Token之后,需要请求用户授权该Request Token
你需要将浏览器跳转到如下URL(如果无法自动跳转,则需要提示用户手工跳转)。这会是一个图片社区上的页面,提示用户授权给你的应用,以允许你的应用访问该用户在图片社区上的信息。
http://home-g3.com/authorize
跳转后用户会看到请求授权的页面,用户可以选择同意或者拒绝授权。
3.使用授权后的Request Token换取Access Token
用户完成授权后,第三方应用可以通过访问如下url,将已授权的Request Token换取Access Token。Access Token将被用于访问或修改受限资源。
http://home-g3.com/access_token
返回值包括授权的Access Token,对应的Access Token Secret。
4.使用 Access Token 访问或修改受保护资源
获得Access Token之后,第三方应用就可以使用Access Token访问或修改受保护的资源。
2总结
根据数码相框业务平台不同模块的特性,采取不同的认证方式并进行一定的加强,保证了不同模块功能的安全以及一定的简易性。用户登录部分采用验证码校验、密码再加密和加强的密码域,HTTP摘要认证采用Diameter协议实现,第三应用使用图片社区服务基于OAuth协议实现等等,不但符合各自性能要求,而且保障各自的安全性。
参考文献
[1] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “HTTP Authentication: Basic and Digest Access Authentication”[S], RFC 2617, June
1999
[2] Jun Liu, Jianxin Liao, Xiaomin Zhu, "A Password-Based Authentication and Key Establishment Scheme for Mobile Environment,"[R] ainaw, vol. 2, pp.99-104, 21st International Conference on Advanced Information Networking and Applications Workshops (AINAW'07), 2007
[3] Calhoun, P., Loughney, E., Guttman, E., Zorn, G., and J. Arkko, “Diameter Base Protocol”[S], RFC 3588, September 2003
[4] Gonzalo Camarillo, Miguel A.Garcia-Martin著,京移通信设计院,张同须等译,3G IP多媒体子系统IMS:融合移动网页因特网[M],人民邮电出版社,2006年4月
[5] Rivest, R., “The MD5 Message-Digest Algorithm”[S], RFC 1321, April 1992
[6] Sterman, B., Sadolevsky, D., Schwartz, D., Williams, D., and W. Beck, “RADIUS Extension for Digest Authentication”[S], RFC 4590, July 2006
[7] Hammer-Lahav, E., and Ed., “The OAuth 1.0 Protocol”[S], RFC 5849, April 2010
联系方式:
姓名:张辉华
邮箱:zhanghuihua@ebupt.com
手机:13811977996
地址:北京市海淀区知春路9号坤讯大厦7层
邮编:100191
————————————————————————
基金项目:国家杰出青年科学基金(No.60525110);国家973计划项目(No.2007CB307100,2007CB307103);国家自然科学基金(No. 61072057,60902051);中央高校基本科研业务费专项资金(BUPT2009RC0505);电子信息产业发展基金项目(基于3G的移动业务应用系统)
作者简介:张辉华(1986-),男,福建三明人,工学硕士,主要研究方向为业务网络智能化;李炜(1973-),男,上海人,副教授,工学博士,主要研究方向为业务网络智能化、移动增值业务系统