专利名称:单点登录方法及系统的制作方法
技术领域:
本发明涉及通信领域,具体而言,涉及ー 种单点登录方法及系统。
背景技术:
在统一 IP多媒体子系统(IP multimedia subsystem,简称为IMS)的终端(UserEquipment,简称为UE)认证过程和实现单点登录(Single Sign-On,简称为SS0)的过程中,现存有3种场景I, IMS UE 内具有通用集成电路卡(Universal Integrated Circuit Card,简称为UICC),并且网络运营商已部署了通用认证机制(General Bootstrapping Architecture,简称为GBA)的情形此时可以利用GBA认证机制同自由联盟(Liberty Alliance) /开放式身份识别(OpenID)结合实现单点登录以及与现有的其它SSO机制实现互通。在这种场景下,为了实现SS0,运营商会部署大量的GBA,同时为每个MS UE内嵌入WCC卡,利用GBA和nCC卡内信息完成对IMS终端访问应用服务器的SSO功能。2,IMS UE内具有WCC卡,但是运营商不能部署GBA的情形这种情况下需要对UE終端用户进行认证,实现该頂S终端对AS应用服务器的SSO功能吋,多采用认证和密钥协商(Authentication and Key Agreement,简称为 AKA)/OpenID 相结合的方案。具体如下IMS UE向应用服务器(Application Server,简称为AS,也称RP)发送一个认证请求,该请求中包含OpenID标识符;RP利用该OpenID标识符发现OpenID身份提供者(OpenIDProvider,简称为 0P)的最终统一资源定位符(Uniform/Universal Resource Locater,简称为URL),并重定向用户认证请求到达该URL ;0P从归属用户寄存器(Home SubscriberServer,简称为HSS)取得AKA认证向量以及基于IP多媒体私有用户标识(IP MultimediaPrivate Identity,简称为MPI)的用户终端信息内容;0P使用AKA认证方法向UE发送ー个认证挑战,使得UE对该网络进行认证;UE对挑战向OP发送ー个响应,在OP中完成对UE的认证;0P向UE发送ー个宣称OpenID标识符属于该终端的标记信息断言,该断言被OP使用OP与RP的共享密钥(密钥可能是OP与RP的共享密钥,也可能是OP自身的密钥)标记;重定向该断言到达RP ;若利用的为OP与RP共享密钥,则RP直接验证签名信息,并通知UE验证結果。若使用的是OP自身密钥加密,则RP把该断言的复本传送到OP进行验证,OP验证后将验证结果通知给RP,最后RP再将验证结果通知给UE。该架构能够使得网络运营商作为OpenID provider为用户访问WEB服务器提供身份验证的服务功能。对保存有ISIM(MS中的身份识别)的应用程序,用户可以提供跨IMS和web服务器等实现对其的SSO功能。允许用户在WEB上控制他们的公共身份标识符。用户通过访问信任的网络运营商控制的WEB应用程序,可以提高用户自身信息的安全性。3,IMS UE不具有HCC卡,并且运营商也未部署GBA的情形随着非WCC卡终端接入MS网络的增多,这种情形出现的概率越来越大,并且在未部署GBA和非nCC卡情形下,用户也常常需要访问頂S网络和使用与MS相关的应用服务,这种情况下,基于非nCC的頂S-SSO认证变得非常有必要。但是,相关技术中尚未提出在这种场景下如何进行SSO功能。综上所述,相关技术中,只有具有卡的终端才能实现SSO功能,进而访问IMS网络中的各种应用服务,且大多数情况需要网络运营商大量部署GBA,这样将増加运营商的投入成本;而不具有nCC卡的终端将不能利用已有架构方案实现对MS网络中相关应用服务的SSO功能。
发明内容
本发明的主要目的在于提供ー种单点登录方法及系统,以至少解决上述问题。本发明提供了ー种单点登录方法,包括終端向应用服务器RP发送服务请求所述RP获取认证中心地址,将自身的认证请求通过所述終端重定向到所述认证中心,或者,所述RP向所述终端返回用于指示所述终端向所述认证中心进行认证的响应; 所述终端向所述认证中心发送认证请求;所述认证中心使用会话初始协议摘要认证SIP Digest方式对所述终端进行认证,将认证结果通过所述終端重定向到所述RP ;在使用所述SIP Digest方式认证过程中,所述认证中心和所述终端两者利用相同的哈希值和随机数产生共享密钥;所述RP根据所述认证结果为所述终端提供服务。本发明还提供了一种单点登录系统,包括終端,用于向应用服务器RP发送服务请求,向所述认证中心发送认证请求,和所述认证中心利用相同的哈希值和随机数产生共享密钥;所述RP用于获取所述认证中心地址,将所述认证请求重定向到认证中心,以及用于根据所述认证中心的认证结果为所述终端提供服务;所述认证中心,用于使用会话初始协议摘要认证SIP Digest方式对所述终端进行认证,将认证结果通过所述終端重定向到所述RP,和所述终端利用相同的哈希值和随机数
产生共享密钥。通过本发明,RP将UE的请求重定向到认证中心或者向UE发送用于指示其需要到认证中心进行认证的信息,认证中心得到认证请求后根据收到的用户身份标识采用SIPDigest方式来对该UE进行认证,并将认证结果重定向到RP,解决了相关技术中的认证方案仅仅适用于具有nCC卡的终端的问题,该方法能够支持对不具有nCC的终端单点登录RP的认证,由于该方法不需要部署大量的GBA,因此减少了运营商部署GBA所需要的资源,同时能够满足非nCC终端接入MS网络,并且可以通过SSO的方式访问MS网络相关的应用服务。
此处所说明的附图用来提供对本发明的进ー步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是根据本发明实施例的单点登录方法的流程图;图2是根据本发明实施例的单点登录系统的结构框图;图3是根据实施例I的非卡的MS终端利用SIP Digest认证机制实现对应用服务器的单点登录认证流程的流程图;图4是根据本发明实施例的运营商提供的IdP利用SIP Digest认证机制实现非ncc卡的MS終端对应用服务器的单点登录认证整体架构图;图5是根据本发明实施例的另ー单点登录方法的流程图;图6是根据实施例2的运营商作为OpenID Provider利用SIP Digest认证机制实现非ncc卡的IMS終端对应用服务器的单点登录认证流程图;图7是根据本发明实施例的运营商作为OpenID Provider利用SIP Digest认证机制实现非ncc卡的MS終端对应用服务器的单点登录认证整体架构具体实施例方式下文中将參考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互組合。·图I是根据本发明实施例的单点登录方法的流程图,该方法包括步骤S102,終端向RP发送服务请求;步骤S104,RP获得认证中心IdP地址,并将自身的认证请求通过终端重定向到认证中心,或者,RP向终端返回用于指示终端向认证中心进行认证的响应;步骤S106,終端向认证中心发送终端的认证请求;步骤S108,认证中心使用会话初始协议摘要认证SIP Digest方式对终端进行认证,将认证结果通过终端重定向到RP ;步骤S110,RP根据认证结果为終端提供服务。该方法中,终端不向RP发送自身的身份标识信息,RP不会获得UE的身份标识信息,也不会对终端进行认证,而是采用一定的机制来令終端向认证中心发起对终端的认证请求。其中,可以通过两种机制来实现,ー是RP返回用于指示終端到签约的认证中心进行认证的响应;另外一种通过終端紧随RP重定向到签约认证中心的重定向RP认证消息将自身认证请求消息发送到签约认证中心这一重定向处理机制,也就是说,RP将自身的认证请求通过终端重定向到认证中心,这样,終端后续会借助重定向流程将自身的认证请求发送到认证中心。这种方式使得RP无法获得终端的身份标识信息,終端直接向可信任的认证中心进行认证,防止将用户身份信息泄露给RP,从而提高了安全性相关技术中,UE终端对应用服务器的SSO功能一般通过Liberty Alliance/OpenID结合的方式或AKA/OpenID相结合的方式来实现,这两种方式仅支持WCC身份标识信息的认证,因此仅适用于UE終端预先拥有nCC卡情況,而现实应用中,不具有nCC卡的UE正在不断的增多,因此,需要新的机制来支持非nCC卡的UE终端实现SSO功能,本实施例的方法,采用SIP Digest方式来进行认证,所支持的用户身份标识的种类不限于nCC身份标识信息,因此,能够支持不具有ncc的终端的认证。通过以上的方法,网络运营商能作为用户认证中心提供者完成对UE終端使用AS的统ー认证,方便各种应用服务器接入終端。网络运营商可以为应用服务提供商提供大量用户群,运营商可通过与AS提供商合作更好的满足用户群对各种应用服务的需求,同时用户通过信任的网络运营商访问相关应用服务器,不仅为用户提供了方便也増加了用户信息的安全性同时也扩大了运营商的盈利方式。
优选地,在认证中心使用SIP Digest方式对UE进行认证之前,认证中心可以判断是否存在与UE之间的第一共享密钥Ktl,若不存在,则继续后续处理,若存在,则跳过认证中心使用SIP Digest方式对UE进行认证的步骤,直接将认证结果重定向到RP。通过以上的判断步骤,认证中心可以对已认证过的UE直接返回认证结果给RP,提高了处理的速度。相关技术中,由于OP认证中心对UE終端只进行单向认证,并且服务器可能存在未认证攻击情況,因此,可能存在由于服务器非法导致安全性较差的问题。因此,在本实施例中,RP还可以将RP认证请求重定向到认证中心,其中,RP认证请求携带RP身份标识RP_credential认证中心根据RP身份标识对RP进行认证并保存认证結果。通过以上的方法,非nCC卡的UE可以实现对頂S网络中合法应用服务器的SSO功能,通过采用双向认证可以更好的保证頂S終端身份信息的安全性,并且能够正确识别非法应用服务器,提高了服务的安全性。优选地,以上用户身份标识可以为开放式身份标识(OpenID),认证中心可以为 0P;或者,用户身份标识可以为输入到UE的身份标识或UE在因特网协议多媒体子系统(IMS)系统中分配获得的身份标识,认证中心可以为单点登录认证中心(IdP)。在具体实施中,认证中心使用SIP Digest方式对UE进行认证的过程可以采用以下的处理方式认证中心根据对应于该终端的SIP Digest认证向量(SD-AV),对终端进行认证。该(SD-AV)可以由认证中心根据用户身份标识从HSS获取并存储,其中,SD-AV至少包括以下内容用户身份标识、认证算法(algorithm)、质量保障、作用域(realm)以及ー个哈希值H(Al),其中,H(Al)由用户身份标识、realm和ロ令(password)组成。优选地,基于以上的參数,认证中心使用SIP Digest方式对终端进行认证的过程可以包括认证中心产生随机数nonce,将携带algorithm、nonce以及realm等的消息发送至UE ;UE产生随机数cnonce,根据nonce、cnonce和由realm、用户身份标识和事先储存的password产生的H(Al)等利用algorithm生成响应值response,向认证中心返回响应消息,其中,响应消息携带cnonce、nonce、realm、response和algorithm ;认证中心采用algorithm根据存储的H(Al)、存储的nonce、接收到的cnonce计算校验响应值Xresponse,将接收到的response和Xresponse进行比较,若相同则认证成功,否则认证失败;认证中心计算SIP Digest认证机制下的rspauth值。利用SIP Digest认证机制,运营商通过提供IdP统ー认证中心对用户和访问的应用服务器两者进行统一的双向认证,能够很好的实现场景3中的SSO功能。优选地,response的计算依据还可以包括UE计算response时使用同一个nonce的使用次数。利用nonce-count也參与response计算,能够降低重放攻击的可能性通过以上的过程,在认证中心产生随机数nonce,将携带algorithm、nonce和realm的消息发送至終端之后,UE就可以根据H(Al)和cnonce利用认证算法计算Ktl ;在认证中心使用SIP Digest方式对UE进行认证之后,认证中心可以根据认证算法计算K。并存储。通过以上的方法,认证中心和UE可以根据认证过程交互的參数生成两者之间的共享密钥Ktl,认证中心可以根据是否存储有该共享密钥来判断是否已对该UE进行过认证。在认证中心对UE认证成功之后,为了保证UE和RP之间的通信安全,可以采用以下的处理方式(I)在用户身份标识为输入到UE的身份标识或UE在IMS系统中分配获得的身份标识,认证中心为IdP,且认证中心认证成功的情况下,认证中心生成随机数noncel,根据noncel和Ktl生成第二密钥K1 ;认证中心采用Ktl加密noncel和对RP的认证结果RP_Auth得到Ktl(noncel, RP_Auth),采用和RP之间的共享密钥Kr,i加密K1和对UE的认证结果UE_Auth得到Kr, i (Kl,UE_Auth);认证中心向终端发送携带KQ(noncel,RP_Auth)和rspauth參数值的2000K信息并将Kr,i (K1, UE_Auth)重定向到RP,或者,终端在认证中心将终端重定向到RP的重定向消息中获得Ktl(noncel, RP_Auth)、rspauth參数值和Kr, i (K1,UE_Auth)之后将Kr,i (K1;UE_Auth)重定向到RP ;UE解密K。(noncel,RP_Auth),得到对RP的认证結果,利用和认证中心ー样的方法产生rspauth參数值,并与接收到的信息中的rspauth对比,来完成終端对网络的认证过程;网络认证成功后生成第二密钥K1 ;并且,RP解密Kr,i (K1, UE_Auth),采用K1加密服务内容发送至UE ;UE采用K1进行解密获得服务内容。(2)在用户身份标识为OpenID,认证中心为0P,且认证中心认证成功的情况下一种处理方式是认证中心生成随机数noncel,根据noncel和Ktl生成第二密钥K1 ; 认证中心采用K。加密noncel和对RP的认证断言RP_Assert得到K。(noncel, RP_Assert),采用和RP之间的共享密钥Kr,i加密K1和对UE的认证断言UE_Assert得到Kr,o (K1, UE_Assert);认证中心向终端发送携带K。(noncel, RP_Auth)和rspauth參数值的2000K信息并将Kr,ο (KpUE.Auth)重定向到RP,或者,终端在认证中心将终端重定向到RP的重定向消息中获得 K。(noncel, RP_Assert) >rspauth 參数值和 Kr, o (K1, UE_Assert)之后将 Kr, i (K1,UE_Assert)重定向到RP ;UE解密K。(noncel,RP_Assert),得到对RP的认证断言,利用和认证中心ー样的方法产生rspauth參数值,并与接收到的信息中的rspauth对比,来完成终端对网络的认证过程;网络认证成功后生成第二密钥K1 ;并且,RP解密Kr,ο (K1, UE_Assert),采用K1加密服务内容发送至UE ;UE采用K1进行解密获得服务内容。另ー种处理方式是认证中心生成随机数noncel,根据noncel和Ktl生成第二密钥K1 ;认证中心采用K0加密noncel得到K。(noncel),采用和RP之间的共享密钥Kr,i加密K1和对UE的认证断言UE_Assert得到Kr, o (K1, UE_Assert);认证中心向终端发送携带K0(noncel)和rspauth參数值的2000K信息并将Kr,o (K1, UE_Auth)重定向到RP,或者,终端在认证中心将终端重定向到RP的重定向消息中获得Ktl(noncel)、rspauth參数值和Kr,ο (K1, UE_Assert)之后将 Kr, i (K1, UE_Assert)重定向到 RP ;UE 解密 K0(noncel),利用和认证中心ー样的方法产生rspauth參数值,并与接收到的信息中的rspauth对比,来完成终端对网络的认证过程;网络认证成功后生成第二密钥K1 ;并且,RP解密Kr,ο (K1, UE_Assert),采用K1加密服务内容发送至UE ;UE采用K1进行解密获得服务内容。在这种情况下,不需要带RP认证结果给终端UE,终端信任认证中心,认证中心认证RP通过才会发送给UE信息,若終端UE能从认证中心收到K。(noncel),就表示了 RP认证通过了,不需要在明确去通知終端UE0以上的方法中,认证中心和UE之间、认证中心和RP之间的交互信息均采用各自对应的共享密钥进行加密,保证了认证中心和UE以及认证中心和RP之间的信息交互安全 ’另夕卜,对于UE的一次认证请求,产生ー个K1,以便UE和RP之间利用K1对交互的服务内容进行加密,防止非法截获用户数据,进ー步地提高了安全性。需要说明的是,以上的方法采用SIP Digest机制,不仅适用于非的终端的认证,也可以适用于ncc终端的认证,并且,无需配置大量的GBA,降低了网络运营商部署GBA和嵌入ncc卡的成本。本实施例还提供了ー种单点登录系统,图2是根据本发明实施例的单点登录系统的结构框图,该系统包括UE22,用于向RP 24发送请求消息;RP 24,用于将认证请求重定向到认证中心26,以及用于根据认证中心26的认证结果为UE 22提供服务;认证中心26,用于使用SIP Digest方式对UE 22进行认证,将认证结果通过UE 22重定向到RP 24。认证中心26还用于根据RP身份标识对RP 24进行认证并保存认证結果。优选地,在用户身份标识为OpenID的情况下,认证中心26为OP ;在用户身份标识为输入到UE的身份标识或UE在MS系统中分配获得的身份标识的情况下,认证中心26为IdP。优选地,认证中心26还用于产生安全通信密钥,并将该安全通信密钥通过UE 22重定向到RP 24 ;RP 24还用于采用该安全通信密钥加密服务内容并发送至UE 22 ;UE 22 还用于产生该安全通信密钥,采用该安全通信密钥进行解密获得服务内容。对于非HCC卡的MS终端在未部署GBA的网络架构中的单点登录的处理,以下将在实施例中结合图3和6进行详细的描述,需要说明的是,附图中为整体架构图和流程图,UE为MS非HCC卡终端,RP对应于MS终端要访问的应用服务器,IdP/OP对应网络运营商提供的SSO子系统。为了使流程更加简洁明了,对流程没有影响的ー些网络的具体网元接ロ没有画出以及支持的协议没有说明,例如UE与RP接ロ具备的功能,UE与IdP接ロ具备的功能,HSS与IdP接ロ具备的功能,以及支持的有关协议等均未示出;HSS与IdP之间接ロ參考点能够实现Diameter协议,可以重用MS核心网内的Cx接ロ,UE和IdP均要支持SIP Digest认证机制等条件也未在图中标明;为简洁起见,在图中没有画出这些具体接ロ參考点。RP和IdP实现共享密钥的协商机制利用现有机制可以顺利实现,IdP对RP的认证,现在也已有成熟机制成功实现,这里不再累述。下面描述的实施例I和2,综合了上述多个优选实施例的技术方案。实施例I本实施例提供了一种基于SIP Digest认证机制在统ー MS网络中实现对应用服务器的SSO功能的方法。在该方法中,对UE終端和AS服务器两者进行了双向认证的机制;能够满足MS网络中非nCC卡的UE终端对其应用服务器实现SSO功能;与OpenlD/AKA相比,具有更好的通用性和安全性,保证了 UE用户终端和AS服务器两者的安全。图4是根据本发明实施例的运营商提供的IdP利用SIP Digest认证机制实现非UICC卡的MS終端对应用服务器的单点登录认证整体架构图,图3是根据实施例I的非UICC卡的MS終端利用SIP Digest认证机制实现对应用服务器的单点登录认证流程的流程图,该实施例以图4所示架构为基础,结合图3描述了单点登录方法的流程,详述如下步骤I :UE终端向应用服务器RP发送ー个HTTP服务请求。步骤2 :应用服务器RP根据事先与运营商之间的签约和支持关系,获知并定位签约的认证中心IdP的地址;然后应用服务器RP和签约认证中心两者利用先有技术进行进行交互,建立共享密钥Kr,i。步骤3 :应用服务器RP向UE终端回应ー个401未授权的HTTPS响应,要求UE终端去认证中心进行身份认证;同时在该响应中包含认证中心IdP地址和RP身份信息;或者应用服务器RP重定向RP自身认证请求到签约认证中心IdP,该消息中携帯RP身份信息。在应用服务器RP内不包含任何UE終端有关的身份认证信息,RP不对UE进行认证。步骤4 UE终端依据IdP地址向认证中心IdP发送HTTP认证请求消息,请求IdP对UE终端进行身份认证或者UE终端紧随重定向消息向认证中心IdP发送认证请求消息,消息中携带终端UE的身份标识信息。步骤5 : IdP依据RP身份标识信息(RP_credential)对RP进行认证,保存对RP的认证结果RP_Auth ;同时依据传递来的用户身份标识(U_credential)判断IdP中是否存在与其对应的UE与IdP共享密钥も。若存在该共享密钥则直接跳转到步骤12进行执行,否则继续执行下步步骤。步骤6 IdP依据上步骤收到的用户身份标识(U_credential)到HSS中查找并下载对应的SIF1Digest Authentication Vector(SD-AV)和用户配置信息内容。其中包括U_credential> realm、qop、algorithm 和 H(Al),其中 H(Al)是由 U_credential, realm 和password组成的一个哈希函数值。在多HSS环境下,IdP可以通过询问SLF获得对应的储存用户信息的HSS地址,找到该对应的HSS。 步骤7 IdP产生一个随机数nonce,并且把从HSS下载的H(Al)与该nonce —起存储起来。步骤8 IdP向UE发送ー个401未认证挑战消息,该信息中包含U_credential、realm、qop、algorithm 矛ロ nonce。步骤9 :终端 UE 产生随机数 cnonce。利用 U_credential,realm和 password 产生H(Al);再利用H(Al)、cnonce等产生UE和IdP共享密钥も。通过ー个单向哈希函数F计算 response flu response = F (H(A),cnonce, nonce, qop, nonce-count)。终觸用 cnonce进行网络认证和避免” chosen plaintext”攻击。nonce-count是计数器,用户姆使用同一个 nonce 计算一次 response, nonce-count 将增加,利用 nonce-count 也參与 response 计算,降低重放攻击的可能性。步骤10 UE对步骤8中的挑战信息向IdP发送ー个响应response,该响应信息中包含 cnonce、nonce、response、realm、U_credential、qop、algorithm、Digest—url 不ロnonce-counto步骤11 :利用储存的nonce值对响应消息中的nonce值进行检验,若检验正确,则IdP利用收到的有关參数cnonce、nonce-count、qop等和原储存的nonce及H(Al)计算Xresponse,将计算的Xresponse与收到的response值进行比较,若两者比较结果相同则认证用户通过,否则UE用户终端认证失败;若終端认证成功,则IdP按照SIP Digest认证机制方法生成參数rspauth值;用H(Al)、cnonce等产生UE和IdP共享密钥K。。步骤12 : IdP产生获取UE的认证结果信息UE_Auth ; IdP再产生ー个随机数noncel ;然后利用IVnoncel等产生密钥K1 ;共享密钥Ktl对noncel和RP_Auth进行加密操作产生 K0 (noncel, RP_Auth);用 RP 和 IdP 共享密钥 Kr, i 加密 K1 和 UE_Auth 产生 Kr,i (K1,UE_Auth)ο步骤13 =IdP向UE终端发送2000K信息,包含IdP产生UE的认证结果信息UE_Auth、密钥生命周期和rspauth參数值等信息,向UE终端表明认证成功,同时IdP重定向UE終端至IJ RP,该消息携帯Kr,i (K1, UE_Auth);或者IdP发送重定向消息,重定向UE到RP,消息中携带IdP产生UE的认证结果信息UE_Auth、密钥生命周期、rspauth參数值和Kr,i (K1,UE_Auth)等消息。步骤14 UE终端解密Ktl (noncel, RP_Auth),取得noncel值和RP认证结果,获得RP应用服务器的合法性。若为合法应用服务器则顺序执行下歩,否则直接给UE終端返回一个服务器非法的通知信息 ,終端UE利用和IdP相同的机制计算产生rspauth參数值,并且与收到的rspauth參数值进行对比,两者相同则完成終端对网络的成功认证过程;网络认证成功后再利用IVnoncel等产生密钥も。步骤15 IdP发出的重定向消息被重定向到RP,该消息中携带Kr, i (K1;UE_Auth)。步骤16 RP收到该消息后,利用共享密钥解密Kr,i (K1, UE_Auth),RP获得IdP对UE终端的认证结果信息和密钥I。步骤17 :RP依据UE_Auth判断是否为该UE提供授权服务内容UE_Author ;并且用密钥K1对该授权信息进行加密产生K1 (UE_Author)。 步骤18 RP向UE通知授权信息内容。步骤19 :UE利用密钥K1是否能解密K1(UE-Author)来满足其是否可以获得请求服务。其中步骤17、18和19为具体应用层步骤,为可选步骤上述步骤1-19中任ー步骤失败,则整个认证过程停止继续。若该IMS終端UE获得到请求服务后,再请求别的应用服务器时,在该IMS終端用户UE认证请求中携带用户身份标识(U_credential)信息时,IdP通过查找该用户身份标识(U_Credential)信息对应的Ktl密钥,获知该用户是否已经认证通过,若存在该Ktl密钥则用户不需要在进行SIP Digest认证,只需要从步骤12开始进行处理;否则需要执行整个认证过程。当Ktl密钥生命周期到期,则其自动销毁,认证用户需要再次进行SIP Digest认证产生UE和IdP共享密钥。图5是根据本发明实施例的另ー单点登录方法的流程图,如图5所示,该方法包括步骤S502,UE向RP发送携带有用户身份标识的认证请求,RP获得对应签约的认证中心IdP的地址,并将认证请求重定向到认证中心;步骤S504,认证中心使用会话初始协议摘要认证(Session Initiation ProtocolDigest,简称为SIP Digest)方式对UE进行认证,将认证结果通过UE重定向到RP ;步骤S506,RP根据认证结果为UE提供服务。该方法中,运营商统一认证中心OP(SSO)同时具备OpenID Provider和满足SIPDigest认证机制能力;终端UE向RP发送携带OpenID标识符的OpenID认证请求消息;RP依据0penID2. O协议完成标准化和定位OP終点地址过程,并进行后续的关联过程,产生RP和OP之间的共享密钥;同时RP将自身的认证请求通过终端重定向到认证中心,这样,終端自身认证请求也同时重定向到认证中心。相关技术中,由于认证中心对UE終端只进行单向认证,并且服务器可能存在未认证攻击情况,因此,可能存在由于服务器非法导致安全性较差的问题。因此,可以采用以下的处理方式在RP向签约认证中心IdP发送的重定向消息中携帯OpenID机制下的終端身份标识和RP身份标识;
通过以上的方式使得认证中心获得了 RP身份标识之后,认证中心就可以根据RP身份标识对RP进行认证并保存认证結果。优选地,在认证中心使用SIP Digest方式对UE进行认证之前,认证中心可以判断是否存在与UE之间的第一共享密钥Ktl,若不存在,则继续后续处理,若存在,则跳过认证中心使用SIP Digest方式对UE进行认证的步骤,直接将认证结果重定向到RP。通过以上的判断步骤,认证中心可以对已认证过的UE直接返回认证结果给RP,提高了处理的速度。在具体实施中,认证中心使用SIP Digest方式对UE进行认证的过程可以采用以下的处理方式认证中心根据对应于该终端的SIP Digest认证向量(SD-AV),对终端进行认证。该(SD-AV)可以由认证中心根据用户身份标识从HSS获取并存储,其中,SD-AV至少包括以下内容用户身份标识、认证算法(algorithm)、质量保障、作用域(realm)以及ー个哈希值H(Al),其中,H(Al)由用户身份标识、realm和ロ令(password)组成。优选地,基于以上的參数,认证中心使用SIP Digest方式对终端进行认证的过程可以包括认证中心产生随机数nonce,将携带algorithm、nonce以及realm等的消息发 送至UE ;UE产生随机数cnonce,根据nonce、cnonce和由realm、用户身份标识和事先储存的password产生的H(Al)等利用algorithm生成响应值response,向认证中心返回响应消息,其中,响应消息携带cnonce、nonce、realm、response和algorithm ;认证中心采用algorithm根据存储的H(Al)、存储的nonce、接收到的cnonce计算校验响应值Xresponse,将接收到的response和Xresponse进行比较,若相同则认证成功,否则认证失败。终端认证成功后,认证中心利用SIP Digest机制计算rspauth參数值;利用SIP Digest认证机制,运营商通过提供IdP统ー认证中心对用户和访问的应用服务器两者进行统一的双向认证,能够很好的实现场景3中的SSO功能。优选地,response的计算依据还可以包括UE计算response时使用同一个nonce的使用次数。利用nonce-count也參与response计算,能够降低重放攻击的可能性通过以上的过程,在认证中心产生随机数nonce,将携带algorithm、nonce和realm的消息发送至終端之后,UE就可以根据H(Al)和cnonce利用认证算法计算Ktl ;在认证中心使用SIP Digest方式对UE进行认证之后,认证中心可以根据认证算法计算K。并存储。通过以上的方法,认证中心和UE可以根据认证过程交互的參数生成两者之间的共享密钥Ktl,认证中心可以根据是否存储有该共享密钥来判断是否已对该UE进行过认证。在认证中心对UE认证成功之后,为了保证UE和RP之间的通信安全,可以采用以下的处理方式在认证中心为0P,且认证中心认证成功的情况下,认证中心生成随机数noncel,根据noncel和认证中心与终端之间的第一共享密钥Ktl生成第二密钥K1 ;认证中心采用Ktl加密noncel和对RP的认证结果RP_Auth,得到KtlOioncel, RP_Auth),采用和RP之间的共享密钥Kr,i加密も和对终端的认证结果UE_Auth,得到Kr,i(K1; UE_Auth);认证中心向终端发送携带Ktl(noncel, RP_Auth)和rspauth參数值的2000K信息并将Kr, i (K1,UE_Auth)重定向到RP,或者,終端在认证中心将终端重定向到RP的重定向消息中获得K0(noncel, RP_Auth)、rspauth 參数值和 Kr, i (K1, UE_Auth)之后将 Kr, i (K1, UE_Auth)重定向到RP ;终端解密Ktl(noncel,RP_Auth),得到对RP的认证结果,利用和认证中心ー样的方法产生rspauth參数值,并与接收到的信息中的rspauth对比,来完成终端对网络的认证过程;网络认证成功后生成第二密钥K1 ;并且,RP解密Kr,i (KpUE.Auth),采用K1加密服务内容发送至終端;终端采用K1进行解密获得服务内容。以上的方法中,认证中心和UE之间、认证中心和RP之间的交互信息均采用各自对应的共享密钥进行加密,保证了认证中心和UE以及认证中心和RP之间的信息交互安全 ’另夕卜,对于UE的一次认证请求,产生ー个K1,以便UE和RP之间利用K1对交互的服务内容进行加密,防止非法截获用户数据,进ー步地提高了安全性。需要说明的是,以上的方法采用SIP Digest机制,不仅适用于非HCC的终端的认证,也可以适用于ncc终端的认证,并且,无需配置大量的GBA,降低了网络运营商部署GBA和嵌入ncc卡的成本。本实施例还提供了ー种单点登录系统,图2是根据本发明实施例的单点登录系统的结构框图,该系统包括UE 22,用于向RP 24发送OpenID认证请求;RP 24,用于完成OpenID机制并通过UE 22重定向RP和UE 22的认证请求到认证中心26,以及用于根据认 证中心26的认证结果为UE 22提供服务;认证中心26,用于使用SIP Digest方式对UE 22进行认证,将认证结果通过终端重定向到RP 24。优选地,认证中心26还用于根据RP身份标识对RP 24进行认证并保存认证結果。优选地,认证中心26还可以用于产生安全通信密钥,并将安全通信密钥通过UE22重定向到RP 24 ;RP 24还用于采用安全通信密钥加密服务内容并发送至UE 22 ;UE 22还用于产生安全通信密钥,采用安全通信密钥进行解密获得服务内容实施例2图7是根据本发明实施例的运营商作为OpenID Provider利用SIP Digest认证机制实现非nCC卡的MS終端对应用服务器的单点登录认证整体架构图,图6是根据实施例2的运营商作为OpenID Provider利用SIP Digest认证机制实现非UICC卡的IMS终端对应用服务器的单点登录认证流程图,,该实施例以图7所示架构为基础,结合图6描述了单点登录方法的流程,详述如下步骤I :UE终端向RP发出ー个OpenID认证请求,该请求中携带用户的OpenID标
识符信息。步骤2 RP对OpenID标识符进行标准化,同时根据该标识符RP获得OpenIDProvider地址以及发现OP终点URL,UE终端期望使用该URL完成认证,RP和OP之间通过关联过程,利用现有机制如DifTie-Hellman密钥交换协议等建立ー个共享密钥Kr,o ;RP重定向该用户OpenID认证请求和发送RP认证请求到OP地址。同时在该消息中包含RP身份信息和0penID2. O中标准參数信息内容。步骤3 RP重定向该用户OpenID认证请求和发送RP认证请求到OP地址。同时在该消息中包含RP身份信息和0penID2. O中标准參数信息内容。步骤4 OpenID认证请求被重定向到OpenID身份提供者OP的地址。该步骤后,OP建立用户身份标识与OpenID标识符信息之间的关联。步骤5 0P依据RP身份标识信息(RP_credential)对RP进行认证;同时依据与传递来的用户OpenID标识符信息OpenID identifier的映射关联终端标识信息U_credential来判断OP中是否存在与其对应的UE与OP共享密钥Kc^若存在该共享密钥则直接跳转到步骤12进行执行,否则继续执行下步步骤。该步骤中OP建立了 OpenIDidentifier和終端用户身份标识符之间的相互关联映射。
步骤6 :0P依据上步骤与OpenID identifier相关联的用户身份标识符(U_credential)到 HSS 中查找并下载对应的 SIP Digest Authentication Vector (SD-AV)和用户配置信息内容。其中包括U_credential、realm、qop、algorithm和H(Al),其中H(Al)是由U_credential,realm和password组成的一个哈希函数值。在多HSS环境下,OP可以通过询问SLF获得对应的储存用户信息的HSS地址,找到该对应的HSS。步骤7 :0P产生ー个随机数nonce,并且把从HSS下载的H(Al)与该nonce—起存储起来。步骤8:0P向UE发送ー个401未认证挑战消息,该信息中包含U_credential、realm、qop、algorithm 矛ロ nonce。步骤9:产生一个随机数 cnonce。利用 U_credential, realm 和 password 产生H(Al);再利用H (Al)、cnonce等产生UE和OP共享密钥も。通过ー个单向哈希函数F计算response 值。response = F (H(Al),cnonce, nonce, qop, nonce-count)。终立而用 cnonce 进 行网络认证和避免” chosenplaintext”攻击。nonce-count是计数器,用户姆使用同一个nonce 计算一次 response,nonce-count 将增カロ,利用 nonce-count 也參与 response 计算,降低重放攻击的可能性。步骤10 :UE对步骤8中的挑战信息向OP发送ー个响应response,该响应信息中包含 cnonce、nonce、response、realm、U_credentia丄、qop、algorithm、Digest—url 矛ロnonce-countο步骤11 :利用储存的nonce值对响应消息中的nonce值进行检验,若检验正确,则OP利用收到的有关參数cnonce、nonce-count、qop等和原储存的nonce及H(Al)计算Xresponse,将计算的Xresponse与收到的response值进行比较,若两者比较结果相同则认证用户通过,否则UE用户终端认证失败;认证终端成功后,认证中心OP利用SIP Digest机制中方法计算rspauth參数值;用H(Al)、cnonce等产生UE和OP共享密钥K。。步骤12 0P依据对终端的认证结果产生对UE的认证断言信息UE_Assert ;0P再产生一个随机数noncel ;然后利用Kt^noncel等产生密钥K1 ;共享密钥Ktl对noncel进行加密操作产生Kci (noncel);用 RP 和 OP 共享密钥加密 K1 和 UE_Assert 产生 Kr,o (K1, UE_Assert)。步骤13 0P向UE终端发送2000K信息,包含Ktl (noncel)、rspauth參数值和密钥生命周期等信息;同时OP重定向UE终端到RP,该消息携帯Kr,o (K1, UE_Assert)。或者OP发送重定向UE到RP消息,该消息中携带K0 (noncel)、Kr, o (K1, UE_Assert)、rspauth參数值和密钥生命周期等信息。步骤14 :UE终端解密K。(noncel),取得noncel值;同时终端UE利用和IdP相同的机制计算产生rspauth參数值,并且与收到的rspauth參数值进行对比,两者相同则完成終端对网络的成功认证过程;网络认证成功后再利用IVnoncel等产生密钥も。步骤15 :0P发出的重定向消息被重定向到RP,该消息中携带Kr,o (K1, UE_Assert)。步骤16 :RP收到该消息后,利用共享密钥解密Kr,ο (KpUE.AsserthRP获得OP对UE终端的断言结果UE_Assert和密钥I。步骤17 RP核实UE_Assert断言之后,RP产生UE的授权信息UE_Author ;并且用密钥K1对该授权信息进行加密产生K1 (UE_Author)。
步骤18 RP向UE通知授权信息内容,携带信息K1 (UE_Author)。步骤19 :UE利用密钥K1是否能解密K1(UE-Author)来满足其是否可以获得请求服务。其中步骤17、18和19为具体应用层步骤,为可选步骤。上述步骤中1-19中任一歩骤失败,则整个认证过程停止继续。若该IMS終端UE获得到请求服务后,再请求别的应用服务器时,在该IMS終端用户UE认证请求中携带用户OpenID标识符信息OpenID identifier时,OP通过该用户OpenID标识符信息OpenID identifier映射关联的终端标识信息查找对应的Ktl密钥,获知该用户是否已经认证通过,若存在该Ktl密钥则用户不需要在进行SIP Digest认证,只需要 进行11步骤后操作;否则需要执行整个认证过程;当Ktl密钥生命周期到期,则其自动销毀,认证用户需要再次进行SIP Digest认证产生UE和OP共享密钥。在UE用户访问RP应用服务器中,若遭遇意外断网情况下,当UE还未完成UE认证过程,则若网络恢复后UE要访问应用服务器则需要重新开始认证过程;当UE已经完成认证过程,若恢复网络用时未到达Ktl生命周期,则网络恢复后UE可以继续使用该Ktl进行后续操作,否则需要重新认证。在UE用户访问RP应用服务器后,若遭遇用户主动关闭注销UE或断电等特殊情況,则用户需要重新完成在MS内的注册等整个执行流程。综上所述,本发明实施例提供的方案能够支持对不具有的终端单点登录RP的认证,由于该方法不需要部署大量的GBA,且能够满足非nCC終端接入MS网络,因此降低了网络运营商部署GBA和嵌入nCC卡的成本,降低维护各种设备的消耗,并且可以通过SSO的方式访问MS网络相关的应用服务。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.ー种单点登录方法,其特征在于,包括 終端向应用服务器RP发送服务请求; 所述RP获取认证中心地址; 所述RP将自身的认证请求通过所述終端重定向到所述认证中心,或者,所述RP向所述終端返回用于指示所述终端向所述认证中心进行认证的响应; 所述终端向所述认证中心发送认证请求; 所述认证中心使用会话初始协议摘要认证SIP Digest方式对所述终端进行认证,将认证结果通过所述終端重定向到所述RP ; 在使用所述SIP Digest方式认证过程中,所述认证中心和所述终端两者利用相同的哈希值和随机数产生共享密钥; 所述RP根据所述认证结果为所述终端提供服务。
2.根据权利要求I所述的方法,其特征在于,在所述认证中心使用SIPDigest方式对所述终端进行认证之前,还包括 所述认证中心判断是否存在与所述终端之间的第一共享密钥Ktl,若不存在,则继续后续处理,若存在,则跳过所述认证中心使用SIP Digest方式对所述终端进行认证的步骤,直接将认证结果重定向到所述RP。
3.根据权利要求I所述的方法,其特征在于,还包括 所述RP获得所述认证中心的地址,将自身认证请求重定向到所述认证中心或所述RP向所述终端返回用于指示所述终端向所述认证中心进行认证的响应,其中,所述RP认证请求携带RP身份标识RP_credential ;所述终端跟随重定向消息或发送认证消息到所述认证中心; 所述认证中心根据所述RP身份标识对所述RP进行认证并保存认证結果。
4.根据权利要求I所述的方法,其特征在于,所述认证中心使用SIPDigest方式对所述终端进行认证包括 所述认证中心根据对应于所述终端的SIP Digest认证向量,对所述终端进行认证。
5.根据权利要求4所述的方法,其特征在于,所述认证中心根据所述用户身份标识从归属用户寄存器HSS获取对应于所述终端的所述SIP Digest认证向量并存储。
6.根据权利要求4所述的方法,其特征在于,所述SIPDigest认证向量至少包括以下内容用户身份标识、认证算法algorithm、质量保障、作用域realm、ー个哈希值H(Al),其中,H(Al)由所述用户身份标识、所述realm和ロ令password组成。
7.根据权利要求6所述的方法,其特征在于,所述认证中心使用SIPDigest方式对所述终端进行认证包括 所述认证中心产生随机数nonce,将携带所述algorithm、所述nonce和所述realm的消息发送至所述终端; 所述终端产生随机数cnonce,根据所述nonce、所述cnonce和由所述realm、所述用户身份标识和输入的password产生的哈希值H(Al),通过所述algorithm生成响应值response,向所述认证中心返回响应消息,其中,所述响应消息携带所述cnonce、所述nonce、所述 realm、所述 response 和所述 algorithm ; 所述认证中心采用所述algor i thm根据所述存储的H (Al)、所述存储的nonce和所述接收到的cnonce计算校验响应值Xresponse,将接收到的所述response和所述Xresponse进行比较,若相同则认证成功,否则认证失败;计算SIP Digest认证机制的rspauth參数值。
8.根据权利要求7所述的方法,其特征在干, 在所述认证中心产生随机数nonce,将携带所述algorithm、所述nonce和所述realm的消息发送至所述终端之后,还包括所述终端根据所述产生的H(Al)和所述cnonce计算所述认证中心与所述终端之间的第一共享密钥Ktl ; 在所述认证中心使用SIP Digest方式对所述终端进行认证之后,还包括所述认证中心根据所述存储的H(Al)和所述cnonce计算所述K。并存储,计算SIP Digest认证机制的rspauth參数值。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述用户身份标识为开放式身份标识OpenID,所述认证中心为OpenID提供者OP ;或者,所述用户身份标识为输入到所述终端的身份标识或所述终端在因特网协议多媒体子系统MS系统上分配获得的身份标识,所述认证中心为单点登录认证中心IdP。
10.根据权利要求9所述的方法,其特征在于,在所述用户身份标识为输入到所述终端的身份标识或所述终端在頂S系统上分配获得的身份标识,所述认证中心为所述IdP,且所述认证中心认证成功的情况下,还包括 所述认证中心生成随机数noncel,根据所述noncel和所述认证中心与所述终端之间的第一共享密钥Ktl生成第二密钥K1 ; 所述认证中心采用所述Ktl加密所述noncel和对所述RP的认证结果RP_Auth等信息内容,得到Ktl (noncel,RP_Auth),采用和所述RP之间的共享密钥Kr,i加密所述K1和对所述终端的认证结果UE_Auth,得到Kr, i (K1, UE_Auth); 所述终端在所述认证中心将所述終端重定向到所述RP的重定向消息中获得所述K0(noncel, RP_Auth), rspauth 參数值和 Kr, i (K1, UE_Auth)之后将 Kr, i (K1, UE_Auth)重定向到所述RP ; 所述终端解密所述Ktl(noncel,RP_Auth),得到对所述RP的认证结果,所述终端利用所述认证中心相同的方式产生rspauth參数值,对比产生的rspauth和解密获得rspauth值,所述终端完成网络的认证,网络认证成功后所述终端生成第二密钥K1 ;并且,所述RP解密所述Kr,i (K1, UE_Auth),采用所述K1加密服务内容发送至所述终端; 所述终端采用K1进行解密获得所述服务内容。
11.根据权利要求9所述的方法,其特征在于,在所述用户身份标识为OpenID,所述认证中心为0P,且所述认证中心认证成功的情况下,还包括 所述认证中心生成随机数noncel,根据所述noncel和所述认证中心与所述终端之间的第一共享密钥Ktl生成第二密钥K1 ; 所述认证中心采用所述Ktl加密所述noncel和对所述RP的认证断言RP_Assert等信息内容,得到Ktl (noncel,RP_Assert),采用和所述RP之间的共享密钥Kr,ο加密所述K1和对所述终端的认证断言UE_Assert,得到Kr, o (K1, UE_Assert); 所述认证中心向所述终端发送携带Ktl(nonceI, RP_Auth)和rspauth參数值的2000K信息并将Kr,ο (K1, UE_Auth)重定向到所述RP,或者,所述终端在所述认证中心将所述終端重定向到所述RP的重定向消息中获得所述Ktl (noncel, RP_Assert)、rspauth參数值和Kr,o (K1, UE_Assert)之后将 Kr, o (K1, UE_Assert)重定向到所述 RP ; 所述终端解密所述Ktl(noncel,RP_ASSert),得到对所述RP的认证断言,并从消息中获得rspauth參数值,所述终端利用所述认证中心相同的方式产生rspauth參数值,对比产生的rspauth和解密获得rspauth值,所述终端完成网络的认证,网络认证成功后所述终端生成第二密钥K1 ;并且,所述RP解密所述Kr,0(1,UE_Assert),采用所述K1加密服务内容发送至所述终端; 所述终端采用K1进行解密获得所述服务内容。
12.根据权利要求9所述的方法,其特征在于,在所述用户身份标识为OpenID,所述认证中心为0P,且所述认证中心认证成功的情况下,还包括 所述认证中心生成随机数noncel,根据所述noncel和所述认证中心与所述终端之间的第一共享密钥Ktl生成第二密钥K1 ; 所述认证中心采用所述Kci加密所述noncel等信息内容,得到Kci (noncel),采用和所述RP之间的共享密钥Kr,ο加密所述K1和对所述终端的认证断言UE_Assert,得到Kr,o (K1,UE_Assert); 所述认证中心向所述终端发送携带K。(noncel)和rspauth參数值的2000K信息并将Kr,ο (K1, UE_Auth)重定向到所述RP,或者,所述终端在所述认证中心将所述終端重定向到所述RP的重定向消息中获得所述Ktl (noncel)、rspauth參数值和Kr, o (K1, UE_Assert)之后将Kr, ο (K1, UE_Assert)重定向到所述RP ; 所述终端解密所述K。(noncel),得到noncel,并从消息中获得rspauth參数值,所述终端利用所述认证中心相同的方式产生rspauth參数值,对比产生的rspauth和解密获得rspauth值,所述终端完成网络的认证,网络认证成功后所述终端生成第二密钥K1 ;并且,所述RP解密所述Kr,ο (K1, UE_Assert),采用所述K1加密服务内容发送至所述终端; 所述终端采用K1进行解密获得所述服务内容。
13.一种单点登录系统,其特征在于,包括 終端,用于向应用服务器RP发送服务请求,向所述认证中心发送认证请求,和所述认证中心利用相同的哈希值和随机数产生共享密钥; 所述RP用于获取所述认证中心地址将自身的认证请求通过所述終端重定向到所述认证中心,或者,所述RP用于获取所述认证中心地址向所述终端返回用于指示所述终端向所述认证中心进行认证的响应; 以及用于根据所述认证中心的认证结果为所述终端提供服务; 所述认证中心,用于使用会话初始协议摘要认证SIP Digest方式对所述終端进行认证,将认证结果通过所述終端重定向到所述RP,和所述终端利用相同的哈希值和随机数产生共享密钥。
14.根据权利要求13所述的系统,其特征在于,所述认证中心还用于根据RP身份标识对所述RP进行认证并保存认证結果。
15.根据权利要求13所述的系统,其特征在于,所述认证中心还用于产生安全通信密钥,并将所述安全通信密钥通过所述終端重定向到所述RP ;所述RP还用于采用所述安全通信密钥加密服务内容并发送至所述终端;所述终端还用于产生所述安全通信密钥,采用所述安全通信密钥进行解密获得所述服务内容。
全文摘要
本发明提供了单点登录方法及系统,该方法包括终端向RP发送服务请求,RP将认证请求重定向到认证中心;认证中心使用SIP Digest方式对终端进行认证,将认证结果通过终端重定向到RP;RP根据认证结果为终端提供服务。本发明减少了运营商部署GBA所需要的资源,同时能够满足非UICC终端接入IMS网络,并且可以通过SSO的方式访问IMS网络相关的应用服务。
文档编号H04L9/08GK102869010SQ20111018571
公开日2013年1月9日 申请日期2011年7月4日 优先权日2011年7月4日
发明者张孟旺, 田甜 申请人:中兴通讯股份有限公司