一种基于数字证书的单点登录方法

文档序号:7547328阅读:385来源:国知局
专利名称:一种基于数字证书的单点登录方法
技术领域
本发明涉及一种基于数字证书的单点登录实现方法,可用于多应用系统之间实现安全单点登录,属于信息安全技术领域。
背景技术
为了实现企业的信息化、电子商务和其他需求,越来越多的信息系统在网上出现,这些企业的网络用户和系统管理员不得不面对下面这些问题1.用户需要使用其中的任何一个企业应用的时候都需要做一次身份认证,而且每一次认证使用的认证信息(用户名和密码)不能保证一致;2.系统管理员需要对每一个系统设置一种单独的安全策略,而且需要为每个系统中的用户单独授权以保证他们不能访问他们没有被授权访问的网络资源。因此,以前使用的登录系统,需要给每一台机器上的系统,甚至是每台机器上的每个应用,准备一套用户管理系统和系统用户授权策略。考虑到互操作的可操作性和安全问题,SSO单点登录将一个企业内部所有域中的用户登录和用户帐号集中到一起管理,起到了.减少用户在不同系统中登录耗费的时间,以及用户登录出错的可能性;在实现安全的同时避免了处理和保存多套系统用户的认证信息;减少了系统管理员增加、删除用户和修改用户权限的时间;增加了安全性,系统管理员也有了更好的方法管理用户,包括可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限等明显效果SSO(Single Sign-On)直译为一次登录,也称单点登录。SSO的机制就是在企业网络用户访问企业网站时作一次身份认证,随后就可以对所有被授权的网络资源进行无缝访问,而不需要多次输入自己的认证信息。SSO可以提高网络用户的工作效率,降低系统出错几率。SSO单点登录的好处显而易见但是比较难于实现。目前,SSO单点登录主要是由各家中间件提供商在提供应用服务器集群时提供一种认证信息共享机制,各家厂商提供的实现方式也不一样,IBM公司的WebSphere应用服务器是通过cookies记录认证信息。BEA公司的WebLogic应用服务器通过session共享技术实现认证信息的共享。国内深圳金蝶的apusic应用服务器采用和BEA公司基本一致的技术。其中,cookie是由Web站点发送到登录用户浏览器的一块数据,可以储存在用户的计算机内作为匿名标记,用来标识用户的计算机,这要求客户允许在自己的计算机上接受存放cookie。Session也称会话,它最主要的作用就是可以针对某一个用户的特殊连接,建立一个私人变量,且这个变量可以在不同的页面之间进行传递。然而,不论采用session共享技术还是通过cookies记录认证信息,都存在不易保存、容易丢失的问题。session耗用资源,通常还具有时效性,一旦超时,信息就会全部丢失;而cookies只能应用于接受cookie的浏览器上,有相当的局限性。为了克服这些不足,本发明提出了一种有效的实现方法,使得用户认证信息可以安全有效地在不同应用系统之间传递,从而实现SSO单点登录。

