一种ak上下文的处理方法

文档序号:7954715阅读:275来源:国知局
专利名称:一种ak上下文的处理方法
技术领域
本发明属于无线通信技术领域,特别涉及一种AK上下文的处理方法。
背景技术
根据802.16协议,终端要与基站通信,必须建立相同的授权密钥上下文,即AK上下文。AK上下文包括授权密钥(AK)、授权密钥标识(AKID)、授权密钥序列号(AK Sequence Number)、授权密钥生存期(AK Lifetime)、对偶主密钥序列号(PMK Sequence Number)、上行链路消息完整性保护密钥(HMAC/CMAC_KEY_U,简称PN_U)、上行链路消息防止重放攻击包序列号(HMAC/CMAC_PN_U)、下行链路消息完整性保护密钥(HMAC/CMAC_KEY_D,简称PN_D)、下行链路消息防止重放攻击包序列号(HMAC/CMAC_PN_D)、密钥加密密钥(KEK)、完整性加密密钥(EIK)。在本文中“PN”为HMAC/CMAC_PN_U和HMAC/CMAC_PN_D的统称。其中,HMAC/CMAC_KEY_U、HMAC/CMAC_KEY_D由基站根据AK、终端MAC地址、基站标识计算得到,分别用于对上下行链路消息提供完整性保护。PN_U和PN_D是两个32位计数器,在AK上下文建立时,这两个计数器的值都为0,之后每使用HMAC/CMAC_KEY_U对上行消息提供一次完整性保护,终端就把PN_U的值增加1;每使用HMAC/CMAC_KEY_D对下行消息提供一次完整性保护,基站就把PN_D的值增加1。如果PN_U或PN_D的数值空间耗尽(即这两个值中任一个到达2^32-1),或是AK上下文中AK生存期到期,都意味着该AK生存期结束,在此之前应当申请新的AK。
AK上下文的建立过程如图1所示,具体步骤描述如下(1)终端与基站建立好通信链路;(2)终端与核心网(CSN)的认证、授权、计费(AAA)服务器通过可扩展认证协议(EAP)认证方式,在两侧建立起共享的主会话密钥(MSK);(3)AAA服务器把MSK传递给终端所在接入服务网络(ASN)内的鉴权器;(4.1)终端从MSK产生PMK,从PMK产生AK,继而生成全部AK上下文;(4.2)鉴权器从MSK产生PMK,从PMK产生部分AK上下文,包括AK,AK标识,AK序列号,AK生存期,PMK序列号,EIK;(5)鉴权器把已产生的部分AK上下文发送给基站;(6)基站根据AK产生剩余部分AK上下文,包括HMAC/CMAC_KEY_U,PN_U,HMAC/CMAC_KEY_D,PN_D,KEK;
(7)终端和基站用建立的AK上下文保护后续通信。
当终端切换到目标基站后,不一定重鉴权,但AK需要更新。如果此时AK上下文中的PN_U和PN_D重新计数的话,当终端两次进入同一基站时,就可能受到重放攻击。所谓重放攻击是攻击者在通信双方(A、B)的某次交互过程中截获A(或B)发送的数据,在以后的某个合适的时机,向B(或A)重新发送它截获的数据,如果数据中没有包含足够的信息使得B(或A)能判断数据是第一次发起的还是重放的数据,攻击者就能冒充通信中的一方去欺骗另一方,从而达到攻击网络的目的。
为了保证在切换时,不受到重放攻击,一种做法是在终端和基站两侧缓存AK上下文。终端每到一个基站,双方就各自创建一个AK上下文,即使终端离开后也不删除。基站侧相同,每有一个终端接入,就为它创建一个AK上下文。这样当终端在基站之间移动时,不同的基站使用不同的AK上下文,可以避免重放攻击。
该技术的缺点是在终端和网络侧需要缓存的AK上下文数量难以确定,且可能巨大,给实现带来了困难。主要存在以下问题问题1需要缓存的AK上下文数量难以确定。在终端侧,要缓存在AK生命周期(通常是若干天)内经过的所有BS的AK上下文,可能数十上百个。而BS侧需要缓存所有曾经到过这里的MS的AK上下文,数目就更难定了,可能成千上万。
问题2当任何一个缓存的AK丢失时,处理起来很麻烦。例如假设终端在BS1,BS2缓存的AK丢失时,系统需要在BS1做重认证,因此BS1需要知道BS2丢失了AK。而实际上甚至BS2自己都可能不知道AK曾经丢过,比如BS2重启过,等等。
问题3如BS2丢失了缓存的AK,而终端回到BS2时,切换将不成功。
问题4如果终端丢失了BS2的AK,而回到BS2时,只能重新发起初始认证,降低了系统的安全性。

