基于Cookie技术的统一认证方案的研究

2012-01-03 09:31于光许
焦作大学学报 2012年3期
关键词:浏览器统一身份

于光许

(河南经贸职业学院,河南 郑州 450046)

0.引言

统一认证(Unified Identity Authorization),是目前比较流行的企业业务整合的解决方案之一。统一认证是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。通过统一认证,用户能够实现“一次登录,多方认证”[1]。目前实现统一认证的产品和解决方案有很多,比较常见的有微软的 Passport[2]和SUN 支持的 Liberty Alliance Project[3]等。本文设 计了 一个轻量级的基于 Cookie[4]的统一认证系统。

1.研究现状

1.1 微软 Passport

Passport统一认证技术采用集中认证和分布授权的方式,它的工作原理如下:当用户通过浏览器访问一个网站A的时候,如果A网站需要验证用户的身份,就把该用户的浏览器重定向到 Passport服务器,Passport服务器对用户进行身份验证后在客户端的浏览器设置.passport.com 域的 Cookie,该 Cookie含有 PUID(Passport U-nique ID)信息,使用 Passport加密密钥加密,然后 Passport服务器在返回给浏览器的指向参与Passport的网站的重定向URL中包含用户的信息。A网站在收到Passport服务器传来的请求后,解密出该信息,并把用户的身份验证信息保存在客户端浏览器的 Cookie里[5]。

该方案较好地实现了统一认证,但是它也存在安全性问题。因为Passport登录验证服务器和个人信息服务器都是微软的,并且它的技术细节不对外公开,导致人们一直怀疑用户的个人信息会被泄露。再加上Passport服务并不是免费的,这都限制了它的进一步发展。

1.2 Liberty Alliance Project

随着SMAL[6]的广泛推广,分布式的身份管理技术越来越多地得到专业人士和机构的认可。这种技术提倡将用户的认证信息存储在分散的数据库中,以此来实现统一认证。

在Liberty中,通过在Web应用间以 HTTP重定向或Cookies方式传递用户票据来实现统一认证。

该方案很好地实现了统一认证,安全性也比较高,但是,为了做到无缝连接,服务提供商的页面中常常会嵌入身份提供商的登录表单,并通过这将用户的凭证信息返回身份提供商处。在这个过程中,用户把他的身份提供商凭证以明文的形式显示给服务提供商,这样就有可能导致用户的身份提供商账户被泄露。

另外,以上主流统一认证方案都存在一个共性的问题,就是部署起来比较复杂。

近年来,国内对统一认证也做了许多研究,取得了一些研究成果,并提出了对应的解决方案。文献[7]中提出了一种基于 Kerberos[8]的统一认证系统,由于 Kerberos服务器与用户共享的服务器会话密钥是用户的口令,服务器在响应时不验证用户的真实性,而是直接假设只有合法用户才拥有该口令,如果攻击者截获了响应消息,就容易形成密码攻击。文献[9]提出了一个基于XML密钥管理规范和SAML的统一认证方案,它使用XML密钥管理规范保存用户信息并验证用户的登录,然后利用SAML服务实现了统一认证功能,该方案注重对用户凭证的保护,需要在对用户实施身份认证的Web服务站点中增加额外的特殊服务。文献[10]提出的实现Web服务的统一认证方法基于SAML,在该体系结构中,应用站点既充当服务提供者又充当身份提供者角色,这将需要对应用站点作出修改。

基于以上原因,本文开发设计了一套基于Cookie的轻量级的统一认证系统。本方案以Register服务器为中心,用户的注册和登录验证均在该服务器上实现,然后以Cookie的方式写入到用户的浏览器中。

2.系统设计

由于目前大多数网站需要实现与用户的交互功能,实现以用户为中心,本文设计开发实现了一套基于Cookie的统一认证系统。

2.1 系统结构图

该系统的核心是中心认证服务器(Register服务器),它负责完成用户的身份验证,并负责在客户的浏览器中写入Cookie。如图1所示:

图1 系统结构图

2.2 登录流程

图2 统一认证流程图

当一个用户通过浏览器访问一个应用系统时,该系统会先在用户的浏览器中查询是否存在已经验证过的该用户的Cookie信息,如果在浏览器中查询到,则显示该用户为已登录,可以使用他的所有功能;反之,若该应用系统未查询到该用户的Cookie信息,则转到Register服务器,由 Register服务器来验证用户的合法性;若用户登录成功,则由Register服务器在用户的浏览器中写入Cookie,然后返回该用户之前访问的页面,并由该应用服务器验证Cookie信息。如图2所示。

应用系统和 Register服务器组成一个信任域,信任域里的应用系统之间是互相信任的,彼此共享Cookie。

2.3 注销流程

由于用户在登录系统后,在客户端的Cookie中存储有用户的验证信息,用来表示该用户已经登录,当用户从网站注销的时候,该网站会从该用户的浏览器Cookie中删除掉他的Cookie信息,那么当用户再次请求服务时,由于没有与之对应的Cookie信息,所以需要重新登录以便获取所需的Cookie信息。

3.总结

本文简单地描述了统一认证的概念,介绍了几个主要的统一认证技术。本文介绍了一个简单的统一认证技术,实现了统一认证,提高了用户的体验。但是,该方案也存在着一些问题,比如实施方案简单、安全性还需要进一步提高等。本文的下一步工作是对已有的简单架构进行实现,对在实际情况中实现统一认证设计的更复杂的问题继续加以研究。

[1]卢清平,杨柳,许晓东.一个基于 Yale2CAS的统一认证解决方案[J].合肥学院学报(自然科学版),2005,15(3):37-40.

[2]孟凡荣,程洁,史会余.单点登录模型的研究与应用[J].微计算机信息,2008,(21):164 -165,181.

[3]王新房,刑毅,刘萍萍.Liberty的单一登录多方认证机制及其安全性分析[J].微电子学与计算机,2004,21(10):117-120.

[4]邓春燕,周治国,李文印,玄光哲.Cookie技术在几种语言中的实现[J].长春邮电学院学报,2001,19(2):45-50.

[5]R.Oppliger.Microsoft.Net Passport:a Security Analysis[J].Computer,2003,36(7):29 - 35.

[6]钟迅科.基于SAML实现Web服务的单点登录[J].现代计算机,2004,(4):32-36.

[7]于洪淳,曹作良.基于Cookie的Web服务统一认证系统[J].天津理工大学学报,2008,24(4):42 -44.

[8]周倜,王巾盈,李梦君,李舟军.Kerberos协议版本的分析与比较[J].计算机科学,2009,36(2):119-121,128.

[9]韩涛,郭荷清.Web服务安全模型的研究与实现[J].计算机工程,2006,32(10):130 -134.

[10]钟迅科.基于SAML实现 Web服务的单点登录[J].现代计算机,2004,(4):32-36.

猜你喜欢
浏览器统一身份
坚持严管和厚爱相统一的着力点
碑和帖的统一,心和形的统一,人和艺的统一
反浏览器指纹追踪
统一数量再比较
跟踪导练(三)(5)
身份案(下)
他们的另一个身份,你知道吗
环球浏览器
放松一下 隐瞒身份
坚持“四纳入” 实施“四统一”