发明内容
本发明的目的在于针对单点登录时用户认证信息不易保存、传输等问题,提出一种采用数字证书、公/私钥技术相结合,对用户的登录信息进行加密,实现加密后的信息在应用系统之间有效安全地传递方法,从而使用户认证信息安全有效地在不同应用系统之间传递,实现SSO单点登录。
实现单点登录的最大难点在于保存用户的登录信息,并将其安全地传送到各个应用系统,再根据用户在各应用系统的的访问权限,控制用户对受保护资源的访问。保护信息安全最简单有效的办法无过于加密,本发明方法采用数字证书、公/私钥技术相结合,对用户登录信息进行加密,加密后,信息就可以在应用系统之间安全传递。本发明所提出的基于数字证书的单点登录实现方法如下适用环境1.系统中有多个不同的应用系统,各系统有各自不同的软硬件运行环境,本发明方法中假定各应用系统均运行在独立的应用服务器上,用户可以通过客户端/浏览器访问应用系统;2.每个用户拥有自己的数字证书eKey(eKey中包括用户的身份证书、签名私钥、加密算法);3.每个用户有访问不同应用系统的权限,且在不同系统中有不同的访问权限,这些权限信息都储存在统一的系统数据库中;4.本发明的环境中有一台逻辑存在的登录服务器,负责实现用户的登录功能,且实际中该登录服务器可以与各应用服务器共享相同的硬件设备;5.本发明的环境中还有一台证书服务器,负责管理所有数字证书。
实现方法a.CA中心为每个应用服务器颁发一套服务器证书,并相应地生成一对公/私钥对,证书与公/私钥对存放在各应用服务器上,仅用作标识服务器身份及服务器端加解密;b.用户访问浏览器/客户端上的登录界面,向登录服务器发出登录请求;c.登录服务器端收到请求后,生成一个随机字符串,发向浏览器/客户端,要求登录者对这个字符串进行签名;
d.浏览器/客户端要求登录者提供数字证书eKey;e.浏览器/客户端调用数字证书eKey提供的接口,将随机字符串签名;f.浏览器/客户端将签名及登录者的身份证书发送到登录服务器端;g.登录服务器先校验用户的签名是否有效,如果验证通过,说明用户信息传送过程中未被篡改;h.登录服务器再校验用户证书是否有效,如果证书有效,可从证书中取出用户的唯一标识,并根据唯一标识定位系统数据库中的用户权限信息;i.登录服务器根据用户权限信息构造用户登录各应用系统的代理主界面,代理主界面将提供所有应用系统入口,并根据用户权限确定用户是否可以进入各应用系统;j.用户发出访问某应用系统的请求;k.登录服务器验证用户访问该系统的权限信息;1.登录服务器验证用户访问该系统的权限通过后,从系统数据库中取出该用户的用户名、口令,再到该系统所在的应用服务器上获取服务器证书及服务器公钥;m.登录服务器将登录用户的用户名、口令、身份证书、被请求的应用服务器证书等四种信息,用被请求的应用服务器的服务器公钥加密,形成登录密文;n.登录服务器将登录密文发送到被请求的应用服务器;o.应用服务器用本服务器的私钥解密登录密文,获得登录用户的用户名、口令、身份证书等信息,同时将登录密文保存在本服务器上;
p.应用服务器根据用户的身份证书从系统数据库中获得登录用户的用户名、口令;q.应用服务器将从系统数据库中获得登录用户的用户名、口令与从登录密文中解密获得的用户名、口令,相比对后,比对一致的用户登录成功,允许用户访问;r.应用服务器根据从系统数据库中获得的用户权限,准许用户访问授权资源;s.用户从正在访问的应用系统切换到另一应用系统时,点击“退出”按钮,退出程序就可开始运行;t.退出程序从本服务器上取出保存的登录密文,解密出用户的用户名、口令、身份证书,再用本服务器的私钥加密,形成退出密文;u.应用服务器将退出密文发送到登录服务器,发出退出请求;v.登录服务器用该应用服务器的公钥解密退出密文,获得用户的用户名、口令、身份证书;w.登录服务器重复步骤h,再校验用户证书是否有效,如果证书有效,可从证书中取出用户的唯一标识,并根据唯一标识定位系统数据库中的用户权限信息,重新构造登录代理主界面,允许用户访问其他应用系统,而无须再次输入登录名、口令。
本发明方法应用数字证书及公/私钥技术实现多应用系统的单点登录,用户信息以密文形式在多应用系统间传递、存储,安全可靠,既避免了session技术中由于session过期导致的用户信息丢失,也解决了cookies技术中用户拒绝cookies而受到的限制。用户可一次登录,在多系统之间运行,无须重复输入登录信息,在满足使用方便的同时保障了安全性,具有很高的示范作用和推广价值。本发明方法特别适用于对已有多应用系统进行安全改造,原有应用系统通过用户名/口令控制登录的功能仍然保留,在此基础上增加数字证书身份认证,改造工作量小,改造后用户在多应用系统之间切换,无须重复校验身份,真正实现了“一次登录,到处漫游”,是一种安全实用,简单方便的SSO单点登录实现方法。