发明内容
本发明的目的是提供一种AK上下文的处理方法,该方法不需要终端和网络缓存AK上下文。
为达上述目的,本发明采用如下技术方案一种AK上下文的处理方法,基站共享终端的AK上下文,当终端在不同的基站之间移动时,PN_D值和PN_U值保持上升;具体包括以下步骤首先,在切换时,目标基站从服务基站获得终端的PN_U值,用于检验来自终端的RNG_REQ是否合法;
其次,终端保存着PN_U和PN_D,前者表示下一个上行消息将要使用的PN_U的最小值,后者表示下一个下行消息中出现的PN_D的最小合法值。在终端向目标基站发第一个消息RNG_REQ(802.16系统中终端在切换时发给基站的第一条消息)时,如果PN_D大于PN_U,则需要先让PN_U大于等于PN_D,然后再发RNG_REQ;最后,目标基站收到终端的第一个消息RNG_REQ后,先用来自于服务基站的PN_U做消息检验,通过后,把本地的PN_D置为收到的PN_U。
其中,目标基站从服务基站获得终端PN_U值的方法可采用以下三种方式1.在切换准备阶段获得服务基站在该阶段给所有目标基站发PN_U值。切换准备阶段可以由终端通过切换请求(MOB_MSHO_REQ)消息触发,也可以由服务基站自行发起。
2.在切换实施阶段获得服务基站在收到终端的切换指示(MOB_MSHO_IND)后,给目标基站发PN_U值。
3.如果目标基站事先没有收到PN_U值,则在收到终端的RNG_REQ后,需要向服务基站发消息请求获得PN_U,服务基站应在响应消息中把PN_U告诉目标基站。
在以上三种方案中,服务基站和目标基站之间都不一定有可直达的路径,而可能需要通过中间网元的处理和转发。
本发明技术方案简单可行,该方法不需要终端和网络缓存AK上下文。避免了AK缓存方案存在的实现困难。便于系统切换,提高了系统的安全性。


