CN101534192B - 一种提供跨域令牌的系统和方法 - Google Patents
一种提供跨域令牌的系统和方法 Download PDFInfo
- Publication number
- CN101534192B CN101534192B CN2008100853564A CN200810085356A CN101534192B CN 101534192 B CN101534192 B CN 101534192B CN 2008100853564 A CN2008100853564 A CN 2008100853564A CN 200810085356 A CN200810085356 A CN 200810085356A CN 101534192 B CN101534192 B CN 101534192B
- Authority
- CN
- China
- Prior art keywords
- token
- domain
- intra
- signature
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012795 verification Methods 0.000 claims description 405
- 238000010200 validation analysis Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 22
- 239000003795 chemical substances by application Substances 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 11
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 9
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 9
- 102100039558 Galectin-3 Human genes 0.000 description 9
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 9
- 101150115300 MAC1 gene Proteins 0.000 description 9
- 101150051246 MAC2 gene Proteins 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000008520 organization Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100289995 Caenorhabditis elegans mac-1 gene Proteins 0.000 description 1
- 239000003054 catalyst Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供一种提供跨域令牌的系统和方法,用户终端向认证中心提交登录信息,认证中心利用用户鉴权方法对登录信息进行验证,在验证成功时将生成的域内令牌返回给令牌适配器;令牌管理子系统捕获认证中心返回给令牌适配器的域内令牌,根据捕获到的域内令牌确定并保存令牌验证信息;在接收到令牌适配器发送的携带有域内令牌的令牌请求时,利用令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌通过令牌适配器返回给用户终端。应用本发明方案,可以不必对原有的认证中心进行大量更改,也不必替换原有的认证中心,就可以达到向用户终端提供跨域令牌的目的,从而可以充分利用原有仅支持域内令牌的系统,节约了成本。
Description
技术领域
本发明涉及网络单点登录(SSO,Single Sign-on)技术,特别涉及一种提供跨域令牌的系统和方法。
背景技术
随着网络技术的发展,某个企业或机构可以通过网络向用户提供某些应用服务,如电子邮件、论坛等。考虑到对用户身份的鉴别,各个应用服务通常需要利用各自的验证机制对用户进行鉴别。也就是说,当用户访问某个应用服务时,需要提交针对该应用服务的登录信息,如用户名、口令等信息,并在通过合法性验证后才允许访问该应用服务。但随着企业或机构向用户提供的应用服务越来越多,用户需要记忆的登录信息也越来越多,实际使用起来非常不方便。
为此,目前提出一种单点登录技术,可以将某个企业或机构提供的所有应用服务对用户身份的鉴别统一到一个鉴权平台。用户只需提交一次登录信息,就可以利用鉴权平台提供的域内令牌访问不同的应用服务。实际中,某个企业或机构提供的所有应用服务以及鉴权平台组成的系统可以称为一个域。域内令牌由鉴权平台生成,可以是一个随机数或按照预先设置的格式所产生的序列串,并且只能用于访问该企业或机构自身提供的各个应用服务,即域内的应用服务。
图1是一个在域内实现单点登录的系统示意图。如图1所示,该系统包括认证中心101、提供应用服务的设备102以及用户终端103。认证中心101就是统一的鉴权平台,用于对用户提供的登录信息进行验证,并在验证成功后向用户终端103提供生成的域内令牌,还可以在用户后续利用该域内令牌访问域内的其它应用服务时,对该域内令牌进行鉴权。实际应用中,该系统还可能包括认证代理104,用于转发认证中心101和用户终端103之间交互的消息,以及该系统的门户(Portal)设备105。
也就是说,用户首次访问提供应用服务的设备102或门户设备105时,可以向认证代理104提供登录信息,认证代理104将登录信息转发给认证中心101。当认证中心101验证成功时,将为该用户生成一个域内令牌,并通过认证代理104将该域内令牌返回给用户终端103。此后,用户终端103就可以直接利用该域内令牌对提供应用服务的设备102进行访问。当然,在获得域内令牌后,用户终端103还可以访问域内的另一个提供应用服务的设备102。此时,用户终端103需要将事先已经获得的域内令牌通过认证代理104发送给认证中心101,认证中心101对该域内令牌进行验证,并将验证结果返回给当前被访问的另一个提供应用服务的设备102,当前被访问的另一个提供应用服务的设备102根据该验证结果允许或拒绝用户的访问。
虽然域内的单点登录技术可以在用户仅提交一次登录信息的情况下,由认证中心提供域内令牌,用户终端利用该域内令牌访问域内的各个应用服务,从而避免用户记忆多个针对不同应用服务的登录信息,但域内令牌只能用于访问域内应用服务,无法实现访问其它域的应用服务的实际需求。实际应用中,多个企业或机构所在域中的用户可能需要相互访问对方的应用服务,而每个域都有各自的鉴权机制,生成的域内令牌无法被其它域识别和认证,也就无法访问其它域的应用服务。
为了用户在仅提交一次登录信息后也可以访问其它域的应用服务,目前提出联邦单点登录(Federated SSO)、跨域单点登录(Cross-domain SSO)等技术。不管采用哪种技术,每个域都可以为登录成功的用户生成便于其它域识别的跨域令牌。这样,某个域的用户在登录成功后,如果利用认证中心提供的跨域令牌访问自身所在域的应用服务,可以由该用户自身所在的域对跨域令牌直接进行鉴权,并返回鉴权结果;而如果用户利用跨域令牌访问其它域的应用服务,则可以由其它域对跨域令牌进行鉴权,或者由其它域将跨域令牌发送给该用户所在的域进行鉴权,并获得返回的鉴权结果。此后,被访问的域内应用服务或域外应用服务就可以利用鉴权结果允许或拒绝用户的访问。
上述仅仅是对联邦单点登录、跨域单点登录等技术的简单描述,至于具体如何生成跨域令牌、用户如何利用跨域令牌访问应用服务等属于现有技术,此处不再赘述。
在用户仅登录一次的情况下,联邦单点登录、跨域单点登录等现有技术虽然可以为用户提供跨域令牌,允许用户不但可以访问域内的应用服务,还可以访问其它域的应用服务,但该技术要求每个域的认证中心等与用户身份鉴别相关的设备都必须支持该技术。在这种情况下,如果原有的仅支持域内,令牌的域A需要与支持跨域令牌的域B实现跨域访问,即两个域内的用户相互访问对方的应用服务,由于原有的仅支持域内令牌的域A无法为用户提供跨域令牌,通常会将域A中的认证中心等与用户身份鉴别相关的设备直接替换为支持联邦单点登录、跨域单点登录等技术的设备,造成原有设备的浪费,成本的增加。
可见,现有技术还没有提出一种在原有的仅支持域内令牌的系统基础上向用户提供跨域令牌的方法和系统。
发明内容
本发明第一个发明目的是提出一种向用户提供跨域令牌的系统,可以在原有的仅支持域内令牌的系统基础上向用户提供跨域令牌。
本发明的第二个发明目的是提出一种向用户提供跨域令牌的方法,可以在原有的仅支持域内令牌的系统基础上向用户提供跨域令牌。
针对上述第一个发明目的,本发明提出的技术方案是:
一种提供跨域令牌的系统,该系统包括:
令牌适配器,用于将用户终端提交的登录信息转发给认证中心,在获得由认证中心返回的域内令牌时,利用获得的域内令牌向令牌管理子系统发送令牌请求,接收返回的跨域令牌,并将获得的跨域令牌返回给用户终端;
认证中心,用于在接收到令牌适配器转发的登录信息时,利用设定的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器;
令牌管理子系统,用于捕获认证中心返回给令牌适配器的域内令牌,根据捕获到的域内令牌确定用于验证域内令牌合法性的令牌验证信息;还用于接收令牌适配器发送的令牌请求,利用所述令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌返回给令牌适配器。
上述方案中,所述令牌管理子系统包括:
域内令牌捕获器,用于捕获认证中心返回给令牌适配器的域内令牌;利用签名算法对令牌验证信息进行签名,获得验证信息签名结果,所述令牌验证信息由捕获到的域内令牌确定;将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器;
域内令牌验证管理器,用于根据验证信息签名结果对令牌验证信息进行验证,并在验证成功时保存所述令牌验证信息;还用于在接收到令牌适配器发送的令牌请求时,利用保存的令牌验证信息对令牌请求中携带的域内令牌进行验证,并在验证成功时向跨域令牌管理器发送令牌请求,将跨域令牌管理器返回的跨域令牌转发给令牌适配器;
跨域令牌管理器,用于在接收到域内令牌验证管理器发送的令牌请求时,生成跨域令牌,将生成的跨域令牌返回给域内令牌验证管理器。
上述方案中,所述域内令牌捕获器包括:
捕获单元,用于捕获认证中心返回给令牌适配器的域内令牌,将捕获到的域内令牌作为令牌验证信息送给第一签名执行单元;
第一签名执行单元,用于利用签名算法对输入的信息进行签名,获得验证信息签名结果,并将令牌验证信息和获得的验证信息签名结果输出给第一收发单元;
第一收发单元,将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器。
上述方案中,所述域内令牌捕获器进一步包括:
第一存储单元,用于保存发送方签名相关信息,所述发送方签名相关信息包括所有的运算次数以及所有的哈希运算结果,所述运算次数与哈希运算结果一一对应,每一个哈希运算结果是对产生的随机数进行相应运算次数的哈希运算结果;
第一选择单元,用于按照顺序从第一存储单元中选择出一个运算次数和对应的哈希运算结果,并将选出的结果提供给第一签名执行单元;
所述第一收发单元进一步用于:在将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器时,将运算次数一并发送给域内令牌验证管理器。
上述方案中,所述域内令牌捕获器进一步包括:
第一存储单元,用于保存上一次参与签名运算的发送方签名相关信息,所述发送方签名相关信息包括一个运算次数和对应的一个哈希运算结果,所述哈希运算结果是对产生的随机数进行相应运算次数的哈希运算结果;
第一计算单元,用于根据第一存储单元中上一次参与签名运算的发送方签名相关信息计算出当前的发送方签名相关信息,并提供给第一签名执行单元;
所述第一收发单元进一步用于:在将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器时,将运算次数一并发送给域内令牌验证管理器。
上述方案中,所述域内令牌验证管理器包括:
第二收发单元,用于接收来自域内令牌捕获器的令牌验证信息和验证信息签名结果,所述令牌验证信息为域内令牌;将令牌验证信息输出给第二签名执行单元,将验证信息签名结果输出给第一判别单元;还用于接收令牌适配器发送的令牌请求,并将令牌请求中的域内令牌输出给第二判别单元;还用于将跨域令牌管理器返回的跨域令牌转发给令牌适配器;
第二签名执行单元,用于根据签名算法对输入的信息进行签名,获得验证信息签名结果,并输出给第一判别单元;
第一判别单元,用于判断第二签名执行单元和第二收发单元输入的验证信息签名结果是否一致,如果一致,则确定验证成功,并将令牌验证信息保存到令牌验证信息存储单元;
第二判别单元,用于判断第二收发单元输入的域内令牌与令牌验证信息存储单元中保存的令牌验证信息是否一致,如果一致,则确定验证成功,并向跨域令牌管理器发送令牌请求;
令牌验证信息存储单元,用于保存验证成功的令牌验证信息。
上述方案中,所述第二收发单元进一步用于,在接收到令牌验证信息和验证信息签名结果时,还接收到运算次数,并将运算次数提供给第二签名执行单元;
所述域内令牌验证管理器进一步包括:
第二存储单元,用于保存接收方签名相关信息,所述接收方签名相关信息包括所有的哈希运算结果,所述哈希运算结果是对随机数进行各次哈希运算的结果,所述随机数与域内令牌捕获器中的所述随机数相同;
第二选择单元,用于按照顺序从第二存储单元中选择出一个哈希运算结果,并将选出的结果提供给第二签名执行单元。
上述方案中,所述第二收发单元进一步用于,在接收到令牌验证信息和验证信息签名结果时,还接收到运算次数,并将运算次数提供给第二签名执行单元;
所述域内令牌验证管理器进一步包括:
第二存储单元,用于保存上一次参与签名运算的接收方签名相关信息,所述接收方签名相关信息包括一个哈希运算结果,所述哈希运算结果是对随机数上一次哈希运算的结果,所述随机数与域内令牌捕获器中所述随机数相同;
第二计算单元,用于根据第二存储单元中上一次参与签名运算的接收方签名相关信息计算出当前的接收方签名相关信息,并提供给第二签名执行单元。
上述方案中,所述令牌适配器包括:
第三收发单元,用于将用户终端提交的登录信息转发给认证中心;在获得由认证中心返回的域内令牌时,利用获得的域内令牌向令牌管理子系统发送令牌请求,接收返回的跨域令牌,并将获得的跨域令牌返回给用户终端;还用于将获得域内令牌和跨域令牌对应地保存到第三存储单元;
第三存储单元,用于保存域内令牌和对应的跨域令牌。
上述方案中,
所述令牌适配器进一步包括令牌替换单元,用于将第三收发单元发来的令牌认证请求中的跨域令牌替换为第三存储单元中对应的域内令牌,并将替换后的令牌认证请求通过第三收发单元发送给认证中心;
令牌适配器中的第三收发单元进一步用于:在用户访问域内应用服务时,将接收到的携带有跨域令牌的令牌认证请求发送给替换单元;将替换单元返回的令牌认证请求转发给认证中心;接收认证中心返回的令牌认证响应,并将令牌认证响应提供给用户访问的应用服务。
上述方案中,所述令牌管理子系统进一步用于:在用户终端利用跨域令牌对域外应用服务进行跨域访问时,接收来自域外应用服务的携带有跨域令牌的令牌认证请求,利用事先生成的跨域令牌对令牌认证请求中的跨域令牌进行验证,并将令牌认证响应返回给域外应用服务。
针对本发明第二个发明目的,提出的技术方案是:
一种提供跨域令牌的方法,包括:
令牌适配器201将用户终端提交的登录信息转发给认证中心;
认证中心利用事先设置的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器;
令牌管理子系统捕获认证中心返回给令牌适配器的域内令牌,根据捕获到的域内令牌确定并保存用于验证域内令牌合法性的令牌验证信息;在接收到令牌适配器发送的携带有域内令牌的令牌请求时,利用所述令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌返回给令牌适配器;
令牌适配器将获得的跨域令牌返回给用户终端。
上述方案中,所述令牌管理子系统包括域内令牌捕获器、域内令牌验证管理器和跨域令牌管理器;所述令牌管理子系统捕获认证中心返回给令牌适配器的域内令牌,根据捕获到的域内令牌确定并保存用于验证域内令牌合法性的令牌验证信息的步骤包括:
所述域内令牌捕获器捕获认证中心返回给令牌适配器的域内令牌,利用签名算法对令牌验证信息进行签名,获得验证信息签名结果,并将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器,所述令牌验证信息由捕获到的域内令牌确定;
所述域内令牌验证管理器根据验证信息签名结果对令牌验证信息进行验证,并在验证成功时保存所述令牌验证信息。
上述方案中,所述令牌管理子系统在接收到令牌适配器发送的令牌请求时,利用所述令牌验证信息对令牌请求中的域内令牌进行验证,在验证成功时将生成的跨域令牌返回给令牌适配器的步骤包括:
所述域内令牌验证管理器接收来自令牌适配器的令牌请求,利用保存的令牌验证信息对令牌请求中的域内令牌进行验证,在验证成功时向跨域令牌管理器发送令牌请求;
所述跨域令牌管理器生成跨域令牌,并将生成的跨域令牌返回给域内令牌验证管理器;
域内令牌验证管理器将获得的跨域令牌返回给令牌适配器。
上述方案中,所述域内令牌捕获器利用签名算法对令牌验证信息进行签名,获得验证信息签名结果的步骤包括:
所述域内令牌捕获器将捕获到的令牌作为令牌验证信息,利用签名算法直接对令牌验证信息进行签名运算,将签名运算的结果作为验证信息签名结果。
上述方案中,所述域内令牌验证管理器根据验证信息签名结果对令牌验证信息进行验证的步骤包括:
所述域内令牌验证管理器将接收到的令牌验证信息直接进行签名运算,获得验证信息签名结果;判断计算出的验证信息签名结果与接收到的验证信息签名结果是否一致,如果一致,则确定验证成功,否则,验证失败。
上述方案中,所述域内令牌验证管理器利用所述保存的令牌验证信息对令牌请求中的域内令牌进行验证的步骤包括:
所述域内令牌验证管理器将令牌请求中的域内令牌与保存的令牌验证信息进行比较,如果一致,则确定验证成功;否则,验证失败。
上述方案中,所述域内令牌捕获器利用签名算法对令牌验证信息进行签名,获得验证信息签名结果的方法包括:
将域内令牌作为令牌验证信息,将当前的运算次数、对产生的随机数进行相应运算次数的哈希运算的结果作为发送方签名相关信息,将令牌验证信息和发送方签名相关信息一并进行签名运算,并将签名运算的结果作为验证信息签名结果。
上述方案中,所述域内令牌验证管理器根据验证信息签名结果对令牌验证信息进行验证的方法包括:
所述域内令牌验证管理器将域内令牌捕获器发送来的令牌验证信息、运算次数以及自身提供的对随机数进行哈希运算的结果一并进行签名运算,获得验证信息签名结果;判断计算出的验证信息签名结果与域内令牌捕获器发送来的验证信息签名结果是否一致,如果一致,则确定验证成功;否则,验证失败。
上述方案中,在所述用户终端向认证中心提交登录信息之前,该方法进一步包括:
X1.域内令牌捕获器将产生的随机数和自身ID号进行签名运算,获得发送方随机数签名结果;
X2.域内令牌捕获器利用与域内令牌验证管理器之间的共享密钥和对称加密算法,将发送方随机数签名结果和随机数一并进行加密,获得发送方加密结果,并将发送方加密结果发送给域内令牌验证管理器;
X3.域内令牌验证管理器对发送方加密结果进行解密,获得其中的发送方随机数签名结果、随机数和发送方ID号;
X4.域内令牌验证管理器将发送方ID1和随机数再次进行签名运算,获得发送方随机数签名结果,并判断计算出的发送方随机数签名结果与接收到的发送方随机数签名结果是否相同,如果相同,则继续执行步骤X5;
X5.域内令牌验证管理器将随机数和自身ID号进行签名运算,获得接收方随机数签名结果;
X6.域内令牌验证管理器利用共享密钥和对称加密算法,将接收方随机数签名结果和所述随机数一并进行加密,获得接收方加密结果,并将接收方加密结果发送给域内令牌捕获器;
X7.域内令牌捕获器对接收方加密结果进行解密,获得其中的接收方随机数签名结果、随机数和接收方ID号;
X8.域内令牌捕获器将接收到的接收方ID号和所述随机数再次进行签名运算,获得接收方随机数签名结果,并判断计算出的接收方随机数签名结果与接收到的接收方随机数签名结果是否相同,如果相同,则结束协商过程。
综上所述,通过本发明提出的一种提供跨域令牌的系统和方法,可以不必对原有的认证中心进行大量更改,也不必替换原有的认证中心,而是直接在原有仅支持域内令牌系统的基础上实现向用户终端提供跨域令牌的目的,从而可以充分利用原有仅支持域内令牌的系统,节约了成本。
附图说明
下面将通过参照附图详细描述本发明的示例性实施例,使本领域的普通技术人员更清楚本发明的上述及其它特征和优点,附图中:
图1是现有技术中在一个域内实现单点登录的系统示意图;
图2是本发明向用户提供跨令牌的系统示意图;
图3是系统实施例一中提供跨域令牌的系统结构示意图;
图4是系统实施例一中域内令牌捕获器2031的内部结构示意图;
图5是系统实施例一中域内令牌验证管理器2032的内部结构示意图;
图6是系统实施例一中令牌适配器201的内部结构示意图;
图7是系统实施例二中域内令牌捕获器2031的一个内部结构实例;
图8是系统实施例二中域内令牌验证管理器2032的一个内部结构实例;
图9是系统实施例二中域内令牌捕获器2031的另一个内部结构实例;
图10是系统实施例二中域内令牌验证管理器2032的另一个内部结构实例;
图11是利用本发明实施例方案时两个域组成的系统结构示意图;
图12是本发明提供跨域令牌的方法流程图;
图13是方法实施例一的流程示意图图;
图14是方法实施例二的流程示意图图。
具体实施方式
图2是本发明向用户提供跨令牌的系统示意图。如图2所示,该系统包括:
令牌适配器201,用于将用户终端提交的登录信息转发给认证中心202,在获得了由认证中心202返回的域内令牌时,利用获得的域内令牌向令牌管理子系统203发送令牌请求,接收返回的跨域令牌,并将获得的跨域令牌返回给用户终端204。
认证中心202,用于在接收到令牌适配器201转发的登录信息时,利用设定的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器201。
令牌管理子系统203,用于捕获认证中心202返回给令牌适配器201的域内令牌,根据捕获到的域内令牌确定用于验证域内令牌合法性的令牌验证信息;还用于接收令牌适配器201发送的令牌请求,利用所述令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌返回给令牌适配器201。
也就是说,在用户终端访问应用服务之前,用户终端通过令牌适配器201向认证中心202提交登录信息;认证中心202在接收到令牌适配器转发的登录信息时,利用设定的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器201;在认证中心202将域内令牌返回给令牌适配器201时,令牌管理子系统203捕获该域内令牌,并根据捕获到的域内令牌确定用于验证域内令牌合法性的令牌验证信息;此后,在接收到令牌适配器201发送的令牌请求时,令牌管理子系统203就可以利用所述令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌返回给令牌适配器201;令牌适配器201再将获得的跨域令牌返回给用户终端。
这样,由于本发明在原有系统的基础上增加了令牌适配器201和令牌管理子系统203,不必对原有的认证中心进行大量更改,也不必替换原有的认证中心,就可以实现向用户终端提供跨域令牌。
本发明中,由于域内令牌由认证中心202生成,而跨域令牌由令牌管理子系统203生成,为了保证跨域令牌所对应的域内令牌是合法的,或者说,可以用可靠的方法来验证域内令牌的合法性,应该保证认证中心202和令牌管理子系统203之间的信任关系。所谓信任关系是指令牌管理子系统203可以确认接收到的域内令牌确实是由认证中心202生成,而没有被破坏或者由其它实体非法生成。
实际应用中,某些情况可以保证认证中心202和令牌管理子系统203之间存在比较高的信任关系。比如:令牌管理子系统203与认证中心202位于同一个物理实体中;或者,令牌管理子系统203与认证中心202分布在不同的物理实体中,但实体之间的物理位置很近,也同样存在比较高的信任关系。当然,如果认证中心202和令牌管理子系统203分布在不同的物理实体中,但实体之间的物理位置较远或由于其它因素,就需要在其之间建立信任关系。至于如何建立信任关系,将在以下的实施例进行详细描述,此处不再赘述。
为了更好地说明本发明方案,下面用实施例进行详细说明。
系统实施例一
图3是本实施例的系统结构示意图。如图3所示,本实施例包括令牌适配器201、认证中心202、令牌管理子系统203和用户终端204。其中,令牌管理子系统203从逻辑上划分为域内令牌捕获器2031、域内令牌验证管理器2032和跨域令牌管理器2033。域内令牌捕获器2031与认证中心202位于同一个物理实体,域内令牌验证管理器2032和跨域令牌管理器2033位于另一个物理实体中。
如图3所示,令牌管理子系统203包括:
域内令牌捕获器2031,用于捕获认证中心202返回给令牌适配器201的域内令牌;利用签名算法对令牌验证信息进行签名,获得验证信息签名结果,所述令牌验证信息由捕获到的域内令牌确定;将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器2032。
域内令牌验证管理器2032,用于根据验证信息签名结果对令牌验证信息进行验证,并在验证成功时保存所述令牌验证信息;还用于在接收到令牌适配器201发送的令牌请求时,利用保存的令牌验证信息对令牌请求中携带的域内令牌进行验证,并在验证成功时向跨域令牌管理器2033发送令牌请求,将跨域令牌管理器2033返回的跨域令牌转发给令牌适配器201。
跨域令牌管理器2033,用于在接收到域内令牌验证管理器2032发送的令牌请求时,生成跨域令牌,并将生成的跨域令牌返回给域内令牌验证管理器2032。
上述的域内令牌捕获器2031、域内令牌验证管理器2032、跨域令牌管理器2033仅仅是对令牌管理子系统203进行逻辑划分的结构,实际应用中也可以不按此进行划分,只要能够实现令牌管理子系统203的功能即可。
本实施例中,由于认证中心202和域内令牌捕获器2031位于同一个物理实体,生成的域内令牌可以从内部传送,具备较高的信任关系。比如,可以将认证中心202所在物理实体的网卡等装置设置为嗅探(sniffer)模式,捕获认证中心202发送出去的所有数据包,并从中获取域内令牌,从而实现域内令牌捕获器2031对域内令牌的捕获。
本实施例中,域内令牌验证管理器2032和跨域令牌管理器2033位于一个物理实体中,也同样具备较高的信任关系。
本实施例中,域内令牌捕获器2031和域内令牌验证管理器2032分别位于两个物理实体,可以通过签名的方式来保证信任关系。具体地说,域内令牌捕获器2031捕获到域内令牌后,由域内令牌确定令牌验证信息,将令牌验证信息利用哈希算法等方法进行签名,获得验证信息签名结果,再将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器2032。相应地,域内令牌验证管理器2032接收到令牌验证信息和验证信息签名结果后,可以将接收到的令牌验证信息先进行签名运算,运算时所使用的签名算法与域内令牌捕获器2031所使用的签名算法相同,再将计算结果与接收到的验证信息签名结果进行比较,如果一致,则可以验证该域内令牌的合法性,并将通过验证的令牌验证信息保存下来。
这里,所述的令牌验证信息可以是捕获到的域内令牌本身,也可以是域内令牌的签名,其可以由应用本实施例方案的用户自行确定。如果令牌验证信息是捕获到的域内令牌本身,当域内令牌验证管理器2032需要验证由令牌适配器201发送的令牌请求中的域内令牌时,就可以将事先获得的令牌验证信息与令牌请求中的域内令牌进行比较,如果一致,则验证成功;否则,验证失败。如果令牌验证信息是域内令牌的签名,当域内令牌验证管理器2032需要验证由令牌适配器201发送的令牌请求中的域内令牌时,就可以先将令牌请求中的域内令牌进行签名运算,再将计算结果与事先获得的令牌验证信息进行比较,如果一致,则验证成功;否则,验证失败。
按照上述的方式,域内令牌验证管理器2032可以获得令牌验证信息和验证信息签名结果,并保存验证成功的令牌验证信息。实际应用中,为了更加可靠地传送上述信息,还可以在域内令牌捕获器2031和域内令牌验证管理器2032之间采用如PKI之类的非对称加密算法,至于如何实施,则属于现有技术,此处不再赘述。
另外,实际应用中,域内令牌捕获器2031和域内令牌验证管理器2032之间可以采用消息的方式传送上述信息。比如,域内令牌捕获器2031将令牌验证信息和验证信息签名结果作为消息内容,与消息头一起组合为一条消息,再将其发送给域内令牌验证管理器2032。
本实施例中,当令牌适配器201从认证中心202接收到返回的域内令牌时,将携带有域内令牌的令牌请求发送给域内令牌验证管理器2032,域内令牌验证管理器2032按照上述方法对令牌请求中的域内令牌进行验证后,向跨域令牌管理器2033请求跨域令牌,并将跨域令牌返回给令牌适配器201,令牌适配器201再将跨域令牌返回给用户终端204,从而实现向用户终端204提供跨域令牌的目的。
实际应用中,域内令牌捕获器2031的内部结构可以如图4所示,包括:
捕获单元2031a,用于捕获认证中心202返回给令牌适配器201的域内令牌,将捕获到的域内令牌作为令牌验证信息输出给第一签名执行单元2031b。
第一签名执行单元2031b,用于利用签名算法对输入的信息进行签名,获得验证信息签名结果,并将令牌验证信息和获得的验证信息签名结果输出给第一收发单元2031c。
第一收发单元2031c,将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器2032。
相应地,域内令牌验证管理器2032的内部结构示意图可以如图5所示,包括:
第二收发单元2032a,用于接收来自域内令牌捕获器2031的令牌验证信息和验证信息签名结果,所述令牌验证信息为域内令牌;将令牌验证信息输出给第二签名执行单元2032b,将验证信息签名结果输出给第一判别单元2032c;还用于接收令牌适配器201发送的令牌请求,并将令牌请求中的域内令牌输出给第二判别单元2032d;还用于将跨域令牌管理器2033返回的跨域令牌转发给令牌适配器201。
第二签名执行单元2032b,用于根据签名算法对输入的信息进行签名,获得验证信息签名结果,并输出给第一判别单元2032c。
第一判别单元2032c,用于判断第二签名执行单元2032b和第二收发单元2032a输入的验证信息签名结果是否一致,如果一致,则确定验证成功,并将令牌验证信息保存到令牌验证信息存储单元2032e。
第二判别单元2032d,用于判断第二收发单元2032a输入的域内令牌与令牌验证信息存储单元2032e中保存的令牌验证信息是否一致,如果一致,则确定验证成功,并向跨域令牌管理器2033发送令牌请求。
令牌验证信息存储单元2032e,用于保存验证成功的令牌验证信息。
本实施例中,令牌适配器201的内部结构示意图可以如图6所示,包括:
第三收发单元2011,用于将用户终端204提交的登录信息转发给认证中心202;在获得了由认证中心202返回的域内令牌时,利用获得的域内令牌向令牌管理子系统203发送令牌请求,接收返回的跨域令牌,并将获得的跨域令牌返回给用户终端204;还用于将获得域内令牌和跨域令牌对应地保存到第三存储单元2012。
第三存储单元2012,用于保存域内令牌和对应的跨域令牌。
实际应用中,当用户终端204获得返回的跨域令牌之后,可以利用获得的跨域令牌访问域内的应用服务和域外的应用服务。由于本实施例是在仅支持域内令牌的系统基础上实现的,认证中心202只能识别域内令牌,域内的应用服务也只能支持域内令牌。在这种情况下,为了保证用户终端204对域内应用服务的访问,在令牌适配器201接收到携带有跨域令牌的令牌认证请求时,需要将跨域令牌替换为对应的域内令牌,再将令牌认证请求发送给认证中心202进行认证。也就是说,本实施例中的令牌适配器201还可以进一步包括:
令牌替换单元2013,用于将第三收发单元2011发来的令牌认证请求中的跨域令牌替换为第三存储单元2012中对应的域内令牌,并将替换后的令牌认证请求通过第三收发单元2011发送给认证中心202。
令牌适配器201中的第三收发单元2011进一步用于:在用户访问域内应用服务时,将接收到的携带有跨域令牌的令牌认证请求发送给令牌替换单元2013;将令牌替换单元2013返回的令牌认证请求转发给认证中心202;接收认证中心202返回的令牌认证响应,并将令牌认证响应提供给用户访问的应用服务。
应用本实施例方案,可以在域内令牌捕获器2031和域内令牌验证管理器2032之间建立信任关系,利用令牌验证信息来鉴别令牌请求中域内令牌的合法性,并在验证通过时,由跨域令牌管理器2033生成跨域令牌,从而在不改变原有的认证中心202功能的情况下,实现向用户终端204提供跨域令牌的目的。
系统实施例二
本实施例的系统结构示意图与图3相同,包括令牌适配器201、认证中心202、令牌管理子系统203和用户终端204。其中,令牌管理子系统203从逻辑上也划分为域内令牌捕获器2031、域内令牌验证管理器2032和跨域令牌管理器2033。域内令牌捕获器2031与认证中心202位于同一个物理实体,域内令牌验证管理器2032和跨域令牌管理器2033位于另一个物理实体中。
与系统实施例一不同的是,本实施例中的域内令牌捕获器2031和域内令牌验证管理器2032分属的物理实体比较远,需要更加严格的签名验证方法。
下面先对本实施例中域内令牌捕获器2031和域内令牌验证管理器2032之间的签名验证方法进行简单介绍:
假设域内令牌捕获器2031和域内令牌验证管理器2032共享同一个随机数R,并且可以独立地提供对随机数R的各次哈希运算的结果。本实施例中,假设n表示运算次数,H(1)(R)表示对随机数R进行1次哈希运算,H(2)(R)表示对随机数R进行2次哈希运算,...,H(n)(R)表示对随机数R进行n次哈希运算,并依此类推。
一方面,域内令牌捕获器2031每次在对令牌验证信息进行签名时,也将上述运算次数n、对随机数R进行第n次哈希运算的结果H(n)(R)作为发送方签名相关信息一并进行签名,获得验证信息签名结果,并将令牌验证信息、运算次数n和验证信息签名结果发送给域内令牌验证管理器2032。
另一方面,域内令牌验证管理器2032利用接收到的令牌验证信息、运算次数n和自身提供的对随机数R进行哈希运算的结果H(n)(R)一并进行签名,获得验证信息签名结果,并将计算出的验证信息签名结果和从域内令牌捕获器2031接收到的验证信息签名结果进行比较,如果一致,则可以确定验证成功。
按照上述的方法,域内令牌捕获器2031每次在对令牌验证信息进行签名时,参与签名的发送方签名相关信息都不相同,并且每次仅将一部分发送方签名相关信息发送给域内令牌验证管理器2032。这样,即使非法用户截获到令牌验证信息和验证信息签名结果,也很难确定域内令牌以及签名方法等信息,从而使域内令牌捕获器2031和域内令牌验证管理器2032之间的信任关系更加可靠。
按照上述方法,本实施例中的域内令牌捕获器2031的内部结构示意图可以如图7所示,包括:捕获单元2031a、第一签名执行单元2031b、第一收发单元2031c、第一存储单元2031d、第一选择单元2031e。其中,捕获单元2031a、第一签名执行单元2031b、第一收发单元2031c的功能与系统实施例一中图4所示的相应部分相同,此处不再赘述。不同的是,本实施例的域内令牌捕获器2031还包括第一存储单元2031d和第一选择单元2031e。其中,
第一存储单元2031d,用于保存发送方签名相关信息,所述发送方签名相关信息包括所有运算次数以及所有的哈希运算结果,所述运算次数与哈希运算结果一一对应,每一个哈希运算结果是对产生的随机数进行相应运算次数的哈希运算的结果。
第一选择单元2031e,用于按照顺序从第一存储单元2031d中选择出一个运算次数和对应的哈希运算结果,并将选出的结果提供给第一签名执行单元2031b。
第一收发单元2031c还用于:在将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器2032时,将第一签名执行单元2031b提供的运算次数一并发送给域内令牌验证管理器2032。
也就是说,在第一签名执行单元2031b进行签名时,不但需要对捕获单元2031a捕获到的域内令牌进行签名,还需要对选择单元2041e选出的运算次数和对应的哈希运算结果一并进行签名。
实际应用中,第一存储单元2031d可以将所有的运算次数,以及对随机数进行各次哈希运算的所有结果对应地保存,即保存<1,H(1)(R)>、<2,H(2)(R)>......。第一选择单元2031e可以按照从低到高的顺序依次选择运算次数以及对应的哈希运算结果。比如,在对作为令牌验证信息的域内令牌tokenl进行签名时,第一选择单元2031e可以选择<1,H(1)(R)>作为发送方签名相关信息;第一签名执行单元2031b对token1‖1‖H(1)(R)一并进行签名,获得验证信息签名结果MAC1=H(token1‖1‖H(1)(R)),其中符号“‖”表示将token1、1、H(1)(R)串连为一个序列。在对token2进行签名时,第一选择单元2031e可以选择<2,H(2)(R)>作为发送方签名相关信息;第一签名执行单元2031b对token2‖2‖H(2)(R)一并进行签名,获得验证信息签名结果MAC2=H(token2‖2‖H(2)(R));并依此类推。
相应地,本实施例中的域内令牌验证管理器2032的内部结构示意图如图8所示,包括:
第二收发单元2032a、第二签名执行单元2032b、第一判别单元2032c、第二判别单元2032d、令牌验证信息存储单元2032e、第二存储单元2032f、第二选择单元2032g。其中,第二收发单元2032a、第二签名执行单元2032b、第一判别单元2032c、第二判别单元2032d、令牌验证信息存储单元2032e的功能与系统实施例一中图5的相应部分相同,此处不再赘述。与系统实施例一不同之处在于,本实施例还包括第二存储单元2032f和第二选择单元2032g。
第二存储单元2032f,用于保存接收方签名相关信息,所述接收方签名相关信息包括所有的哈希运算结果,所述哈希运算结果是对随机数进行各次哈希运算的结果,所述随机数与域内令牌捕获器中的所述随机数相同。
第二选择单元2032g,用于按照顺序从第二存储单元2032f中选择出一个哈希运算结果,并将选出的结果提供给第二签名执行单元2032b。
另外,第二收发单元2032a还需要在接收到令牌验证信息和验证信息签名结果时,将接收到的运算次数提供给第二签名执行单元2032b。
也就是说,在第二签名执行单元2032b进行签名时,需要对接收到的令牌验证信息、运算次数,以及第二选择单元2032g选择出的接收方签名相关信息一并进行签名。
实际应用中,与第一存储单元2031d类似,这里的第二存储单元2032f可以将所有的运算次数,以及对随机数进行相应运算次数的哈希运算结果对应地保存,即保存<1,H(1)(R)>、<2,H(2)(R)>......。与第一选择单元203le类似,这里的第二选择单元2032g也可以按照从低到高的顺序依次选择与运算次数对应的哈希运算结果。
上述的图7和图8是保存预先计算出的对随机数进行各次哈希运算的所有结果,此后再从中选出一个参与签名运算。实际应用中,也可以仅保存上次采用的运算次数和对应的哈希运算结果。这样,如果当前需要利用运算次数和对应的哈希运算结果一并进行签名时,可以将上次保存的运算次数加1,并在上次保存的哈希运算结果的基础上再次进行哈希运算,即可获得当前的运算次数和相应的哈希运算结果。比如:上一次捕获的域内令牌为token4,签名后保存的哈希运算结果为H(4)(R)。如果当前需要对token5进行签名,只需要将H(4)(R)再次进行哈希运算就可以获得H(5)(R),之后再利用H(5)(R)和运算次数5参与对token5的签名。
在这种情况下,本实施例中的域内令牌捕获器2031的内部结构示意图可以如图9所示,其中,捕获单元2031a、第一签名执行单元2031b、第一收发单元2031c的功能与系统实施例一中图4的相应部分相同,此处不再赘述。其区别在于,本实施例中的第一存储单元2031d仅保存上次参与签名的发送方签名相关信息,即上次的运算次数和对应的一个哈希运算结果,所述哈希运算结果是对随机数进行相应运算次数的哈希运算结果。另外,本实施例中还包括第一计算单元2031f。
第一计算单元2031f,用于根据第一存储单元中上一次参与签名运算的发送方签名相关信息计算出当前的发送方签名相关信息,并提供给第一签名执行单元2031b。
也就是说,在第一签名执行单元2031b进行签名时,由第一签名执行单元2031b对捕获单元2031a捕获到域内令牌和第一计算单元2031f计算出的当前的发送方签名相关信息一并进行签名。
相应地,本实施例中的域内令牌验证管理器2032的内部结构示意图还可以如图10所示,包括:第二收发单元2032a、第二签名执行单元2032b、第一判别单元2032c、第二判别单元2032d、令牌验证信息存储单元2032e、第二存储单元2032f、第二计算单元2042h。其中,第二收发单元2032a、第二签名执行单元2032b、第一判别单元2032c、第二判别单元2032d、令牌验证信息存储单元2032e的功能与图8中的相应部分相同,此处不再赘述。其区别在于:
第二存储单元2032f,用于保存上一次参与签名运算的接收方签名相关信息,所述接收方签名相关信息包括一个哈希运算结果,所述哈希运算结果是对随机数进行上一次哈希运算的结果,所述随机数与域内令牌捕获器中的所述随机数相同。
第二计算单元2042h,用于根据第二存储单元2032f中上一次参与签名运算的接收方签名相关信息计算出当前的接收方签名相关信息,并提供给第二签名执行单元2032b。
也就是说,在第二签名执行单元2032b进行签名时,不但需要对第二收发单元2032a接收到的令牌验证信息、运算次数签名,还需要对第二计算单元2042h计算出的当前接收方签名相关信息一并进行签名。
系统实施例二是假设域内令牌捕获器2031和域内令牌验证管理器2032共享同一个随机数R,并且可以独立地提供对随机数R的各次哈希运算的结果。也就是说,可以预先产生一个随机数R,并将产生的随机数R设置在域内令牌捕获器2031和域内令牌验证管理器2032中。或者,也可以由域内令牌捕获器2031或域内令牌验证管理器2032自身产生一个随机数R,并将产生的随机数R传送给对方。至于如何安全地将随机数R传输给对方,将在下面的方法实施例中进行详细描述,此处不再赘述。另外,域内令牌捕获器2031和域内令牌验证管理器2032还需要具有相同的哈希运算方法,否则域内令牌验证管理器2032无法对来自域内令牌捕获器2031的令牌验证信息正确地进行验证。
另外,为了描述方便,本发明中的系统实施例是假设将域内令牌作为令牌验证信息,而实际应用中,也可以将域内令牌的签名作为令牌验证信息,其实现方式类似,此处不再赘述。
上述系统实施例一和系统实施例二描述了在仅支持域内令牌系统的基础上,增加了令牌适配器和令牌管理子系统,从而实现向用户终端提供跨域令牌的实施方案。实际应用中,某个企业或机构组成的系统不但需要向用户终端提供跨域令牌,还需要向用户终端提供应用服务。当用户获得提供的跨域令牌之后,可再利用跨域令牌访问应用服务。下面以联邦单点登录技术为例,对本发明实施例提出的提供跨域令牌的系统的应用情况进行简单描述:
图11是利用本发明实施例方案时两个域组成的系统结构示意图。如图11所示,假设域A属于企业A,是基于仅支持域内令牌系统上构成的新的系统;域B属于企业B,是可支持联邦单点登录技术的系统,与现有技术中的相同。其中,
域A包括令牌适配器201、认证中心202、令牌管理子系统203和用户终端204、,还包括提供应用服务的设备205、门户206、认证代理207。其中,令牌适配器201、认证中心202和令牌管理子系统203可以组成本发明所述的提供跨域令牌的系统,而用户终端204、提供应用服务的设备205、门户206和认证代理207与现有技术中的功能相同,此处不再赘述。
另外,域A的令牌管理子系统203包括域内令牌捕获器2031、域内令牌验证管理器2032、跨域令牌管理器2033,其中,认证中心202和域内令牌捕获器2031位于同一个物理实体,域内令牌验证管理器2032和跨域令牌管理器2033位于另一个物理实体中。图11中,还可以假设需要在域内令牌捕获器2031和域内令牌验证管理器2032之间建立信任关系。由于域内令牌捕获器2031和域内令牌验证管理器2032可以充当在认证中心202以及跨域令牌管理器2033之间传递信任关系的桥梁,所以,域内令牌捕获器2031和域内令牌验证管理器2032也可以称为信任代理。图11中,假设跨域令牌管理器2033不但可以生成跨域令牌,还可以接收来自域外的认证请求,并对其中的跨域令牌进行认证,其作用相当于域B的联邦服务器,所以,也可以将图11中的跨域令牌管理器2033称为虚拟联邦服务器。
域B包括联邦服务器208、认证中心209、认证代理210、提供应用服务的设备211。其中,认证中心209、认证代理210、提供应用服务的设备211的功能与域A中的功能相似,只是支持的是跨域令牌。联邦服务器208可以对来自其它域生成的跨域令牌进行认证,并在不能认证的情况下,将跨域令牌发送给生成该跨域令牌的域进行认证。
也就是说,域A中的用户终端204可以通过提供应用服务的设备205或门户206将登录信息发送给令牌适配器201;令牌适配器201将登录信息透传给认证代理207;认证代理207将登录信息转发给认证中心202;认证中心202利用预设的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给认证代理207。一方面,在认证中心202将域内令牌返回给认证代理207时,域内令牌捕获器2031捕获到该域内令牌,并利用签名算法对由域内令牌确定的令牌验证信息进行签名,获得验证信息签名结果;域内令牌捕获器2031再将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器2032;域内令牌验证管理器2032根据验证信息签名结果对令牌验证信息进行验证,并在验证成功时保存所述令牌验证信息。另一方面,令牌适配器201从认证代理207处截获到返回的域内令牌,向域内令牌验证管理器2032发送携带有域内令牌的令牌请求;域内令牌验证管理器2032利用保存的令牌验证信息对令牌请求中携带的域内令牌进行验证,并在验证成功时向跨域令牌管理器2033发送令牌请求;跨域令牌管理器2033将生成的跨域令牌返回给域内令牌验证管理器2032;域内令牌验证管理器2032将跨域令牌返回给令牌适配器201;令牌适配器201保存跨域令牌和对应的域内令牌,并将跨域令牌返回给用户终端204。
此后,当用户终端204利用跨域令牌访问域A内的应用服务时,提供应用服务的设备205将携带有跨域令牌的令牌认证请求发送给令牌适配器201;令牌适配器201将令牌认证请求中的跨域令牌替换为对应的域内令牌,再将令牌认证请求通过认证代理207传送给认证中心202;认证中心202利用事先生成的域内令牌对令牌认证请求中的域内令牌进行验证,并向认证代理207返回令牌认证响应;令牌适配器201从认证代理207处获得令牌认证响应,将令牌认证响应返回给提供应用服务的设备205;提供应用服务的设备205根据返回的令牌认证响应允许或拒绝用户的访问。
当用户终端204利用跨域令牌访问域B的应用服务时,提供应用服务的设备211将携带有跨域令牌的令牌认证请求发送给认证代理210;认证代理210判断出该令牌认证请求来自域外,将令牌认证请求转发给联邦服务器208。如果联邦服务器208自身能够对跨域令牌进行认证,则直接对跨域令牌进行认证,并通过认证代理210向提供应用服务的设备211返回令牌认证响应;提供应用服务的设备211根据令牌认证响应允许或拒绝用户的访问。如果联邦服务器208自身不能对跨域令牌进行认证,则将令牌认证请求发送给域A的跨域令牌管理器2033;跨域令牌管理器2033利用事先生成的跨域令牌对令牌认证请求中的跨域令牌进行认证,并向联邦服务器208返回令牌认证响应;联邦服务器208通过认证代理210向提供应用服务的设备211返回该令牌认证响应;提供应用服务的设备211根据返回的令牌认证响应允许或拒绝用户的访问。
这里,由于跨域令牌中通常包括域标识等信息,认证代理210通过域标识等信息就可以识别出接收到的跨域令牌是来自自身所在的域,还是其它域。另外,如果联邦服务器208和跨域令牌管理器2033之间支持如公钥基础设施(PKI)的非对称密钥算法,联邦服务器208就可以直接对跨域令牌进行认证,至于如何认证则属于现有技术,此处不再赘述。
针对上述系统,本发明还提供一种提供跨域令牌的方法。相应于图2中本发明实施时的系统结构图,图12为本发明提供跨域令牌的方法流程示意图。如图12所示,该方法包括:
步骤1201:令牌适配器201将用户终端提交的登录信息转发给认证中心202。
实际应用中,用户终端可以通过应用服务或门户,并通过认证代理等向认证中心提交登录信息,所述的登录信息可以为用户名、口令等信息。当然,具体的登录信息可以由应用本发明方案的用户确定,此处不再赘述。
步骤1202:认证中心202利用设定的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器201。
这里所述的用户鉴权方法可以与现有技术的方法相同。比如:预先保存合法用户的用户名和对应的口令,当接收到包括用户名和口令的登录信息时,认证中心202判断自身是否存在接收到的登录信息,如果存在,则确认验证成功;否则,验证失败。
步骤1203:令牌管理子系统203捕获认证中心202返回给令牌适配器201的域内令牌,根据捕获到的域内令牌确定并保存用于验证域内令牌合法性的令牌验证信息。
这里所述的令牌管理子系统203就是图2中的令牌管理子系统203,可以实现对域内令牌的捕获,至于如何实现可以参见上述的系统部分,此处不再赘述。
另外,这里的令牌验证信息是可以验证域内令牌合法性的信息,比如域内令牌本身,或者域内令牌的签名。如果令牌验证信息为域内令牌,那么在后续步骤1205需要对接收到的域内令牌进行验证时,就可以直接将接收到的域内令牌与令牌验证信息进行比较,如果一致,则确定验证成功;否则,验证失败。如果令牌验证信息为域内令牌的签名,那么在后续步骤1205需要对接收到的域内令牌进行验证时,就可以先将接收到的域内令牌进行签名运算,将计算出的结果与令牌验证信息进行比较,如果一致,则确定验证成功;否则,验证失败。
步骤1204:令牌适配器201利用获得的域内令牌向令牌管理子系统203发送令牌请求。
步骤1205:令牌管理子系统203在接收到令牌适配器发送的令牌请求时,利用令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌返回给令牌适配器201。
步骤1206:令牌适配器201将获得的跨域令牌返回给用户终端。
参见图2所示,由于本发明在原有系统的基础上增加了令牌适配器201和令牌管理子系统203,不必对原有的认证中心进行大量更改,也不必替换原有的认证中心,就可以按照上述方法实现向用户终端提供跨域令牌。
为了更好地描述本发明方案,下面用方法实施例进行详细说明。
方法实施例一
本方法实施例对应的系统结构示意图可以参见图3,具体情况此处不再赘述。图13是本方法实施例的流程示意图,如图13所示,本方法实施例包括:
步骤1301~1302:用户终端204通过令牌适配器201向认证中心202提交登录信息。
步骤1303~1304:认证中心202利用设定的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器201。
步骤1305~1307:域内令牌捕获器2031捕获认证中心202返回给令牌适配器201的域内令牌,利用签名算法对令牌验证信息进行签名,获得验证信息签名结果,并将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器2032,所述令牌验证信息由捕获到的域内令牌确定。
本步骤中,所述令牌验证信息可以为域内令牌本身,也可以为域内令牌的签名。
如果令牌验证信息为域内令牌token,域内令牌捕获器2031就可以直接将域内令牌token进行签名,比如利用哈希运算对域内令牌token进行签名,获得验证信息签名结果MAC=H(token)。之后,域内令牌捕获器2031再将域内令牌token和验证信息签名结果MAC一并发送给域内令牌验证管理器2032。
如果令牌验证信息为域内令牌的签名,比如是直接利用哈希运算对token的签名MAC=H(token),域内令牌捕获器2031还可以对该令牌验证信息进行签名,获得验证信息签名结果H(MAC)。之后,域内令牌捕获器2031再将域内令牌的签名MAC和验证信息签名结果H(MAC)一并发送给域内令牌验证管理器2032。这里的域内令牌的签名是指对域内令牌直接进行签名的结果,实际应用中,还可以将域内令牌与其它信息一并进行签名。
步骤1308:域内令牌验证管理器2032根据验证信息签名结果对令牌验证信息进行验证,并在验证成功时保存令牌验证信息。
本步骤的具体验证方法与步骤1303中的签名方法对应。比如:令牌验证信息为域内令牌token,域内令牌验证管理器2032接收到域内令牌token和验证信息签名结果MAC=H(token)时,可以将接收到的域内令牌token再次进行签名运算,获得MAC′,比较计算出的MAC′与接收到的MAC是否一致,如果一致,则确定验证成功,并保存作为令牌验证信息的域内令牌token。
再比如:令牌验证信息为域内令牌的签名,域内令牌验证管理器2032接收到域内令牌的签名MAC和验证信息签名结果H(MAC),可以将接收到的域内令牌的签名MAC再次进行签名运算,获得H′(MAC),比较计算出的H′(MAC)与接收到的H(MAC)是否一致,如果一致,则确定验证成功,并保存作为令牌验证信息的域内令牌的签名MAC=H(token)。
步骤1309~1311:域内令牌验证管理器2032接收来自令牌适配器201的令牌请求,利用保存的令牌验证信息对令牌请求中的域内令牌进行验证,在验证成功时向跨域令牌管理器2033发送令牌请求。
本步骤中,域内令牌验证管理器2032对令牌请求中的域内令牌进行验证的方法也与令牌验证信息的类型相关。如果保存的令牌验证信息为域内令牌,则可以直接将令牌请求中的域内令牌和保存的域内令牌进行比较,如果一致,则确定验证成功;否则,验证失败。
当然,如果保存的令牌验证信息为域内令牌的签名,则可以先将令牌请求中的域内令牌进行签名,比较计算出的签名结果与保存的域内令牌的签名是否一致,如果一致,则确定验证成功;否则,验证失败。
步骤1312~1313:跨域令牌管理器2042生成跨域令牌,并将生成的跨域令牌返回给域内令牌验证管理器2032。
这里,跨域令牌管理器2042在生成跨域令牌时可以使用现有技术中已有的生成跨域令牌的方法,对此不再赘述。
步骤1314~1315:域内令牌验证管理器2032将跨域令牌返回给令牌适配器201,令牌适配器201再将跨域令牌返回给用户终端204。
应用本方法实施例,在域内令牌捕获器2031和域内令牌验证管理器2032之间建立信任关系,利用令牌验证信息来鉴别令牌请求中域内令牌的合法性,并在验证通过时,由跨域令牌管理器2033生成的跨域令牌,从而在不改变原有的认证中心202功能的情况下,也可以实现向用户终端204提供跨域令牌的目的。
方法实施例二
本方法实施例对应的系统结构也可以参见图3,包括用户终端204、令牌适配器201、认证中心202和令牌管理子系统203。其中,令牌管理子系统203从逻辑上划分为域内令牌捕获器2031、域内令牌验证管理器2032和跨域令牌管理器2033。域内令牌捕获器2031与认证中心202位于同一个物理实体,域内令牌验证管理器2032和跨域令牌管理器2033位于另一个物理实体中。另外,假设本实施例中的域内令牌捕获器2031和域内令牌验证管理器2032分属的物理实体比较远,需要更加严格的签名验证方法。
另外,本方法实施例假设域内令牌捕获器2031和域内令牌验证管理器2032共享同一个随机数R,并且可以独立地提供对随机数R的各次哈希运算结果。
图14是本方法实施例的流程图。如图14所示,该方法包括:
步骤1401~1402:用户终端204通过令牌适配器201向认证中心202提交登录信息。
本步骤与步骤1301~1302相同,此处不再赘述。
步骤1403~1404:认证中心202利用设定的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器201。
本步骤与步骤1303~1304相同,此处不再赘述。
步骤1405~1406:域内令牌捕获器2031捕获认证中心202返回给令牌适配器201的域内令牌,将域内令牌作为令牌验证信息,将运算次数、对产生的随机数进行相应运算次数的哈希运算的结果作为发送方签名相关信息,将令牌验证信息和发送方签名相关信息一并进行签名运算,获得验证信息签名结果。
这里,所述运算次数、对产生的随机数进行相应运算次数的哈希运算的结果可以事先对应地保存在域内令牌捕获器2031中。在需要签名时,可以直接按照从低到高的顺序依次选择运算次数以及对应的哈希运算结果。或者,也可以仅保存上一次参与签名运算的发送方签名相关信息,在需要签名时,再根据上一次参与签名运算的发送方签名相关信息计算出当前的发送方签名相关信息,即步骤1405需要的运算次数以及对产生的随机数进行相应运算次数的哈希运算结果。步骤1405的具体处理可以参见上述系统实施例对图7的描述,此处不再赘述。
步骤1407:域内令牌捕获器2031将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器2032。
步骤1408~1409:域内令牌验证管理器2032将域内令牌捕获器2031发送来的令牌验证信息、运算次数以及自身提供的对随机数进行哈希运算的结果一并进行签名运算,获得验证信息签名结果,判断计算出的验证信息签名结果与域内令牌捕获器发送来的验证信息签名结果是否一致,如果一致,则确定验证成功,并保存验证成功的令牌验证信息。
这里,域内令牌验证管理器2032也可以将所有的运算次数,以及对随机数进行各次哈希运算的结果对应地保存,即保存<1,H(1)(R)>、<2,H(2)(R)>、...。在需要签名时,直接按照从低到高的顺序依次选择与运算次数对应的哈希运算结果。或者,域内令牌验证管理器2041仅保存上一次参与签名运算的接收方签名相关信息,在需要签名时,根据上一次参与签名运算的接收方签名相关信息计算出当前的接收方签名相关信息,即步骤1408中所需要的接收方签名相关信息。步骤1408的具体处理可以参见系统实施例二对图8的描述,此处不再赘述。
另外,本实施例是将域内令牌、运算次数、对产生的随机数进行相应运算次数的哈希运算的结果一并进行签名运算,实际应用中还可以将其它信息一并进行签名运算,比如域内令牌捕获器2031的ID号等。
步骤1410~1412:域内令牌验证管理器2032接收来自令牌适配器201的令牌请求,利用保存的令牌验证信息对令牌请求中的域内令牌进行验证,在验证成功时向跨域令牌管理器2033发送令牌请求。
这里,步骤1410~1412与方法实施例一中的步骤1309~1311相同,此处不再赘述。
步骤1413~1414:跨域令牌管理器2042生成跨域令牌,并将生成的跨域令牌返回给域内令牌验证管理器2032。
这里,步骤1413~1414与方法实施例一中的步骤1312~1313相同,此处不再赘述。
步骤1415~1416:域内令牌验证管理器2032将跨域令牌返回给令牌适配器201,令牌适配器201再将跨域令牌返回给用户终端204。
这里,步骤1415~1416与方法实施例一中的步骤1314~1315相同,此处不再赘述。
本实施例是假设域内令牌捕获器2031和域内令牌验证管理器2032共享同一个随机数R,该随机数R可以由域内令牌捕获器2031产生,并将产生的随机数R传送给域内令牌验证管理器2032。实际应用中,还可以预先在域内令牌捕获器2031和域内令牌验证管理器2032中设置一个共享密钥k,并支持对称加密算法。另外,还可以为域内令牌捕获器2031设置标识ID1,为域内令牌验证管理器2032设置标识ID2。
这样,域内令牌捕获器2031和域内令牌验证管理器2032之间协商共享随机数R的过程可以为:
步骤X1:域内令牌捕获器2031将产生的随机数R和ID1进行签名运算,获得发送方随机数签名结果MAC1=H(ID1‖R)。
步骤X2:域内令牌捕获器2031利用共享密钥k和对称加密算法,将发送方随机数签名结果MAC1和随机数R一并进行加密,获得发送方加密结果Ek(ID1‖R‖MAC1),并将发送方加密结果Ek(ID1‖R‖MAC1)发送给域内令牌验证管理器2032。
步骤X3:域内令牌验证管理器2032对发送方加密结果Ek(ID1‖R‖MAC1)进行解密,获得其中的发送方随机数签名结果MAC1、随机数R、ID1。
步骤X4:域内令牌验证管理器2032将接收到的ID1和随机数R再次进行签名运算,获得发送方随机数签名结果MAC1′,并判断自身计算出的发送方随机数签名结果MAC1′与接收到的发送方随机数签名结果MAC1是否相同,如果相同,则继续执行步骤X5。
步骤X5:域内令牌验证管理器2032将随机数R和ID2进行签名运算,获得接收方随机数签名结果MAC2=H(ID2‖R)。
步骤X6:域内令牌验证管理器2032利用共享密钥k和对称加密算法,将接收方随机数签名结果MAC2和随机数R一并进行加密,获得接收方加密结果Ek(ID2‖R‖MAC2),并将接收方加密结果Ek(ID2‖R‖MAC2)发送给域内令牌捕获器2031。
步骤X7:域内令牌捕获器2031对接收方加密结果Ek(ID2‖R‖MAC2)进行解密,获得其中的接收方随机数签名结果MAC2、随机数R、ID2。
步骤X8:域内令牌捕获器2031将接收到的ID2和随机数R再次进行签名运算,获得接收方随机数签名结果MAC2′,并判断计算出的随机数签名结果MAC2′与接收到的随机数签名结果MAC2是否相同,如果相同,则结束协面过程。
经过上述过程,域内令牌捕获器2031和域内令牌验证管理器2032之间可以安全地协商出一个共享随机数R,并各自进行保存。当然,在上述步骤X4和步骤X8中,如果判断失败,还可以重新返回步骤X1,直到双方获得共享随机数R。
另外,本发明方法实施例都是以某个随机数R为例进行说明的,实际应用中,为了更好地保证域内令牌捕获器2031和域内令牌验证管理器2032之间的信任关系,防止非法用户的攻击,还可以在使用完对随机数R进行各次哈希运算的结果之后,重新生成随机数R′,再执行上述的协商过程。
应用本发明方案,由于可以在原有的仅支持域内令牌系统的基础上增加了令牌适配器201和令牌管理子系统203,在认证中心将返回域内令牌时,令牌适配器201可以向令牌管理子系统203请求跨域令牌,并将域跨令牌返回给用户终端204。这样,不必对原有的认证中心进行大量更改,也不必替换原有的认证中心,就可以达到向用户终端204提供跨域令牌的目的,从而可以充分利用原有设备,节约系统成本。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种提供跨域令牌的系统,该系统包括:
令牌适配器,用于将用户终端提交的登录信息转发给认证中心,在获得由认证中心返回的域内令牌时,利用获得的域内令牌向令牌管理子系统发送令牌请求,接收返回的跨域令牌,并将获得的跨域令牌返回给用户终端;
认证中心,用于在接收到令牌适配器转发的登录信息时,利用设定的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器;
令牌管理子系统,用于捕获认证中心返回给令牌适配器的域内令牌,根据捕获到的域内令牌确定用于验证域内令牌合法性的令牌验证信息;还用于接收令牌适配器发送的令牌请求,利用所述令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌返回给令牌适配器。
2.根据权利要求1所述的系统,其特征在于,所述令牌管理子系统包括:
域内令牌捕获器,用于捕获认证中心返回给令牌适配器的域内令牌;利用签名算法对令牌验证信息进行签名,获得验证信息签名结果,所述令牌验证信息由捕获到的域内令牌确定;将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器;
域内令牌验证管理器,用于根据验证信息签名结果对令牌验证信息进行验证,并在验证成功时保存所述令牌验证信息;还用于在接收到令牌适配器发送的令牌请求时,利用保存的令牌验证信息对令牌请求中携带的域内令牌进行验证,并在验证成功时向跨域令牌管理器发送令牌请求,将跨域令牌管理器返回的跨域令牌转发给令牌适配器;
跨域令牌管理器,用于在接收到域内令牌验证管理器发送的令牌请求时,生成跨域令牌,将生成的跨域令牌返回给域内令牌验证管理器。
3.根据权利要求2所述的系统,其特征在于,所述域内令牌捕获器包括:
捕获单元,用于捕获认证中心返回给令牌适配器的域内令牌,将捕获到的域内令牌作为令牌验证信息送给第一签名执行单元;
第一签名执行单元,用于利用签名算法对输入的信息进行签名,获得验证信息签名结果,并将令牌验证信息和获得的验证信息签名结果输出给第一收发单元;
第一收发单元,将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器。
4.根据权利要求3所述的系统,其特征在于,所述域内令牌捕获器进一步包括:
第一存储单元,用于保存发送方签名相关信息,所述发送方签名相关信息包括所有的运算次数以及所有的哈希运算结果,其中,所述运算次数与哈希运算结果一一对应,每一个哈希运算结果是对产生的随机数进行相应运算次数的哈希运算结果;
第一选择单元,用于按照顺序从第一存储单元中选择出一个运算次数和对应的哈希运算结果,并将选出的结果提供给第一签名执行单元;
所述第一收发单元进一步用于:在将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器时,将运算次数一并发送给域内令牌验证管理器。
5.根据权利要求3所述的系统,其特征在于,所述域内令牌捕获器进一步包括:
第一存储单元,用于保存上一次参与签名运算的发送方签名相关信息,所述发送方签名相关信息包括一个运算次数和对应的一个哈希运算结果,其中,所述哈希运算结果是对产生的随机数进行相应运算次数的哈希运算结果;
第一计算单元,用于根据第一存储单元中上一次参与签名运算的发送方签名相关信息计算出当前的发送方签名相关信息,并提供给第一签名执行单元;
所述第一收发单元进一步用于:在将令牌验证信息和验证信息签名结果发送给域内令牌验证管理器时,将运算次数一并发送给域内令牌验证管理器。
6.根据权利要求2所述的系统,其特征在于,所述域内令牌验证管理器包括:
第二收发单元,用于接收来自域内令牌捕获器的令牌验证信息和验证信息签名结果,所述令牌验证信息为域内令牌;将令牌验证信息输出给第二签名执行单元,将验证信息签名结果输出给第一判别单元;还用于接收令牌适配器发送的令牌请求,并将令牌请求中的域内令牌输出给第二判别单元;还用于将跨域令牌管理器返回的跨域令牌转发给令牌适配器;
第二签名执行单元,用于根据签名算法对输入的信息进行签名,获得验证信息签名结果,并输出给第一判别单元;
第一判别单元,用于判断第二签名执行单元和第二收发单元输入的验证信息签名结果是否一致,如果一致,则确定验证成功,并将令牌验证信息保存到令牌验证信息存储单元;
第二判别单元,用于判断第二收发单元输入的域内令牌与令牌验证信息存储单元中保存的令牌验证信息是否一致,如果一致,则确定验证成功,并向跨域令牌管理器发送令牌请求;
令牌验证信息存储单元,用于保存验证成功的令牌验证信息。
7.根据权利要求6所述的系统,其特征在于,所述第二收发单元进一步用于,在接收到令牌验证信息和验证信息签名结果时,还接收到运算次数,并将运算次数提供给第二签名执行单元;
所述域内令牌验证管理器进一步包括:
第二存储单元,用于保存接收方签名相关信息,所述接收方签名相关信息包括所有的哈希运算结果,所述哈希运算结果是对随机数进行各次哈希运算的结果,所述随机数与域内令牌捕获器中的所述随机数相同;
第二选择单元,用于按照顺序从第二存储单元中选择出一个哈希运算结果,并将选出的结果提供给第二签名执行单元。
8.根据权利要求6所述的系统,其特征在于,所述第二收发单元进一步用于,在接收到令牌验证信息和验证信息签名结果时,还接收到运算次数,并将运算次数提供给第二签名执行单元;
所述域内令牌验证管理器进一步包括:
第二存储单元,用于保存上一次参与签名运算的接收方签名相关信息,所述接收方签名相关信息包括一个哈希运算结果,所述哈希运算结果是对随机数进行上一次哈希运算的结果,所述随机数与域内令牌捕获器中所述随机数相同;
第二计算单元,用于根据第二存储单元中上一次参与签名运算的接收方签名相关信息计算出当前的接收方签名相关信息,并提供给第二签名执行单元。
9.根据权利要求1所述的系统,其特征在于,所述令牌适配器包括:
第三收发单元,用于将用户终端提交的登录信息转发给认证中心;在获得由认证中心返回的域内令牌时,利用获得的域内令牌向令牌管理子系统发送令牌请求,接收返回的跨域令牌,并将获得的跨域令牌返回给用户终端;还用于将获得域内令牌和跨域令牌对应地保存到第三存储单元;
第三存储单元,用于保存域内令牌和对应的跨域令牌。
10.根据权利要求9所述的系统,其特征在于,
所述令牌适配器进一步包括令牌替换单元,用于将第三收发单元发来的令牌认证请求中的跨域令牌替换为第三存储单元中对应的域内令牌,并将替换后的令牌认证请求通过第三收发单元发送给认证中心;
令牌适配器中的第三收发单元进一步用于:在用户访问域内应用服务时,将接收到的携带有跨域令牌的令牌认证请求发送给替换单元;将替换单元返回的令牌认证请求转发给认证中心;接收认证中心返回的令牌认证响应,并将令牌认证响应提供给用户访问的应用服务。
11.根据权利要求1所述的系统,其特征在于,所述令牌管理子系统进一步用于:在用户终端利用跨域令牌对域外应用服务进行跨域访问时,接收来自域外应用服务的携带有跨域令牌的令牌认证请求,利用事先生成的跨域令牌对令牌认证请求中的跨域令牌进行验证,并将令牌认证响应返回给域外应用服务。
12.一种提供跨域令牌的方法,包括:
令牌适配器(201)将用户终端提交的登录信息转发给认证中心;
认证中心利用事先设置的用户鉴权方法对登录信息进行验证,并在验证成功时将生成的域内令牌返回给令牌适配器;
令牌管理子系统捕获认证中心返回给令牌适配器的域内令牌,根据捕获到的域内令牌确定并保存用于验证域内令牌合法性的令牌验证信息;在接收到令牌适配器发送的携带有域内令牌的令牌请求时,利用所述令牌验证信息对令牌请求中的域内令牌进行验证,并在验证成功时将生成的跨域令牌返回给令牌适配器;
令牌适配器将获得的跨域令牌返回给用户终端。
13.根据权利要求12所述的方法,其特征在于,所述令牌管理子系统包括域内令牌捕获器、域内令牌验证管理器和跨域令牌管理器;所述令牌管理子系统捕获认证中心返回给令牌适配器的域内令牌,根据捕获到的域内令牌确定并保存用于验证域内令牌合法性的令牌验证信息的步骤包括:
所述域内令牌捕获器捕获认证中心返回给令牌适配器的域内令牌,利用签名算法对令牌验证信息进行签名,获得验证信息签名结果,并将令牌验证信息和验证信息签名结果一并发送给域内令牌验证管理器,所述令牌验证信息由捕获到的域内令牌确定;
所述域内令牌验证管理器根据验证信息签名结果对令牌验证信息进行验证,并在验证成功时保存所述令牌验证信息。
14.根据权利要求13所述的方法,其特征在于,所述令牌管理子系统在接收到令牌适配器发送的令牌请求时,利用所述令牌验证信息对令牌请求中的域内令牌进行验证,在验证成功时将生成的跨域令牌返回给令牌适配器的步骤包括:
所述域内令牌验证管理器接收来自令牌适配器的令牌请求,利用保存的令牌验证信息对令牌请求中的域内令牌进行验证,在验证成功时向跨域令牌管理器发送令牌请求;
所述跨域令牌管理器生成跨域令牌,并将生成的跨域令牌返回给域内令牌验证管理器;
域内令牌验证管理器将获得的跨域令牌返回给令牌适配器。
15.根据权利要求14所述的方法,其特征在于,所述域内令牌捕获器利用签名算法对令牌验证信息进行签名,获得验证信息签名结果的步骤包括:
所述域内令牌捕获器将捕获到的令牌作为令牌验证信息,利用签名算法直接对令牌验证信息进行签名运算,将签名运算的结果作为验证信息签名结果。
16.根据权利要求15所述的方法,其特征在于,所述域内令牌验证管理器根据验证信息签名结果对令牌验证信息进行验证的步骤包括:
所述域内令牌验证管理器将接收到的令牌验证信息直接进行签名运算,获得验证信息签名结果;判断计算出的验证信息签名结果与接收到的验证信息签名结果是否一致,如果一致,则确定验证成功,否则,验证失败。
17.根据权利要求16所述的方法,其特征在于,所述域内令牌验证管理器利用所述保存的令牌验证信息对令牌请求中的域内令牌进行验证的步骤包括:
所述域内令牌验证管理器将令牌请求中的域内令牌与保存的令牌验证信息进行比较,如果一致,则确定验证成功;否则,验证失败。
18.根据权利要求14所述的方法,其特征在于,所述域内令牌捕获器利用签名算法对令牌验证信息进行签名,获得验证信息签名结果的方法包括:
将域内令牌作为令牌验证信息,将当前的运算次数、对产生的随机数进行相应运算次数的哈希运算的结果作为发送方签名相关信息,将令牌验证信息和发送方签名相关信息一并进行签名运算,并将签名运算的结果作为验证信息签名结果。
19.根据权利要求18所述的方法,其特征在于,所述域内令牌验证管理器根据验证信息签名结果对令牌验证信息进行验证的方法包括:
所述域内令牌验证管理器将域内令牌捕获器发送来的令牌验证信息、运算次数以及自身提供的对随机数进行哈希运算的结果一并进行签名运算,获得验证信息签名结果;判断计算出的验证信息签名结果与域内令牌捕获器发送来的验证信息签名结果是否一致,如果一致,则确定验证成功;否则,验证失败。
20.根据权利要求19所述的方法,其特征在于,在所述用户终端向认证中心提交登录信息之前,该方法进一步包括:
X1.域内令牌捕获器将产生的随机数和自身ID号进行签名运算,获得发送方随机数签名结果;
X2.域内令牌捕获器利用与域内令牌验证管理器之间的共享密钥和对称加密算法,将发送方随机数签名结果和随机数一并进行加密,获得发送方加密结果,并将发送方加密结果发送给域内令牌验证管理器;
X3.域内令牌验证管理器对发送方加密结果进行解密,获得其中的发送方随机数签名结果、随机数和发送方ID号;
X4.域内令牌验证管理器将发送方ID号和随机数再次进行签名运算,获得发送方随机数签名结果,并判断计算出的发送方随机数签名结果与接收到的发送方随机数签名结果是否相同,如果相同,则继续执行步骤X5;
X5.域内令牌验证管理器将随机数和自身ID号进行签名运算,获得接收方随机数签名结果;
X6.域内令牌验证管理器利用共享密钥和对称加密算法,将接收方随机数签名结果和所述随机数一并进行加密,获得接收方加密结果,并将接收方加密结果发送给域内令牌捕获器;
X7.域内令牌捕获器对接收方加密结果进行解密,获得其中的接收方随机数签名结果、随机数和接收方ID号;
X8.域内令牌捕获器将接收到的接收方ID号和所述随机数再次进行签名运算,获得接收方随机数签名结果,并判断计算出的接收方随机数签名结果与接收到的接收方随机数签名结果是否相同,如果相同,则结束协商过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100853564A CN101534192B (zh) | 2008-03-14 | 2008-03-14 | 一种提供跨域令牌的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100853564A CN101534192B (zh) | 2008-03-14 | 2008-03-14 | 一种提供跨域令牌的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101534192A CN101534192A (zh) | 2009-09-16 |
CN101534192B true CN101534192B (zh) | 2012-01-11 |
Family
ID=41104601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100853564A Expired - Fee Related CN101534192B (zh) | 2008-03-14 | 2008-03-14 | 一种提供跨域令牌的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101534192B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035801B (zh) * | 2009-09-28 | 2014-05-14 | 西门子(中国)有限公司 | 一种用于防止攻击的方法和装置 |
US9294454B2 (en) * | 2013-03-15 | 2016-03-22 | Microsoft Technology Licensing, Llc | Actively federated mobile authentication |
CN103560885A (zh) * | 2013-11-01 | 2014-02-05 | 金蝶软件(中国)有限公司 | 一种域代理认证方法和系统 |
CN104378210B (zh) * | 2014-11-26 | 2018-01-26 | 成都卫士通信息安全技术有限公司 | 跨信任域的身份认证方法 |
CN105847220A (zh) * | 2015-01-14 | 2016-08-10 | 北京神州泰岳软件股份有限公司 | 一种认证方法、系统和服务平台 |
KR102468390B1 (ko) * | 2017-05-31 | 2022-11-18 | 삼성에스디에스 주식회사 | 토큰 관리 방법 및 이를 수행하기 위한 서버 |
CN107749855A (zh) * | 2017-10-30 | 2018-03-02 | 武汉烽火信息集成技术有限公司 | 基于客户端的单点登录身份认证方法及系统 |
CN107749854B (zh) * | 2017-10-30 | 2019-12-27 | 武汉烽火信息集成技术有限公司 | 基于客户端的单点登录方法及系统 |
IT201900005876A1 (it) * | 2019-04-16 | 2020-10-16 | Roberto Griggio | Sistema e metodo per la gestione delle credenziali di accesso multi-dominio di un utente abilitato ad accedere ad una pluralità di domini |
CN110149336A (zh) * | 2019-05-24 | 2019-08-20 | 深圳绿米联创科技有限公司 | 单点登录方法、装置以及信息系统 |
CN110417730B (zh) * | 2019-06-17 | 2022-07-19 | 平安科技(深圳)有限公司 | 多应用程序的统一接入方法及相关设备 |
CN110753045A (zh) * | 2019-10-14 | 2020-02-04 | 紫光云(南京)数字技术有限公司 | 不同域之间单点登录的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805341A (zh) * | 2006-01-11 | 2006-07-19 | 西安电子科技大学 | 跨安全域的网络认证和密钥分配方法 |
CN1812403A (zh) * | 2005-01-28 | 2006-08-02 | 广东省电信有限公司科学技术研究院 | 一种跨管理域实现身份认证的单点登录方法 |
-
2008
- 2008-03-14 CN CN2008100853564A patent/CN101534192B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1812403A (zh) * | 2005-01-28 | 2006-08-02 | 广东省电信有限公司科学技术研究院 | 一种跨管理域实现身份认证的单点登录方法 |
CN1805341A (zh) * | 2006-01-11 | 2006-07-19 | 西安电子科技大学 | 跨安全域的网络认证和密钥分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101534192A (zh) | 2009-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101534192B (zh) | 一种提供跨域令牌的系统和方法 | |
EP3661120B1 (en) | Method and apparatus for security authentication | |
US11128477B2 (en) | Electronic certification system | |
CN111416807B (zh) | 数据获取方法、装置及存储介质 | |
US8607045B2 (en) | Tokencode exchanges for peripheral authentication | |
US10567370B2 (en) | Certificate authority | |
US7698736B2 (en) | Secure delegation using public key authentication | |
US8510565B2 (en) | Bidirectional entity authentication method based on the credible third party | |
US8356179B2 (en) | Entity bi-directional identificator method and system based on trustable third party | |
EP4066434B1 (en) | Password-authenticated public key establishment | |
US8751792B2 (en) | Method and system for entity public key acquiring, certificate validation and authentication by introducing an online credible third party | |
KR20170106515A (ko) | 다중 팩터 인증 기관 | |
US9398024B2 (en) | System and method for reliably authenticating an appliance | |
CN109981287A (zh) | 一种代码签名方法及其存储介质 | |
CN114154125B (zh) | 云计算环境下区块链无证书的身份认证方案 | |
JP2001186122A (ja) | 認証システム及び認証方法 | |
CN114553480B (zh) | 跨域单点登录方法、装置、电子设备及可读存储介质 | |
CN114127764A (zh) | 与分布式账本关联的目的地寻址 | |
WO2022033350A1 (zh) | 注册服务的方法及设备 | |
US9038143B2 (en) | Method and system for network access control | |
Liou et al. | T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs | |
CN113727059B (zh) | 多媒体会议终端入网认证方法、装置、设备及存储介质 | |
Diaz et al. | On securing online registration protocols: Formal verification of a new proposal | |
CN114070574B (zh) | 身份认证方法、装置、可信实体、认证实体及终端 | |
KR20220163704A (ko) | 쌍토큰을 이용한 tls 세션 복구 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120111 Termination date: 20200314 |