一种用户与应用服务器协商共享密钥的方法

文档序号:7619326阅读:102来源:国知局
专利名称:一种用户与应用服务器协商共享密钥的方法
技术领域
本发明涉及一种通信领域内用户与应用服务器之间的协商共享密钥的方法,尤其涉及第三代移动通信系统中,为遗留的2G用户提供一种2G用户和应用服务器之间的协商共享密钥的方法。
背景技术
目前,人们对移动通信的需求已不再满足于电话和消息业务,大量多媒体应用随着Internet的迅猛发展而涌现出来。这些应用的认证方法大都要求用户和应用服务器之间预先共享一个密钥。3GPP提出了通用自引导架构(GBA)的方法,这种方法提供了一种在3G用户和应用服务器之间协商预共享密钥的方法。GBA方法简要描述如下(1)用户首先向应用服务器(NAF)发起访问请求,应用服务器要求用户首先和3G网络中的一个自引导服务器(BSF)协商密钥。
(2)用户向自引导服务器发起请求,通过AKA的双向认证机制协商出密钥Ks。
(3)用户根据一些参数计算出密钥Ks_NAF,向应用服务器再次发起访问请求。
(4)应用服务器向相应的自引导服务器发起请求,自引导服务器将相应的密钥Ks_NAF发给应用服务器,这样,用户和应用服务器之间就共享了密钥Ks_NAF。
但是,GBA仅能支持3G用户,即能够运行AKA认证机制的用户。而目前有超过十亿的用尸是2G用户,其使用的SIM卡无法支持AKA认证机制,也就无法使用GBA的方法与应用服务器协商密钥。而且,将这些用户使用SIM升级到支持AKA认证机制的UICC卡将是一个长期的过程。因此,在相当长的一段时间内,会出现2G用户和3G用户共存的情况。因此,需要提供一种支持2G用户的协商密钥的方法,以使得在2G用户和3G用户共存的期间内,2G用户也可以访问基于GBA的应用。
2G用户使用SIM来进行认证,SIM仅能实现单向认证。单向认证缺乏用户对网络的认证,因此将导致大量的“伪网络”攻击。这是SIM认证的一个严重缺陷,在考虑支持2G用户的密钥协商方法时,必须能够实现用户和网络之间的双向认证。

发明内容
为了克服上述技术的不足,本发明提出一种用户与应用服务器协商共享密钥的方法,使得2G用户与应用服务器之间也能够协商预共享密钥方法。
本发明的基本思想是对自引导服务器进行升级,使其可以支持2G用户的请求。为了实现用户对自引导服务器的认证,自引导服务器利用2G认证三元组中密钥Kc推导出可用于3G的密钥CK和IK,利用IK计算出MAC值。自引导服务器将MAC和RAND一起发给2G用户。2G用户根据RAND计算出Kc,并使用与自引导服务器推导CK和IK相同的方法,由Kc推导出密钥CK和IK,利用IK计算出XMAC值。通过比较接收到的MAC和XMAC来实现用户对网络的认证。
本发明的实现过程如下第一步用户向应用服务器发起接入请求;应用服务器根据用户发来的信息,判断应用服务器是否有有效的与用户共享的预共享密钥;如果有,则不需要执行后续步骤来协商共享密钥;如果没有,则应用服务器向用户发送响应,要求用户与自引导服务器协商共享密钥;第二步用户接收到应用服务器发来的响应后,向自引导服务器发送协商密钥请求,请求消息中包含用户身份;第三步自引导服务器向用户归属环境发送请求,要求获得用户的认证向量,请求消息中包含用户身份;第四步归属环境根据用户身份,生成合适的认证向量,即3G认证向量五元组或者2G认证向量三元组,归属环境将认证向量发给自引导服务器;第五步自引导服务器根据从归属环境接收到的信息,如认证向量类型、用户相关信息等判断用户为3G用户或2G用户。如果用户为3G用户,则按照GBA的方法进行后续的密钥协商过程;如果用户为2G用户,执行第六步;第六步自引导服务器根据认证向量三元组中的加密密钥Kc推导出可用于3G用户使用的密钥CK和IK;自引导服务器利用IK和至少包含RAND的一些输入参数计算出MAC;第七步自引导服务器MAC和第六步中所述的输入参数发送给用户,以使得用户接收到此条消息后,能够获得自引导服务器计算MAC的所有输入参数;第八步用户利用RAND计算出RES和Kc,用户使用与自引导服务器推导CK和IK相同的方法推导出CK和IK;利用IK以及与自引导服务器计算MAC相同的参数计算出XMAC;用户比较MAC和XMAC,如果两者不同,则认证失败,用户终止通信;如果两者相同,则用户对自引导服务器的认证成功;用户利用CK和IK推导得到密钥Ks;第九步自引导服务器利用认证向量三元组中的SRES来完成对用户的认证;如果认证成功,则自引导服务器使用和用户推导Ks相同的方法,由CK和IK得到Ks;自引导服务器发送响应给用户说明自引导过程成功,其中应该包含用于标识密钥Ks的标识符和密钥Ks的生命期;第十步用户由Ks和其他一些参数计算得到Ks_NAF,并向应用服务器再次发送请求,其中包含标识Ks的标识符;应用服务器根据此标识符向自引导服务器发送请求,自引导服务器计算出相应的密钥Ks_NAF并发送给应用服务器,这样用户和应用服务器就共享了密钥Ks_NAF,协商预共享密钥过程结束。
优选地,第六步中根据认证向量三元组中的加密密钥Kc推导CK和IK的方法为CK=Kc‖Kc,IK=(Kc1 XOR Kc2)‖Kc‖(Kc1 XOR Kc2),其中,Kc1为Kc的前半部分,Kc2为Kc的后半部分。
优选地,第八步中可以采用与SIM认证相同的方式利用RAND计算出RES和Kc。
优选地,第九步中自引导服务器认证用户可以采用以下方式用户直接将RES发给自引导服务器,自引导服务器比较RES和SRES的区别实现对用户的认证。
优选地,第九步中自引导服务器认证用户可以采用以下方式用户利用RES计算消息校验码,将消息校验码发给自引导服务器,自引导服务器利用认证向量三元组中的SRES验证用户发送消息的完整性来完成对用户的认证。
优选地,所述利用CK和IK推导密钥Ks可以采用以下方式Ks通过将CK和IK串接得到,即Ks=CK‖IK。
优选地,为了防止重放攻击,在第七步中自引导服务器发送的消息中包含抗重放机制的参数来实现抗重放保护。
采用本发明可使2G用户和3G用户都可以与自引导服务器协商预共享密钥,且能够实现用户和网络之间的双向认证。