图1为现有技术中AK上下文建立过程;图2为本发明方法的实施例。
具体实施例方式
以下结合附图及实施例,进一步说明本发明。
如图2所示,一种AK上下文的处理方法,基站共享终端的AK上下文,当终端在不同的基站之间移动时,PN_D值和PN_U值保持上升。当PN值到极限时进行重认证,更新AK,并对PN值重新计数,其中,目标基站从服务基站获得终端PN_U值的方法可采用以下三种方式1.在切换准备阶段获得服务基站在该阶段给所有目标基站发PN_U值。切换准备阶段可以由终端通过切换请求(MOB_MSHO_REQ)消息触发,也可以由服务基站自行发起。
2.在切换实施阶段获得服务基站在收到终端的切换指示(MOB_MSHO_IND)后,给目标基站发PN_U值。
3.如果目标基站事先没有收到PN_U值,则在收到终端的RNG_REQ后,需要向服务基站发消息请求获得PN_U,服务基站应在响应消息中把PN_U告诉目标基站。
在实施例中,PN_U的值在切换实施阶段获得,服务基站(正在为终端提供服务的基站)和目标基站(切换后需要为终端提供服务的基站,可能有多个候选)之间没有直达的路,同属于一个接入服务网网关(ASN GW)控制。由于切换准备阶段为现有技术,图2中忽略了切换准备阶段的过程。
1.开始时,终端和服务基站通信,双方的PN_U和PN_D是一致的,假设分别为11和20。
2.终端向服务基站发切换请求(MOB_MSHO_IND),消息中的PN_U为11,发出该消息后,终端把本地的PN_U改为12。服务基站在收到MOB_MSHO_IND,并确认有效后,也把本地的PN_U改为12。然后基站向ASN GW发切换确认(HO_CONFIRM),消息中至少携带PN_U值。
3.ASN GW把HO_CONFIRM发到目标基站,于是目标基站就得到了PN_U的值,为12。
4.终端要在目标基站接入,于是它先判断PN_U和PN_D的值,发现PN_U<PN_D,于是把PN_U的值改为和PN_D相等,为20。然后终端发出RNG_REQ(这是802.16系统中终端在切换时发给基站的第一条消息)给目标基站,消息中的PN_U为20,发出该消息后,终端把本地的PN_U改为21。
5.目标基站收到来自终端的RNG_REQ后,发现消息中的PN_U比本地保存的大,所以认为消息合法。目标基站把本地的PN_D置为收到的PN_U,把本地的PN_U置为收到的PN_U+1,此时本地的PN_U和PN_D分别为20和21。
6.目标基站向终端返回RNG_RSP(对上述RNG_REQ消息的响应),消息中的PN_D为20,发出该消息后,目标基站把本地的PN_D改为21。终端收到RNG_RSP,并确认有效后,也把本地的PN_D改为21。
7.在后续的过程中,有关PN_D和PN_U的变化完全按照802.16的规定进行。
权利要求
1.一种AK上下文的处理方法,其特征在于包括以下步骤1)基站共享终端的AK上下文,当终端在不同的基站之间移动时,PN_D值和PN_U保持上升;2)切换时,终端使用的PN_D值不小于本地保存的原有的PN_D值,基站使用的PN_D值不小于终端使用的PN_D值。
2.根据权利要求1所述的一种AK上下文的处理方法,其特征在于所述步骤2)具体包括以下步骤(1)在切换时,目标基站从服务基站获得终端的PN_U值;(2)终端保存PN_U值和PN_D值,在终端向目标基站发第一个RNG_REQ时,如果PN_D大于PN_U,则设定PN_U值大于等于PN_D值,然后再发RNG_REQ;(3)目标基站收到终端的第一个消息RNG_REQ后,用来自于服务基站的PN_U做消息检验,通过后,把本地的PN_D置为大于等于收到的PN_U值。
3.根据权利要求2所述的一种AK上下文的处理方法,其特征在于所述步骤(1)中,服务基站在切换准备阶段向所有目标基站发PN_U值,所述目标基站接收该PN_U值。
4.根据权利要求3所述的一种AK上下文的处理方法,其特征在于所述服务基站向所有目标基站发PN_U值通过来自终端的MOB_MSHO_REQ消息触发或者由服务基站自行发起。
5.根据权利要求2所述的一种AK上下文的处理方法,其特征在于所述步骤(1)中,在切换实施阶段服务基站在收到终端的MOB_MSHO_IND后,给目标基站发PN_U值。
6.根据权利要求2所述的一种AK上下文的处理方法,其特征在于所述步骤(1)中,当目标基站事先没有收到PN_U值时,在收到终端的RNG_REQ后,需要向服务基站发消息请求获得PN_U值,服务基站应在响应消息中把PN_U值告诉目标基站。
7.根据权利要求2所述的一种AK上下文的处理方法,其特征在于所述步骤(1)中,如果PN_D值大于PN_U值,则先让PN_U值等于PN_D值,所述步骤(3)中本地的PN_D置为等于收到的PN_U值。
全文摘要
一种AK上下文的处理方法,基站共享终端的AK上下文,当终端在不同的基站之间移动时,PN_D值和PN_U值保持上升;具体包括以下步骤首先,在切换时,目标基站需要从服务基站获得终端的PN_U值,用于检验来自终端的RNG_REQ是否合法;其次,终端保存着PN_U和PN_D,前者表示下一个上行消息将要使用的PN_U的最小值,后者表示下一个下行消息中出现的PN_D的最小合法值。在终端向目标基站发第一个消息RNG_REQ时,如果PN_D大于PN_U,则需要先让PN_U大于等于PN_D,然后再发RNG_REQ;最后,目标基站收到终端的第一个消息RNG_REQ后,先用来自于服务基站的PN_U做消息检验,通过后,把本地的PN_D置为收到的PN_U。本发明技术方案简单可行,避免了AK缓存方案存在的实现困难。
文档编号H04W36/24GK1852614SQ20061003389
公开日2006年10月25日 申请日期2006年2月20日 优先权日2006年2月20日
发明者林志斌, 单长虹 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1