图1为本发明方法软件登录界面示意图。其中,1-登录界面。
图2为本发明方法软件登录代理主界面示意图。其中,2-软件登录代理主界面。
图3为本发明方法软件应用系统主界面示意图。其中,3-软件应用系统登录代理主界面。
图4为本发明实现多应用系统单点登录方法流程图。其中,4-开始;5-用户发出登录请求;6-登录服务器随机生成一段文字下传到客户端;7-客户端用登录者私钥对随机文字签名并将自己的证书号一并发给登录服务器;8-登录服务器校验签名是否成功;9-拒绝登录;10-登录服务器校验证书是否有效;11-拒绝登录;12-登录服务器获取用户访问各应用系统的权限,构造登录代理界面;13-用户发出访问某应用系统的请求;14-登录服务器校验用户访问该系统的权限;15-拒绝访问;16-登录服务器将用户名、口令、身份证书等信息用被请求访问的服务器公钥加密传送给应用服务器;17-应用服务器解密出用户名、口令等信息;18-应用系统用户名、口令校验;19-拒绝访问;20-使用系统;21-退出系统;22-应用服务器将用户的用户名、口令、身份证书用本服务器的私钥加密,发送到登录服务器;23-登录服务器解密出用户名、口令、身份证书。
具体实施例方式
下面结合附图详细说明本发明实施例。
实施例采用本方法实现多个不同应用系统之间单点登录,首先假定各应用系统原已存在,且均采用验证用户名、口令的方法进行登录校验。方法开始4后,用户访问登录界面1,浏览器向登录服务器发出登录请求,登录服务器生成随机字符串S,并将随机字符串S发回浏览器,提示用户对随机字符串S进行签名,用户提供数字证书eKey,输入口令,数字证书eKey中采用HASH算法对字符串S进行签名,获得登录密文E1,浏览器将登录密文E1及用户的身份证书发送到登录服务器,服务器解密密文E1,验证签名及证书,验证通过后访问系统数据库,构造该用户的权限信息,进而依据权限信息构造系统登录代理主界面2,以及各应用系统明暗程度不同,暗示用户是否可访问该系统。用户选择要访问的应用系统后,发出访问请求,登录服务器验证用户的访问权限,验证通过后,从系统数据库中取出用户名、口令,与用户证书一起用被请求的应用服务器公钥加密,形成访问密文E2,发送至该应用服务器,应用服务器首先将访问密文保存在本服务器上,再用自己的私钥解密密文E2,获得原始的用户名、口令及用户证书,然后用用户名、口令做访问校验,校验通过后用户就可以访问该应用系统中自己被授权的资源,如应用系统主界面3所示。用户需要切换应用系统时,点击“退出”,退出程序取出保存的访问密文E2,解密后获得用户的用户名、口令、身份证书,再将这些信息用本服务器的私钥加密,形成退出密文E3,发送给登录服务器,登录服务器用应用服务器公钥解密密文E3,获得用户的用户名、口令、身份证书,再验证用户的证书、构造登录代理主界面,这样用户就又返回了系统登录代理主界面2,可以再进行访问其他应用系统。多个不同应用系统之间单点登录具体流程如下方法开始4后,用户发出登录请求5,登录服务器随机生成一段文字,下传到客户端6,客户端用登录者私钥对随机文字签名,并将自己的证书号一并发给登录服务器7,登录服务器校验签名是否成功8,如果不成功,则拒绝登录9,如果签名成功,登录服务器校验证书是否有效10,如果不成功,则拒绝登录11,如果成功,登录服务器获取用户访问各应用系统的权限,构造登录代理界面12。接着,用户发出访问某应用系统的请求13,登录服务器校验用户访问该系统的权限14,如果不成功,则拒绝访问15,如果成功,登录服务器将用户名、口令、身份证书等信息用被请求访问的服务器公钥加密传送给应用服务器16,应用服务器解密出用户名、口令等信息17,并由应用系统对用户名、口令校验18,如果不成功,则拒绝访问19,如果成功,则使用系统20。退出使用系统21时,应用服务器将用户的用户名、口令、身份证书用本服务器的私钥加密,发送到登录服务器22,登录服务器解密出用户名、口令、身份证书23,再传给登录服务器校验证书是否有效10。方法整个流程完整有效。采用本发明方法,用户只需一次登录,在不同应用系统之间切换时,无须重新输入用户名和口令等验证信息,这些信息被安全地加密保存,在各系统之间传输,既不会丢失,也不会泄密,对客户端也没有任何特殊要求,而且实现起来对原有的应用系统无须做大量的改动,简单易行,具有很好的推广价值。
权利要求
1.一种基于数字证书的单点登录实现方法,包括采用的数字证书、公/私钥技术、登录信息加密以及适用环境系统中有多个不同的应用系统,各系统有各自不同的软硬件运行环境,并假定各应用系统均运行在独立的应用服务器上,用户可以通过客户端/浏览器访问应用系统;每个用户拥有自己的用户身份证书、签名私钥、加密算法的数字证书eKey;每个用户有访问不同应用系统的权限,且在不同系统中有不同的访问权限,权限信息储存在统一的系统数据库中;环境中有一台逻辑存在的登录服务器,负责实现用户登录功能,且实际中该登录服务器可以与各应用服务器共享相同的硬件设备;环境中还有一台证书服务器,负责管理所有的数字证书,其特征在于单点登录实现方法如下a.CA中心为每个应用服务器颁发一套服务器证书,并相应地生成一对公/私钥对,证书与公/私钥对存放在各应用服务器上,仅用作标识服务器身份及服务器端加解密;b.用户访问浏览器/客户端上的登录界面,向登录服务器发出登录请求;c.登录服务器端收到请求后,生成一个随机字符串,发向浏览器/客户端,要求登录者对这个字符串进行签名;d.浏览器/客户端要求登录者提供数字证书eKey;e.浏览器/客户端调用数字证书eKey提供的接口,将随机字符串签名;f.浏览器/客户端将签名及登录者的身份证书发送到登录服务器端;g.登录服务器先校验用户的签名是否有效,如果验证通过,说明用户信息传送过程中未被篡改;h.登录服务器再校验用户证书是不是有效,如果证书有效,可从证书中取出用户的唯一标识,并根据唯一标识定位系统数据库中的用户权限信息;i.登录服务器根据用户权限信息构造用户登录各应用系统的代理主界面,代理主界面将提供所有应用系统入口,并根据用户权限确定用户是否可以进入各应用系统;j.用户发出访问某应用系统的请求;k.登录服务器验证用户访问该系统的权限信息;l.登录服务器验证用户访问该系统的权限通过后,从系统数据库中取出该用户的用户名、口令,再到该系统所在的应用服务器上获取服务器证书及服务器公钥;m.登录服务器将登录用户的用户名、口令、身份证书、被请求的应用服务器证书等四样信息,用被请求的应用服务器的服务器公钥加密,形成登录密文;n.登录服务器将登录密文发送到被请求的应用服务器;o.应用服务器用本服务器的私钥解密登录密文,获得登录用户的用户名、口令、身份证书等信息,同时将登录密文保存在本服务器上;p.应用服务器根据用户的身份证书从系统数据库中获得登录用户的用户名、口令;q.应用服务器将从系统数据库中获得登录用户的用户名、口令与从登录密文中解密获得的用户名、口令,相比对后,比对一致的用户登录成功,允许用户访问;r.应用服务器根据从系统数据库中获得的用户权限,准许用户访问授权资源;s.用户要从正在访问的应用系统切换到另一应用系统时,点击“退出”按钮,退出程序就可开始运行;t.退出程序从本服务器上取出保存的登录密文,解密出用户的用户名、口令、身份证书,再用本服务器的私钥加密,形成退出密文;u.应用服务器将退出密文发送到登录服务器,发出退出请求;v.登录服务器用该应用服务器的公钥解密退出密文,获得用户的用户名、口令、身份证书;w.登录服务器重复步骤h,再校验用户证书是否有效,如果证书有效,可从证书中取出用户的唯一标识,并根据唯一标识定位系统数据库中的用户权限信息,重新构造登录代理主界面,允许用户访问其他应用系统,而无须再次输入登录名、口令。
全文摘要
本发明涉及一种基于数字证书的单点登录实现方法。通过在应用服务器存放数字证书及公/私钥对,利用服务器公/私钥,将用户信息加密保存应用于多应用系统之间,实现安全单点登录,安全可靠。既避免了由于session过期导致的用户信息丢失,也解决了用户拒绝cookies而受到的限制。用户可一次登录,无须重复输入登录信息,使用方便安全,具有很高的示范作用和推广价值。本发明方法特别适用于对已有多应用系统的安全改造,且原应用系统通过用户名/口令控制登录的功能仍然保留。增加数字证书身份认证,改造工作量小。改造后,用户在多应用系统之间切换,无须重复校验身份,真正实现了“一次登录,到处漫游”,是一种安全实用,简单方便的单点登录实现方法。
文档编号H04L9/32GK1547343SQ20031010948
公开日2004年11月17日 申请日期2003年12月17日 优先权日2003年12月17日
发明者顾建荣 申请人:上海市高级人民法院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1