图1是本发明的方法与应用服务器协商预共享密钥的流程图。
具体实施例方式
下面结合附图对技术方案的实施作进一步的详细描述1、用户设各向应用服务器发起接入请求,此时,用户与应用服务器并没有共享一个有效的预共享密钥。
2、应用服务器向用户发送响应,要求用户与自引导服务器执行自引导过程。
3、用户设备向自引导服务器发送协商密钥请求,其中包含用户的身份。
4、自引导服务器根据用户的身份,向归属环境请求认证向量。
5、归属环境根据用户的身份,此用户为一2G用户,生成相应的认证向量是GSM三元组(RAND,SRES,Kc)。
6、归属环境将认证向量发给自引导服务器。
7、自引导服务器由Kc得到CK和IK,其中CK=Kc‖Kc,IK=(Kc1 XOR Kc2)‖Kc‖(Kc1 XOR Kc2),Kc1为Kc的前半部分,Kc2为Kc的后半部分。自引导服务器利用IK和RAND计算MAC值。
8、自引导服务器向用户设备发送认证质询,其中包含认证三元组中的RAND和计算得到的MAC。
9、用户设备将RAND发送给SIM。和GSM中的认证一样,SIM将根据RAND计算得到Kc和RES,Kc和RES被发送给用户设备。
10、用户设备使用与自引导服务器推导CK和IK相同的方法推导得到CK和IKcK=Kc‖Kc,IK=(Kc1 XOR Kc2)‖Kc‖(Kc1 XOR Kc2),Kc1为Kc的前半部分,Kc2为Kc的后半部分。用户设备利用IK和接收到的RAND,采用和自引导服务器计算MAC相同的方法计算XMAC。用户设备比较XMAC和MAC,如果两者相同,则用户对网络的认证成功。
11、用户对网络认证成功后,向自引导服务器发送认证响应,利用RES作为和网络共享的密钥计算出此响应的校验值,将校验值包含在认证响应消息中发送给自引导服务器。
12、自引导服务器利用认证三元组中的SRES对认证响应消息进行认证。认证成功后由CK和IK得到Ks。Ks=CK‖IK。
13、自引导服务器发送认证成功指示消息给用户设备,其中包含标识密钥Ks的标识符和密钥生命期信息。用户设备由CK和IK得到Ks,即Ks=CK‖IK。
14、用户设备由Ks得到Ks_NAF。
15、用户设备向应用服务器再次发送接入请求,其中包含标识密钥Ks的标识符。
16、应用服务器向自引导服务器请求对应的密钥。其中包含标识密钥Ks的标识符。
17、自引导服务器获得对应的Ks,生成Ks_NAF。生成Ks_NAF的方法和用户设备生成Ks_NAF的方法相同。
18、自引导服务器将Ks_NAF发送给应用服务器。
19、通过以上步骤,用户设备和应用服务器之间共享了密钥Ks_NAF。
权利要求
1.一种用户与应用服务器协商共享密钥的方法,其特征在于,所述方法包括以下处理过程第一步用户向应用服务器发起接入请求;应用服务器根据用户发来的信息,判断应用服务器是否有有效的与用户共享的预共享密钥;如果有,则不需要执行后续步骤来协商共享密钥;如果没有,则应用服务器向用户发送响应,要求用户与自引导服务器协商共享密钥;第二步用户接收到应用服务器发来的响应后,向自引导服务器发送协商密钥请求,请求消息中包含用户身份;第三步自引导服务器向用户归属环境发送请求,要求获得用户的认证向量,请求消息中包含用户身份;第四步归属环境根据用户身份,生成合适的认证向量,即3G认证向量五元组或者2G认证向量三元组,归属环境将认证向量发给自引导服务器;第五步自引导服务器根据从归属环境接收到的信息,如认证向量类型、用户相关信息等判断用户为3G用户或2G用户。如果用户为3G用户,则按照GBA的方法进行后续的密钥协商过程;如果用户为2G用户,执行第六步;第六步自引导服务器根据认证向量三元组中的加密密钥Kc推导出可用于3G用户使用的密钥CK和IK;自引导服务器利用IK和至少包含RAND的一些输入参数计算出MAC;第七步自引导服务器MAC和第六步中所述的输入参数发送给用户,以使得用户接收到此条消息后,能够获得自引导服务器计算MAC的所有输入参数;第八步用户利用RAND计算出RES和Kc,用户使用与自引导服务器推导CK和IK相同的方法推导出CK和IK;利用IK以及与自引导服务器计算MAC相同的参数计算出XMAC;用户比较MAC和XMAC,如果两者不同,则认证失败,用户终止通信;如果两者相同,则用户对自引导服务器的认证成功;用户利用CK和IK推导得到密钥Ks;第九步自引导服务器利用认证向量三元组中的SRES来完成对用户的认证;如果认证成功,则自引导服务器使用和用户推导Ks相同的方法,由CK和IK得到Ks;自引导服务器发送响应给用户说明自引导过程成功,其中应该包含用于标识密钥Ks的标识符和密钥Ks的生命期;第十步用户由Ks和其他一些参数计算得到Ks_NAF,并向应用服务器再次发送请求,其中包含标识Ks的标识符;应用服务器根据此标识符向自引导服务器发送请求,自引导服务器计算出相应的密钥Ks_NAF并发送给应用服务器,这样用户和应用服务器就共享了密钥Ks_NAF,协商预共享密钥过程结束。
2.根据权利要求1所述的方法,其特征在于,所述第六步中根据认证向量三元组中的加密密钥Kc推导CK和IK的方法为CK=Kc‖Kc,IK=(Kc1 XOR Kc2)‖Kc‖(Kc1XOR Kc2),其中,Kc1为Kc的前半部分,Kc2为Kc的后半部分。
3.根据权利要求1所述的方法,其特征在于,所述第八步中可以采用与SIM认证相同的方式利用RAND计算出RES和Kc。
4.根据权利要求1所述的方法,其特征在于,所述第九步中自引导服务器认证用户可以采用以下方式用户直接将RES发给自引导服务器,自引导服务器比较RES和SRES的区别实现对用户的认证。
5.根据权利要求1所述的方法,其特征在于,所述第九步中自引导服务器认证用户可以采用以下方式用户利用RES计算消息校验码,将消息校验码发给自引导服务器,自引导服务器利用认证向量三元组中的SRES验证用户发送消息的完整性来完成对用户的认证。
6.根据权利要求1或2所述的方法,其特征在于,所述利用CK和IK推导密钥Ks可以采用以下方式Ks通过将CK和IK串接得到,即Ks=CK‖IK。
7.根据权利要求1所述的方法,其特征在于,为了防止重放攻击,在第七步中自引导服务器发送的消息中包含抗重放机制的参数来实现抗重放保护。
全文摘要
本发明公开了一种用户与应用服务器协商共享密钥的方法,其特征在于,自引导服务器利用2G认证三元组中密钥Kc推导出可用于3G的密钥CK和IK,利用IK计算出MAC值,自引导服务器将MAC和RAND一起发给2G用户;2G用户根据RAND计算出Kc,并使用与自引导服务器推导CK和IK相同的方法,由Kc推导出密钥CK和IK,利用IK计算出XMAC值。通过比较接收到的MAC和XMAC来实现用户对网络的认证。采用本发明可使2G用户和3G用户都可以与自引导服务器协商预共享密钥,且能够实现用户和网络之间的双向认证。
文档编号H04L9/12GK1697373SQ20051007682
公开日2005年11月16日 申请日期2005年6月17日 优先权日2005年6月17日
发明者陈璟, 赵洁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1