专利名称:一种鉴权元组留用方法
技术领域:
本发明涉及通信安全技术,具体涉及一种防止非法攻击者冒充合法终端不断登陆网络对网络进行攻击的方法。
背景技术:
现有的第三代移动通信系统中,在移动终端中保存国际移动用户标识IMSI、鉴权密钥KI和序列号SQNMS,网络侧的HLR/AUC中针对该移动终端对应保存IMSI、KI和序列号SQNHE,以用于移动终端和网络相互鉴权。
3G通信系统的现有鉴权流程主要为HLR/AUC产生随机数RAND,根据随机数RAND和KI产生期望响应XRES、加密密钥CK、完整性密钥IK;根据随机数RAND、序列号SQNHE、鉴权密钥KI和鉴权管理域AMF产生出MAC-A,根据MAC-A,SQNHE、AK和AMF得到鉴权标记AUTN(Authentication Token)。由RAND和XRES、CK、IK和AUTN组成鉴权五元组,将该五元组发送给MSC/VLR保存。当然,实际当中,HLR/AUC是应MSC/VLR的请求才将产生的相应的一个或多个五元组发送给MSC/VLR的。鉴权时,MSC/VLR将对应五元组中RAND和AUTN发送给终端,终端根据自己保存的KI验证AUTN的一致性,如果一致性验证不通过,则向MSC/VLR返回鉴权失败信息;若一致性验证通过,则判断SQNHE是否属于可接受的范围若属于,则终端判断出对网络鉴权通过,终端向MSC/VLR返回终端自己产生的鉴权响应,并根据AUTN中的SQNHE更新SQNMS,MSC/VLR比较终端返回的鉴权响应和对应五元组中的XRES是否一致来判断终端的合法性;若判断出SQNHE不属于可接受范围,则根据SQNMS产生再同步标记AUTS(Resynchronisation Token),对网络侧MSC/VLR返回再同步请求或同步失败(Synchronisation failure)消息,同时附上产生的再同步标记AUTS,也即消息中包含AUTS。网络侧MSC/VLR接收到再同步标记AUTS时,将AUTS和对应五元组中的RAND发送给HLR/AUC,HLR/AUC根据对应保存的KI和接收到的RAND,判断AUTS的合法性,如果不合法,则HLR/AUC向MSC/VLR返回AUTS不合法信息;如果判断出AUTS合法,则HLR/AUC根据AUTS中的SQNMS更新SQNHE,并产生一个新的鉴权五元组发送给MSC/VLR,MSC/VLR接收到新的五元组后,删除对应的旧的五元组。
上述鉴权标记AUTN长16字节,包括以下内容1)SQNHE^AK,也即用AK加密了的SQNHE,其中序列号SQNHE与匿名密钥AK分别长6字节,SQNHE指保存在网络侧的SQN,以区别于保存在终端的SQNMS;当需要对SQNHE进行加密时,HLR/AUC根据RAND和KI产生AK,使用AK对SQNHE作异或运算,从而加密SQNHE;当不需要对SQNHE进行加密时,AK=0;2)鉴权管理域AMF长2字节。3)消息鉴权编码MAC-A长8字节;MAC-A用于验证RAND、SQNHE、AMF的数据完整性,用于终端对HLR/AUC进行鉴权。HLR/AUC根据RAND、SQNHE、KI和AMF计算出AUTN中的消息鉴权编码MAC-A。这样,由RAND、AUTN、XRES、CK、IK等组成了鉴权五元组。
由上可见,第三代移动通信系统中,鉴权流程可以充分保障终端和网络不会受到恶意欺骗,从而保障终端和网络的安全性。
现有的处理方式中,HLR/AUC在处理MSC/VLR请求鉴权元组的请求时,在将相应的鉴权元组发送给HLR/AUC后,会将这些发送给MSC/VLR的鉴权元组删去。这里就存在一个安全漏洞给攻击者。实际当中,当一个新用户登录网络时,如果终端上传的位置区编号非法,或者没有上传位置区编号,MSC/VLR会向HLR/AUC请求鉴权元组,例如非法用户A和B分别在两个位置区登录网络,并且上传的位置区编号非法,或者干脆就不上传位置区编号,这样,这两个位置区的MSC/VLR就会从HLR/AUC获取新的鉴权元组,并在该非法用户登录失败后,删除从HLR/AUC获取的相应鉴权元组。攻击者可以不断重复上述登陆网络的操作,这样不仅导致HLR/AUC频繁计算新的鉴权元组,从而增加HLR/AUC负荷,也会给攻击者获取大量的鉴权元组数据用于攻击鉴权密钥提供机会。当然,单独的一个非法用户C也可以在同一个地方不断地通过向网络侧发起位置更新请求来达到上述攻击网络的目的。
如果MSC/VLR在登录失败时不删除鉴权元组,则攻击者不断变换用户身份来登录网络将使得MSC/VLR数据库数据迅速膨胀,从而影响网络正常运行。实际当中,攻击者最有效的攻击手段也是通过不断变换用户身份登录网络来攻击网络的。
综上所述,如何应对非法攻击者通过上述手段对网络进行攻击,最大限度地降低攻击给网络所造成的损失,是一个值得解决的问题。
发明内容
有鉴于此,本发明目的是要降低非法用户通过不断登陆网络造成HLR/AUC不断计算鉴权元组而对网络造成的影响,使非法攻击对网络运行造成的损失最小。
为了实现上述目的本发明提供的技术方案为一种鉴权元组留用方法,用于HLR/AUC对发送给MSC/VLR的鉴权元组进行管理,在本方法中,HLR/AUC在将鉴权元组发送给MSC/VLR后,记录发送给MSC/VLR的这些鉴权元组的相关信息;所述方法至少包括以下步骤a.HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,判断是否存在对应终端用户的记录的发送给MSC/VLR的鉴权元组的相关信息,如果存在,则执行步骤b,否则直接执行步骤c;b.HLR/AUC根据所述相关信息将对应的鉴权元组删去,然后执行步骤c;c.HLR/AUC将现有相关鉴权元组发送给MSC/VLR后,并执行所述记录发送给MSC/VLR的这些鉴权元组的相关信息的操作;d.HLR/AUC接收到MSC/VLR返回的鉴权失败消息或非法同步消息后,将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
优选地,所述步骤b还包括HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
优选地,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一些特殊标记,所述记录发送给MSC/VLR的这些鉴权元组的相关信息是指在HLR/AUC对发送给MSC/VLR的鉴权元组增加特别标记来标识这些已经发送给MSC/VLR的鉴权元组;或者,为每个鉴权元组增加序号或流水号,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组对应的序号或流水号,或记录这些鉴权元组对应的序号或流水号的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组中RAND、或AUTN、或CK、或IK、或XRES、或AUTN中的SQNHE;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组的AUTN中的SQNHE的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一个表示将对应终端用户的所有鉴权元组都发送给了MSC/VLR的标志。
优选地,MSC/VLR向HLR/AUC返回的鉴权失败消息中可以进一步包括该鉴权失败消息是否是首鉴权元组对应的鉴权失败消息的信息,HLR/AUC接收到MSC/VLR返回的鉴权失败消息后,先判断鉴权失败消息是否是首鉴权元组对应的鉴权失败消息,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行所述将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者,根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,并将该相关信息删去。
优选地,HLR/AUC在将鉴权元组下发个MSC/VLR时,还可以在下发消息中包括一个自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中包括了HLR/AUC支持保留鉴权元组的能力信息时,才在利用首鉴权元组进行鉴权失败时,在鉴权失败消息中包括该鉴权失败消息是首鉴权元组对应的鉴权失败消息的信息。
优选地,MSC/VLR向HLR/AUC返回的鉴权失败消息中可以进一步包括一个删除指示,指示HLR/AUC是否删除被留用鉴权元组,以及删除全部或部分,包括仅删除首个鉴权元组的情况,步骤d中,还包括HLR/AUC根据所述删除指示将对应的鉴权元组删去。
优选地,根据权利要求1所述的方法,其特征在于,设置时间差阈值,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括发送时间的信息,对应地,步骤b中还包括HLR/AUC判断当前时间和所述相关信息中的发送时间的差是否小于设置的时间差阈值,如果是,则不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,否则执行所述根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
优选地,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括删除执行开始时间的信息,对应地,步骤b中还包括HLR/AUC判断当前时间是否小于所述相关信息中包括的删除执行开始时间,如果是,则不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,否则执行所述根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
优选地,HLR/AUC在不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去时,可以将记录的发送给MSC/VLR的鉴权元组的相关信息删去;或者,HLR/AUC不将记录的发送给MSC/VLR的鉴权元组的相关信息删去,而是在步骤c中,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,然后判断是否存在先前已经记录的发送给MSC/VLR的鉴权元组的相关信息,如果不存在,则HLR/AUC记录发送给MSC/VLR的这些鉴权元组的相关信息,如果存在,HLR/AUC可以修改先前记录的发送给MSC/VLR的鉴权元组的相关信息,使之和本次HLR/AUC下发给MSC/VLR的鉴权元组的相关信息一致。
优选地,设置时间差阈值,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括发送时间的信息,对应地,步骤d中,进一步包括HLR/AUC判断当前时间和所述相关信息中的发送时间的差是否小于设置的时间差阈值,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作后,再将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
优选地,,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括删除执行结束时间的信息,对应地,步骤d中进一步包括HLR/AUC判断当前时间是否小于所述相关信息中包括的有效执行时间,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作后,再将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
优选地,在上述步骤c中,HLR/AUC在将所有的鉴权元组都发送给MSC/VLR后,可以先不产生新鉴权元组,而是在等待MSC/VLR返回鉴权成功信息,并在接受到MSC/VLR返回的鉴权成功消息后,产生新鉴权元组,以备在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应;或者是在预设的时间范围内,等待MSC/VLR返回鉴权失败消息,并在该预设时间范围内没有收到MSC/VLR返回的鉴权失败消息时,产生新鉴权元组以备在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应。
优选地,MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,对应地,步骤c还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程;否则,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,并记录发送给MSC/VLR的这些鉴权元组的相关信息。
优选地,MSC/VLR只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
本发明提供的另一技术方案为一种鉴权元组留用方法,用于HLR/AUC对发送给MSC/VLR的鉴权元组进行管理,其特征在于,所述方法至少包括以下步骤a.HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将对应终端用户的所有鉴权元组都发送给MSC/VLR,并且不删除这些发送给MSC/VLR鉴权元组,同时启动一个计时器,并在预设的时间范围内,等待MSC/VLR返回鉴权失败消息或非法同步消息;b.HLR判断计时器的值是否达到预设的时间范围,如果达到,则终止计时,然后执行步骤c;否则继续等待MSC/VLR返回的鉴权失败消息或非法同步消息,并在得到MSC/VLR返回的鉴权失败消息或非法同步消息后终止计时,然后结束本流程;c.HLR/AUC将先前发送给MSC/VLR的鉴权元组删去。
优选地,步骤c之后还包括HLR/AUC产生对应终端用户的新鉴权元组。
优选地,鉴权失败消息中可以进一步包括是否是首鉴权元组对应的鉴权失败消息的信息,这样,在步骤b中,HLR/AUC在得到MSC/VLR返回的鉴权失败消息后,终止计时,并判断该鉴权失败消息是否是首鉴权元组对应的鉴权失败消息,如果是,则结束本流程,否则,执行步骤c。
优选地,HLR/AUC在将鉴权元组下发个MSC/VLR时,还可以在下发消息中包括一个自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中包括了HLR/AUC支持保留鉴权元组的能力信息时,才在利用首鉴权元组进行鉴权失败时,在鉴权失败消息中包括该鉴权失败消息是首鉴权元组对应的鉴权失败消息的信息。
优选地,在步骤b中,HLR/AUC在得到MSC/VLR返回的非法同步消息后,终止计时,并判断该非法同步消息是否是首鉴权元组对应的非法同步消息,如果是,则结束本流程,否则,执行步骤c。
优选地,MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,通过该信息告诉HLR/AUC在将相关鉴权元组发送给MSC/VLR后,HLR/AUC是否删除这些下发给MSC/VLR的鉴权元组,对应地,步骤a还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程;否则,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组。
优选地,MSC/VLR可以在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
本发明还提供一技术方案用于HLR/AUC对发送给MSC/VLR的鉴权元组进行管理,所述方法包括如下步骤a.HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将相关鉴权元组发送给MSC/VLR;b.MSC/VLR利用获取自HLR/AUC的鉴权元组进行鉴权,并在鉴权成功时,向HLR/AUC返回鉴权成功消息;c.HLR/AUC在得到MSC/VLR返回的鉴权成功消息后,对先前发送给MSC/VLR的鉴权元组执行删除操作。
优选地,步骤c所述删除操作是指删除现存的先前发送给MSC/VLR的鉴权元组中最早产生的那个鉴权元组。
优选地,步骤c所述删除操作是指将先前发送给MSC/VLR的鉴权元组全部删去。
优选地,MSC/VLR只在利用从HLR/AUC获取的鉴权元组中首鉴权元组进行鉴权时,在鉴权通过的情况下才向HLR/AUC返回鉴权成功消息。
优选地,MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,对应地,步骤a还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程;否则,HLR/AUC在将鉴权元组发送给MSC/VLR,并执行后续步骤。
优选地,MSC/VLR只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
优选地,HLR/AUC在将鉴权元组下发个MSC/VLR时,可以在下发消息中包括自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中包括了HLR/AUC支持保留鉴权元组的能力信息时,才会在鉴权成功时向HLR/AUC返回鉴权成功消息。
优选地,步骤a还包括HLR/AUC在将鉴权元组发送给MSC/VLR后,记录发送给MSC/VLR的这些鉴权元组的相关信息;相应地,在步骤c.HLR/AUC在得到MSC/VLR返回的鉴权成功消息后,根据记录的所述相关信息将先前发送给MSC/VLR的鉴权元组删去。
优选地,步骤c还包括HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
优选地,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一些特殊标记,所述记录发送给MSC/VLR的这些鉴权元组的相关信息是指在HLR/AUC对发送给MSC/VLR的鉴权元组增加特别标记来标识这些已经发送给MSC/VLR的鉴权元组;或者,为每个鉴权元组增加序号或流水号,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组对应的序号或流水号,或记录这些鉴权元组对应的序号或流水号的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组中RAND、或AUTN、或CK、或IK、或XRES、或AUTN中的SQNHE;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组的AUTN中的SQNHE的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一个表示将对应终端用户的所有鉴权元组都发送给了MSC/VLR的标志。
优选地,步骤a是指HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将对应终端用户的所有鉴权元组都发送给MSC/VLR,并且不删除这些发送给MSC/VLR鉴权元组。
优选地,步骤c之后还包括HLR/AUC产生对应该终端用户的新鉴权元组。
图1是本发明的具体实施方式
一的流程图。
图2是本发明的具体实施方式
二的流程图。
图3是本发明的具体实施方式
三的流程图。
图4是本发明的具体实施方式
三的第一实施例的流程图。
图5是本发明的具体实施方式
三的第二实施例的流程图。
具体实施例方式
移动通信网络中,在移动终端中保存国际移动用户标识IMSI、鉴权密钥KI和序列号SQNMS,网络侧的HLR/AUC中针对该移动终端对应保存IMSI、KI和序列号SQNHE,以用于移动终端和网络相互鉴权。
本文提供一种鉴权元组留用方法,要求HLR/AUC在将鉴权元组发送给MSC/VLR后,并不删除这些鉴权元组,而是记录发送给MSC/VLR的这些鉴权元组的相关信息。HLR/AUC在接收到MSC/VLR返回的鉴权失败消息后,将记录的发送给MSC/VLR的鉴权元组的相关信息删去,HLR/AUC在下次MSC/VLR获取鉴权元组时,如果所述记录的发送给MSC/VLR的鉴权元组的相关信息还没有被删去,则根据记录的这些鉴权元组的相关信息将相应的鉴权元组删去。
请参阅图1,本发明的具体实施方式
一如下步骤100,MSC/VLR向HLR/AUC发送请求鉴权元组的请求消息。
步骤101,HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,判断对应终端用户是否存在记录的发送给MSC/VLR的鉴权元组的相关信息,如果存在,则执行步骤103,否则直接执行步骤105。
步骤103,HLR/AUC根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,并将该相关信息删去,然后执行步骤105。
步骤105,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,并记录发送给MSC/VLR的这些鉴权元组的相关信息。
在步骤103中,HLR/AUC在根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去后,也可以先不将该相关信息删去,而是在某个特定时间进行统一删除,但较佳的实施方式是在本实施方式里的立即删除。
HLR/AUC可以通过对发送给MSC/VLR的鉴权元组增加特别标记来标识这些已经发送给MSC/VLR的鉴权元组。当然,也可以通过为每个鉴权元组增加序号或流水号,并记录相应的鉴权元组的序号或流水号来实现记录发送给MSC/VLR的这些鉴权元组的相关信息,例如,该流水号可以是对应鉴权元组中AUTN里的SQNHE。当然,也可以直接记录鉴权元组中的相关信息比如RAND,或AUTN,或CK,或IK,或XRES,或AUTN中的SQNHE等来达到记录发送给MSC/VLR的这些鉴权元组的相关信息的目的。实际当中,只要使得使得HLR/AUC能够知道哪些鉴权元组被发送给MSC/VLR在用即可。因此,当所述序号或流水号或产生的鉴权元组的AUTN里的SQNHE是递增的时候,记录发送给MSC/VLR的这些鉴权元组的相关信息时,可以只记录这些鉴权元组中序号最大值或流水号最大值或对应的AUTN里SQNHE最大值,这样,HLR/AUC根据所述最大值,可以将所有对应的序号或流水号或AUTN里SQNHE小于该最大值的鉴权元组作为发送给MSC/VLR的鉴权元组,也即,在执行步骤103时,HLR/AUC根据记录发送给MSC/VLR的这些鉴权元组的相关信息将对应的鉴权元组删去是指将所有对应的序号或流水号或AUTN里SQNHE小于该最大值的鉴权元组删去。如果HLR/AUC将对应终端用户的所有鉴权元组都发送给了MSC/VLR,则HLR/AUC在记录发送给MSC/VLR的这些鉴权元组的相关信息时,可以只记录一个表示所有鉴权元组在用的标志,比如,该标志值为1时,表示将对应终端用户的所有鉴权元组都发送给了MSC/VLR。当标志为0时,表示这些鉴权元组没有被发送出去。这样,HLR/AUC可以根据该标志来却哪些鉴权元组被发送给了MSC/VLR,也即,根据该标志判断是否将所有鉴权元组都发送给了MSC/VLR,例如所述标志为1,或者是,没有发送鉴权元组给MSC/VLR,例如所有标志为0。
步骤107,HLR/AUC接收到MSC/VLR返回的鉴权失败消息后,将记录的发送给MSC/VLR的鉴权元组的相关信息删去。MSC/VLR可以通过鉴权失败报告向HLR/AUC返回鉴权失败信息。
一般地HLR/AUC一次发送给MSC/VLR的鉴权元组最多五组,HLR/AUC发送给MSC/VLR的鉴权元组中,第一个鉴权元组为首鉴权元组。
MSC/VLR向HLR/AUC返回的鉴权失败消息中可以进一步包括该鉴权失败消息是否是首鉴权元组对应的鉴权失败消息的信息,这样,步骤107中,HLR/AUC接收到MSC/VLR返回的鉴权失败消息后,先判断鉴权失败消息是否是首鉴权元组对应的鉴权失败消息,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行所述将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作或者根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,并将该相关信息删去。MSC/VLR可以通过扩展鉴权失败报告向HLR/AUC返回包括了是否是首鉴权元组对应的鉴权失败消息的信息的鉴权失败消息。
MSC/VLR向HLR/AUC返回的鉴权失败消息中可以进一步包括一个删除指示,指示HLR/AUC是否删除被留用鉴权元组,以及删除全部或部分,包括仅删除首个鉴权元组的情况,这样,步骤107中,HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去后,再根据所述删除指示将对应的鉴权元组删去。这种情况发生在用户终端长时间对网络鉴权不通过,或者网络长时间对用户终端鉴权不通过的情况,这样不会因为AUC算错了一个AUTN而又因为留用而导致的合法手机一直无法上网的问题。这里主要考虑的是容错性。当然,这种情况基本不会发生,所以,也可以不考虑,而在实际出现这种情况时,比如用户投诉老是登陆不了网络,此时由合法用户到营业厅或通过运营服务电话向运营商进行故障申告,运营商根据故障申告,从营业厅接口向HLR/AUC发送清除相应鉴权元组的命令,HLR/AUC通过该命令将留用的鉴权元组删除。但是这里的所谓容错性也很容易遭到非法攻击者的攻击。
这种容错也可以由HLR/AUC来实现HLR/AUC针对一个IMSI的失败报告进行统计,当失败报告到达一定计数后,将当前留用的鉴权元组的第一个删除并将失败报告计数初始化为0。
HLR/AUC可以针对一个IMSI设置一个失败报告总计数器,用于统计失败报告的总次数,HLR/AUC可以在失败总次数达到一定数量后,给用户提出报警。
实际当中,MSC/VLR在判断出首鉴权元组鉴权失败时,MSC/VLR会将所有取自HLR/AUC的对应用户的鉴权元组删去,因此,这种情况下这些鉴权元组在HLR/AUC中可以继续使用。当鉴权失败消息不是首鉴权元组对应的鉴权失败消息时,说明MSC/VLR利用首鉴权元组进行过成功的鉴权,这时,MSC/VLR在鉴权失败时,将继续使用鉴权失败时使用的鉴权元组,知道利用该鉴权元组鉴权成功,或者用户漫游到其它MSC/VLR或者用户超时无响应。
HLR/AUC在将鉴权元组下发个MSC/VLR时,还可以在下发消息中包括一个自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中,包括了HLR/AUC支持保留鉴权元组的能力时,才在利用首鉴权元组进行鉴权失败时,在失败报告中包括该鉴权失败消息是首鉴权元组对应的鉴权失败消息的信息。这样可以保证新MSC/VLR兼容老的HLR/AUC,因为老的HLR/AUC可能不明白鉴权失败消息是否是首鉴权元组对应的鉴权失败消息的信息。
本方法中记录发送给MSC/VLR的鉴权元组的相关信息时,可以包括发送时间的信息,这样,步骤103中,进一步包括HLR/AUC判断当前时间和所述相关信息中的发送时间的差,是否小于设置的时间差阈值,如果是,则不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,否则执行所述根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
这里的时间差阈值可以包括在记录的发送给MSC/VLR的鉴权元组的相关信息中,也可以单独设置存储单元记录该时间差阈值,使该时间差阈值可以应用于所有终端用户或者应用于一个终端用户的多次发送给MSC/VLR的鉴权元组的相关信息的记录中。
实际当中,本方法中记录发送给MSC/VLR的鉴权元组的相关信息时,可以包括删除执行开始时间信息,也即,记录步骤103执行删除操作的开始有效时间信息,HLR/AUC可以根据发送时间和时间差阈值的加数得到删除执行开始时间。这时,步骤103中进一步包括HLR/AUC判断当前时间是否小于所述相关信息中包括的删除执行开始时间,如果是,则不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,否则执行所述根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
上述时间差阈值信息或有效执行时间信息对于记录的发送给MSC/VLR的鉴权元组的相关信息中包括多个鉴权元组的信息的情况有意义,而对于该相关信息中仅包括一个鉴权元组的信息的情况,可以不考虑时间信息,当然,也不用在记录的发送给MSC/VLR的鉴权元组的相关信息中记录所述时间差阈值信息或有效执行时间信息等时间信息。
在步骤103中,HLR/AUC在不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去时,可以将记录的发送给MSC/VLR的鉴权元组的相关信息删去;或者,HLR/AUC不将记录的发送给MSC/VLR的鉴权元组的相关信息删去,而是在步骤105中,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,然后判断是否存在先前已经记录的发送给MSC/VLR的鉴权元组的相关信息,如果不存在,则HLR/AUC记录发送给MSC/VLR的这些鉴权元组的相关信息,如果存在,HLR/AUC可以修改先前记录的发送给MSC/VLR的鉴权元组的相关信息,使之和本次HLR/AUC下发给MSC/VLR的鉴权元组的相关信息一致。
本方法中记录发送给MSC/VLR的鉴权元组的相关信息时,可以进一步包括发送时间的信息,这样,步骤107中,进一步包括HLR/AUC判断当前时间和所述相关信息中的发送时间的差,是否小于设置的时间差阈值,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作后,HLR/AUC再根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
这里的时间差阈值可以包括在记录的发送给MSC/VLR的鉴权元组的相关信息中,也可以单独设置存储单元记录该时间差阈值,使该时间差阈值可以应用于所有终端用户或者应用于一个终端用户的多次发送给MSC/VLR的鉴权元组的相关信息的记录中。
实际当中,本方法中记录发送给MSC/VLR的鉴权元组的相关信息时,可以包括删除执行结束时间信息,也即,记录步骤107执行删除操作的结束有效时间信息,HLR/AUC可以根据发送时间和时间差阈值的加数得到删除执行结束时间。这时,步骤107中进一步包括HLR/AUC判断当前时间是否小于所述相关信息中包括的删除执行结束时间,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作后,HLR/AUC再根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
上述时间差阈值信息或有效执行时间信息对于记录的发送给MSC/VLR的鉴权元组的相关信息中包括多个鉴权元组的信息的情况有意义,而对于该相关信息中仅包括一个鉴权元组的信息的情况,可以不考虑时间信息,当然,也不用在记录的发送给MSC/VLR的鉴权元组的相关信息中记录所述时间差阈值信息或有效执行时间信息等时间信息。
本方法进一步包括,在步骤105之后,HLR/AUC接收到MSC/VLR发送的同步请求消息后,在判断同步请求消息非法时,将记录的发送给MSC/VLR的鉴权元组的相关信息删去。因为,这个非法同步消息可能来自于非法攻击者的假同步。如果同步请求合法,则根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,而后产生新鉴权元组,并将新鉴权元组发送给MSC/VLR后,不删除该鉴权元组,并记录发送给MSC/VLR的该鉴权元组的相关信息。一般地,MSC/VLR接收到终端的同步请求消息后,向HLR/AUC发送获取鉴权元组的请求消息,在该请求消息中携带终端发送的同步标记符AUTS等同步参数和对应鉴权元组中的随机数,HLR/AUC根据该请求获取鉴权元组的请求消息中携带的参数信息可以判断出该请求消息为同步请求消息。
该方法进一步包括MSC/VLR在执行鉴权通过后,向HLR/AUC返回鉴权成功消息,该鉴权成功消息可以通过扩展鉴权失败报告来实现。比如增加鉴权失败原因值为鉴权成功,利用鉴权成功这个鉴权失败原因值来向HLR/AUC传送鉴权成功的信息。MSC/VLR不需要在每一次鉴权通过后,都向HLR/AUC返回鉴权成功消息,MSC/VLR可以仅在利用从HLR/AUC获取的鉴权元组中首鉴权元组进行鉴权时,在鉴权通过的情况下才向HLR/AUC返回鉴权成功消息。
上述步骤105之后,HLR/AUC在接收到MSC/VLR返回的鉴权成功消息后,直接根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,并将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
HLR/AUC在将鉴权元组下发个MSC/VLR时,可以进一步包括自己是否支持保留鉴权元组的能力,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中,包括了HLR/AUC支持保留鉴权元组的能力时,才会在鉴权成功时向HLR/AUC返回鉴权成功消息。这样可以保证新MSC/VLR兼容老的HLR/AUC。
如果MSC/VLR在每次执行鉴权通过后,都向HLR/AUC返回的鉴权成功消息,则步骤105之后,HLR/AUC在接收到MSC/VLR返回的鉴权成功消息后,可以直接根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的第一个鉴权元组删去,并修改记录的发送给MSC/VLR的鉴权元组的相关信息,将第一个鉴权元组的信息删去。当将所有的鉴权元组对应的信息都删去时,HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去。这种情况没有上述只在首鉴权元组鉴权通过后才向HLR/AUC返回鉴权成功消息,HLR/AUC在接收到MSC/VLR返回的鉴权成功消息后,直接根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,并将记录的发送给MSC/VLR的鉴权元组的相关信息删去的实现方式佳。
MSC/VLR在执行鉴权通过后,向HLR/AUC返回鉴权成功消息中可以进一步包括对应的鉴权元组的序号,这样,上述步骤105之后,HLR/AUC在接收到MSC/VLR返回的鉴权成功消息后,可以直接根据鉴权成功消息中包括的序号和记录的发送给MSC/VLR的鉴权元组的相关信息将对应序号的鉴权元组删去,并修改记录的发送给MSC/VLR的鉴权元组的相关信息,将所述序号所对应的鉴权元组的信息删去。当将所有的鉴权元组对应的信息都删去时,HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去。一般地HLR/AUC一次发送给MSC/VLR的鉴权元组最多五组,MSC/VLR和HLR/AUC可以协商用0到4,或者1到5的五个数来表示对应的鉴权元组的序号。这种实现方式也没有上述实现方式佳。
一般地,在上述步骤105中,HLR/AUC在将所有的鉴权元组都发送给MSC/VLR后,可以重新产生鉴权元组,以备下一次在MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应。显然,这种情况下,HLR/AUC中针对一个用户保存的鉴权元组通常既存在已经发送给MSC/VLR的,也存在还没有发送给MSC/VLR的。因此,通过记录发送给MSC/VLR的鉴权元组的相关信息可以有效地区分哪些鉴权元组被发送给MSC/VLR在用,哪些鉴权元组还没有发送出去。
作为一种优化,在上述步骤105中,HLR/AUC在将所有的鉴权元组都发送给MSC/VLR后,可以先不产生新鉴权元组,而是在等待MSC/VLR返回鉴权成功信息,并在接受到MSC/VLR返回的鉴权成功消息后,产生新鉴权元组,以备在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应;或者是在预设的时间范围内,等待MSC/VLR返回鉴权失败消息,并在该预设时间范围内没有收到MSC/VLR返回的鉴权失败消息时,产生新鉴权元组以备在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应。如果在预设时间范围内收到MSC/VLR返回的鉴权失败消息时,说明MSC/VLR利用首鉴权元组与终端鉴权不成功,此时,按照MSC/VLR的做法,MSC/VLR将取自HLR/AUC的鉴权元组删去,这时,HLR/AUC可以继续重用这些鉴权元组,因此,不需要产生新鉴权元组。如果在预设时间范围内没有收到MSC/VLR返回的鉴权失败消息,说明MSC/VLR利用首鉴权元组与终端鉴权成功。此时,MSC/VLR会保存取自HLR/AUC的除了首鉴权元组的其它鉴权元组,这时,HLR/AUC不能再重用这些鉴权元组了,因此,HLR/AUC需要产生新鉴权元组,以备在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应。
MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,通过该信息告诉HLR/AUC在将相关鉴权元组发送给MSC/VLR后,HLR/AUC是否删除这些下发给MSC/VLR的鉴权元组。这样,步骤105进一步包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果HLR/AUC判断出MSC/VLR的请求鉴权元组的请求消息中携带了删除下发的鉴权元组的信息,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程,当然,结束流程之前,可以判断是否还存在对应终端用户的鉴权元组,如果不存在,可以产生对应该终端用户的鉴权元组以备下一次MSC/VLR获取鉴权元组时给MSC/VLR以快速响应;如果HLR/AUC判断出MSC/VLR的请求鉴权元组的请求消息中没有携带关于删除下发的鉴权元组的信息,则HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,并记录发送给MSC/VLR的这些鉴权元组的相关信息。
MSC/VLR可以只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。MSC/VLR在VLR中尚没有相应用户信息时,或是用户刚刚漫游到该MSC/VLR时,在向HLR/AUC请求鉴权元组时携带不删除下发的鉴权元组的信息。
因为,在已经有合法用户在VLR中时,或者用户不是漫游到该MSC/VLR时,若有非法用户攻击,VLR中可能已经有鉴权元组,该鉴权元组可能是先前从HLR/AUC中获得,或者是从用户漫游的上一个MSC/VLR中获得,或者刚好鉴权元组用尽后,MSC/VLR从HLR/AUC中获取鉴权元组时,获得的鉴权元组可以继续为合法用户使用,MSC/VLR可以不因为非法攻击者攻击时鉴权通不过就将相应的鉴权元组删去。并且,用户漫游时,当前VLR可以在响应下一个漫游的VLR来获取鉴权元组时,将没有用尽的鉴权元组发送给请求鉴权元组的所述下一个漫游VLR,因此,也不会造成鉴权元组的浪费,因此,HLR/AUC保留鉴权元组不必要,MSC/VLR在向HLR/AUC请求鉴权元组时,可以携带删除下发的鉴权元组的信息。
本文提供的另一种鉴权元组留用方法,HLR/AUC在接收到MSC/VLR的请求鉴权元组的消息时,将对应终端用户的所有的鉴权元组发都送给MSC/VLR,并不删除这些鉴权元组,也不记录发送给MSC/VLR的这些鉴权元组的相关信息。而是在预设的时间范围内,等待MSC/VLR返回鉴权失败消息,并在该预设时间范围内没有收到MSC/VLR返回的鉴权失败消息时,HLR/AUC将这些鉴权元组删去,并产生新鉴权元组。
请参阅图2,本发明的具体实施方式
二如下步骤201,HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将对应终端用户的所有鉴权元组都发送给MSC/VLR,并且不删除这些发送给MSC/VLR鉴权元组,同时启动一个计时器,并在预设的时间范围内,等待MSC/VLR返回鉴权失败消息或非法同步消息。
步骤203,HLR判断计时器的值是否达到预设的时间范围,如果达到,则终止计时,然后执行步骤205;否则,进入步骤207。
步骤205,HLR/AUC将先前发送给MSC/VLR的鉴权元组删去,然后执行步骤209。
步骤207,继续等待MSC/VLR返回的鉴权失败消息或非法同步消息,并在得到MSC/VLR返回的鉴权失败消息或非法同步消息后终止计时,然后结束本流程。
步骤209,HLR/AUC产生对应终端用户的新鉴权元组,然后结束本流程。
这种方法中,鉴权失败消息中可以进一步包括是否是首鉴权元组对应的鉴权失败消息的信息,这样,在步骤203中,HLR/AUC在得到MSC/VLR返回的鉴权失败消息后,终止计时,并判断该鉴权失败消息是否是首鉴权元组对应的鉴权失败消息,如果是,则结束本流程,否则,执行步骤205。
MSC/VLR可以通过扩展鉴权失败报告来向HLR/AUC返回包括了是否是首鉴权元组对应的鉴权失败消息的信息的鉴权失败消息。
在步骤209中还可以进一步包括HLR/AUC判断是否存在对应终端用户的鉴权元组,如果不存在,则产生对应该终端用户的新鉴权元组,否则,不产生对应该终端用户的新鉴权元组。
HLR/AUC接收到MSC/VLR发送的同步请求消息后,根据自己保存的鉴权密钥判断同步请求消息是否合法,具体如何判断,可以参见3GPP协议规范,这里不再赘述。HLR/AUC还可以根据同步消息中由MSC上传的对应鉴权元组的随机数来判断该同步消息是否是首鉴权元组对应的同步消息。比如,HLR/AUC比较同步消息中随机数和首鉴权元组中随机数是否相同,如果相同,则说明该同步消息是首鉴权元组对应的同步消息。这样,在步骤203中,HLR/AUC在得到MSC/VLR返回的非法同步消息后,终止计时,并判断该非法同步消息是否是首鉴权元组对应的同步消息,如果是,则结束本流程,否则,执行步骤205。
HLR/AUC在将鉴权元组下发个MSC/VLR时,还可以在下发消息中包括一个自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中包括了HLR/AUC支持保留鉴权元组的能力信息时,才在利用首鉴权元组进行鉴权失败时,在失败报告中包括该鉴权失败消息是首鉴权元组对应的鉴权失败消息的信息。
MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,通过该信息告诉HLR/AUC在将相关鉴权元组发送给MSC/VLR后,HLR/AUC是否删除这些下发给MSC/VLR的鉴权元组,对应地,步骤201中还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程,当然,结束流程之前,可以产生对应该终端用户的鉴权元组以备下一次MSC/VLR获取鉴权元组时给MSC/VLR以快速响应;否则,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组。
MSC/VLR可以只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
本文提供的第三种鉴权元组留用方法,HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将现有相关鉴权元组发送给MSC/VLR,并不删除这些发送给MSC/VLR鉴权元组,而是在得到MSC/VLR返回的鉴权成功消息后,再将先前发送给MSC/VLR的鉴权元组删去。
请参阅图3,本发明的具体实施方式
三如下301,HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将现有相关鉴权元组发送给MSC/VLR。
303,MSC/VLR利用获取自HLR/AUC的鉴权元组进行鉴权,并在鉴权成功时,向HLR/AUC返回鉴权成功消息。
305,HLR/AUC在得到MSC/VLR返回的鉴权成功消息后,对先前发送给MSC/VLR的鉴权元组执行删除操作。
在步骤305中,所述删除操作是指删除现存的先前发送给MSC/VLR的鉴权元组中最早产生的那个鉴权元组。这样,当有五个鉴权元组发送给MSC/VLR后,只有当MSC/VLR返回了五次鉴权成功消息时,HLR/AUC才会将这五个鉴权元组全部删去。
在步骤305中,所述删除操作也可以是指将先前发送给MSC/VLR的鉴权元组全部删去。这种处理方式将有助于提高MSC/VLR和HLR/AUC的处理效率,因为,MSC/VLR只需要返回一个鉴权成功消息即可,一般的,在利用首鉴权元组鉴权成功时向HLR/AUC返回鉴权成功消息即可,而在利用本次获取的鉴权元组中后续的鉴权元组鉴权成功时,不需要再向HLR/AUC返回鉴权成功消息,从而也简化了HLR/AUC的处理。后面的具体实施方式
中,将针对这种方式来进行展开。
对于非法攻击者来说,当其冒充合法终端用户登陆网络时,MSC/VLR对其鉴权将无法通过,因此,也就无法向HLR/AUC返回鉴权成功消息,这样,HLR/AUC就不会将先前发送给MSC/VLR的鉴权元组删掉,这样,就不会造成鉴权元组的浪费,从而降低了非法攻击者攻击时所造成的损失。
本方法的第一种具体实施方式
中,HLR/AUC在将鉴权元组发送给MSC/VLR后,并不删除这些鉴权元组,而是记录发送给MSC/VLR的这些鉴权元组的相关信息,并等等MSC/VLR返回利用首鉴权元组鉴权成功的消息,在得到MSC/VLR利用首鉴权元组鉴权成功的消息后,HLR/AUC根据记录的发送给MSC/VLR的这些鉴权元组的相关信息将对应的鉴权元组删去。
请参阅图4,图4为上述具体实施方式
三的第一实施例。
步骤401,HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将现有相关鉴权元组发送给MSC/VLR,并执行所述记录发送给MSC/VLR的这些鉴权元组的相关信息的操作。
步骤403,MSC/VLR利用获取自HLR/AUC的鉴权元组进行鉴权,并在鉴权成功时,向HLR/AUC返回鉴权成功消息。
步骤405,HLR/AUC在得到MSC/VLR返回的鉴权成功消息后,根据记录发送给MSC/VLR的这些鉴权元组的相关信息将先前发送给MSC/VLR的鉴权元组删去。
在步骤405中,还可以包括HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
HLR/AUC可以通过对发送给MSC/VLR的鉴权元组增加特别标记来标识这些已经发送给MSC/VLR的鉴权元组。当然,也可以通过为每个鉴权元组增加序号或流水号,并记录相应的鉴权元组的序号或流水号来实现记录发送给MSC/VLR的这些鉴权元组的相关信息,例如,该流水号可以是对应鉴权元组中AUTN里的SQNHE。当然,也可以直接记录鉴权元组中的相关信息比如RAND,或AUTN,或CK,或IK,或XRES,或AUTN中的SQNHE等来达到记录发送给MSC/VLR的这些鉴权元组的相关信息的目的。实际当中,只要使得使得HLR/AUC能够知道哪些鉴权元组被发送给MSC/VLR在用即可。因此,当所述序号或流水号或产生的鉴权元组的AUTN里的SQNHE是递增的时候,记录发送给MSC/VLR的这些鉴权元组的相关信息时,可以只记录这些鉴权元组中序号最大值或流水号最大值或对应的AUTN里SQNHE最大值,这样,HLR/AUC根据所述最大值,可以将所有对应的序号或流水号或AUTN里SQNHE小于该最大值的鉴权元组作为发送给MSC/VLR的鉴权元组,也即,在执行步骤405时,HLR/AUC根据记录发送给MSC/VLR的这些鉴权元组的相关信息将先前发送给MSC/VLR的鉴权元组删去是指将所有对应的序号或流水号或AUTN里SQNHE小于该最大值的鉴权元组删去。如果HLR/AUC将对应终端用户的所有鉴权元组都发送给了MSC/VLR,则HLR/AUC在记录发送给MSC/VLR的这些鉴权元组的相关信息时,可以只记录一个表示所有鉴权元组在用的标志,比如,该标志值为1时,表示将对应终端用户的所有鉴权元组都发送给了MSC/VLR。当标志为0时,表示这些鉴权元组没有被发送出去。这样,HLR/AUC可以根据该标志来却哪些鉴权元组被发送给了MSC/VLR,也即,根据该标志判断是否将所有鉴权元组都发送给了MSC/VLR,例如所述标志为1,或者是,没有发送鉴权元组给MSC/VLR,例如所有标志为0。
在本方法中,MSC/VLR可以只在利用从HLR/AUC获取的鉴权元组中首鉴权元组进行鉴权时,在鉴权通过的情况下才向HLR/AUC返回鉴权成功消息。
MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,通过该信息告诉HLR/AUC在将相关鉴权元组发送给MSC/VLR后,HLR/AUC是否删除这些下发给MSC/VLR的鉴权元组,对应地,步骤401中还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程;否则,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,并记录发送给MSC/VLR的这些鉴权元组的相关信息。
MSC/VLR可以只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
本方法的第二种具体实施方式
中,HLR/AUC在接收到MSC/VLR的请求鉴权元组的消息时,将对应终端用户的所有的鉴权元组发都送给MSC/VLR,并不删除这些鉴权元组,也不记录发送给MSC/VLR的这些鉴权元组的相关信息。而是等待MSC/VLR返回利用首鉴权元组鉴权成功的消息,在得到MSC/VLR利用首鉴权元组鉴权成功的消息后,HLR/AUC将这些鉴权元组删去,并产生新鉴权元组。
请参阅图5,图5为上述具体实施方式
三的第二实施例。
步骤501,HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将对应终端用户的所有鉴权元组都发送给MSC/VLR,并且不删除这些发送给MSC/VLR鉴权元组。
步骤503,MSC/VLR获取HLR/AUC返回的鉴权元组后,利用首鉴权元组进行鉴权,并在鉴权成功时,向HLR/AUC返回鉴权成功消息。
步骤505,HLR/AUC在得到MSC/VLR返回的鉴权成功消息后,将先前发送给MSC/VLR的鉴权元组删去。
步骤507,HLR/AUC产生对应该终端用户的新鉴权元组。
在步骤507中,HLR/AUC产生新鉴权元组,是为了在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应。
在步骤503中,进一步包括,MSC/VLR在利用首鉴权元组进行鉴权时,如果鉴权失败,则向HLR/AUC返回鉴权失败消息。相应的,在步骤305中,HLR/AUC不产生新鉴权元组,即,HLR/AUC继续重用先前发送给MSC/VLR的鉴权元组,然后结束流程。
在步骤507中还可以进一步包括HLR/AUC判断是否存在对应终端用户的鉴权元组,如果不存在,则产生对应该终端用户的新鉴权元组,否则,不产生对应该终端用户的新鉴权元组。
在步骤503中,MSC/VLR可以仅在利用首鉴权元组进行鉴权成功时才向HLR/AUC返回鉴权成功消息。
MSC/VLR可以通过扩展鉴权失败报告向HLR/AUC返回鉴权成功消息。比如增加鉴权失败原因值为鉴权成功,利用鉴权成功这个鉴权失败原因值来向HLR/AUC传送鉴权成功的信息。
HLR/AUC在将鉴权元组下发个MSC/VLR时,可以在下发消息中包括自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中,包括了HLR/AUC支持保留鉴权元组的能力信息时,才会在鉴权成功时向HLR/AUC返回鉴权成功消息。
在步骤507中,一种改劣的方法很容易想到,就是HLR/AUC在将先前发送给MSC/VLR的鉴权元组删去后并不产生新鉴权元组,而是在下次MSC/VLR获取鉴权元组时再重新产生鉴权元组发送给MSC/VLR。这样作,给MSC/VLR的响应会不及时。
MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,通过该信息告诉HLR/AUC在将相关鉴权元组发送给MSC/VLR后,HLR/AUC是否删除这些下发给MSC/VLR的鉴权元组,对应地,步骤501中还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程,当然,结束流程之前,可以产生对应该终端用户的鉴权元组以备下一次MSC/VLR获取鉴权元组时给MSC/VLR以快速响应;否则,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组。
MSC/VLR可以只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
上述各种方法中,MSC/VLR为电路域设备,对于分组域的网络,对应的设备可以为SGSN。
可以理解,以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种鉴权元组留用方法,用于HLR/AUC对发送给MSC/VLR的鉴权元组进行管理,在本方法中,HLR/AUC在将鉴权元组发送给MSC/VLR后,记录发送给MSC/VLR的这些鉴权元组的相关信息;所述方法至少包括以下步骤a.HLR/AUC在接收到MSC/VLR发送的请求鉴权元组的请求消息时,判断是否存在对应终端用户的记录的发送给MSC/VLR的鉴权元组的相关信息,如果存在,则执行步骤b,否则直接执行步骤c;b.HLR/AUC根据所述相关信息将对应的鉴权元组删去,然后执行步骤c;c.HLR/AUC将现有相关鉴权元组发送给MSC/VLR后,并执行所述记录发送给MSC/VLR的这些鉴权元组的相关信息的操作;d.HLR/AUC接收到MSC/VLR返回的鉴权失败消息或非法同步消息后,将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
2.根据权利要求1所述的方法,其特征在于,所述步骤b还包括HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
3.根据权利要求1所述的方法,其特征在于,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一些特殊标记,所述记录发送给MSC/VLR的这些鉴权元组的相关信息是指在HLR/AUC对发送给MSC/VLR的鉴权元组增加特别标记来标识这些已经发送给MSC/VLR的鉴权元组;或者,为每个鉴权元组增加序号或流水号,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组对应的序号或流水号,或记录这些鉴权元组对应的序号或流水号的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组中RAND、或AUTN、或CK、或IK、或XRES、或AUTN中的SQNHE;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组的AUTN中的SQNHE的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一个表示将对应终端用户的所有鉴权元组都发送给了MSC/VLR的标志。
4.根据权利要求1所述的方法,其特征在于,MSC/VLR向HLR/AUC返回的鉴权失败消息中可以进一步包括该鉴权失败消息是否是首鉴权元组对应的鉴权失败消息的信息,HLR/AUC接收到MSC/VLR返回的鉴权失败消息后,先判断鉴权失败消息是否是首鉴权元组对应的鉴权失败消息,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行所述将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者,根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,并将该相关信息删去。
5.根据权利要求4所述的方法,其特征在于,HLR/AUC在将鉴权元组下发个MSC/VLR时,还可以在下发消息中包括一个自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中包括了HLR/AUC支持保留鉴权元组的能力信息时,才在利用首鉴权元组进行鉴权失败时,在鉴权失败消息中包括该鉴权失败消息是首鉴权元组对应的鉴权失败消息的信息。
6.根据权利要求1所述的方法,其特征在于,MSC/VLR向HLR/AUC返回的鉴权失败消息中可以进一步包括一个删除指示,指示HLR/AUC是否删除被留用鉴权元组,以及删除全部或部分,包括仅删除首个鉴权元组的情况,步骤d中,还包括HLR/AUC根据所述删除指示将对应的鉴权元组删去。
7.根据权利要求1所述的方法,其特征在于,设置时间差阈值,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括发送时间的信息,对应地,步骤b中还包括HLR/AUC判断当前时间和所述相关信息中的发送时间的差是否小于设置的时间差阈值,如果是,则不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,否则执行所述根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
8.根据权利要求1所述的方法,其特征在于,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括删除执行开始时间的信息,对应地,步骤b中还包括HLR/AUC判断当前时间是否小于所述相关信息中包括的删除执行开始时间,如果是,则不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去,否则执行所述根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作。
9.根据权利要求7或8所述的方法,其特征在于,在步骤b中,HLR/AUC在不根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去时,可以将记录的发送给MSC/VLR的鉴权元组的相关信息删去;或者,HLR/AUC不将记录的发送给MSC/VLR的鉴权元组的相关信息删去,而是在步骤c中,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,然后判断是否存在先前已经记录的发送给MSC/VLR的鉴权元组的相关信息,如果不存在,则HLR/AUC记录发送给MSC/VLR的这些鉴权元组的相关信息,如果存在,HLR/AUC可以修改先前记录的发送给MSC/VLR的鉴权元组的相关信息,使之和本次HLR/AUC下发给MSC/VLR的鉴权元组的相关信息一致。
10.根据权利要求1所述的方法,其特征在于,设置时间差阈值,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括发送时间的信息,对应地,步骤d中,进一步包括HLR/AUC判断当前时间和所述相关信息中的发送时间的差是否小于设置的时间差阈值,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作后,再将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
11.根据权利要求1所述的方法,其特征在于,所述记录的发送给MSC/VLR的鉴权元组的相关信息中还包括删除执行结束时间的信息,对应地,步骤d中进一步包括HLR/AUC判断当前时间是否小于所述相关信息中包括的有效执行时间,如果是,则执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,否则,不执行将记录的发送给MSC/VLR的鉴权元组的相关信息删去的操作,或者根据记录的发送给MSC/VLR的鉴权元组的相关信息将对应的鉴权元组删去的操作后,再将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
12.根据权利要求1所述的方法,其特征在于,在上述步骤c中,HLR/AUC在将所有的鉴权元组都发送给MSC/VLR后,可以先不产生新鉴权元组,而是在等待MSC/VLR返回鉴权成功信息,并在接受到MSC/VLR返回的鉴权成功消息后,产生新鉴权元组,以备在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应;或者是在预设的时间范围内,等待MSC/VLR返回鉴权失败消息,并在该预设时间范围内没有收到MSC/VLR返回的鉴权失败消息时,产生新鉴权元组以备在下一次MSC/VLR获取鉴权元组时,可以迅速给MSC/VLR以响应。
13.根据权利要求1所述的方法,其特征在于,MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,对应地,步骤c还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程;否则,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组,并记录发送给MSC/VLR的这些鉴权元组的相关信息。
14.根据权利要求13所述的方法,其特征在于,MSC/VLR只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
15.一种鉴权元组留用方法,用于HLR/AUC对发送给MSC/VLR的鉴权元组进行管理,其特征在于,所述方法至少包括以下步骤a.HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将对应终端用户的所有鉴权元组都发送给MSC/VLR,并且不删除这些发送给MSC/VLR鉴权元组,同时启动一个计时器,并在预设的时间范围内,等待MSC/VLR返回鉴权失败消息或非法同步消息;b.HLR判断计时器的值是否达到预设的时间范围,如果达到,则终止计时,然后执行步骤c;否则继续等待MSC/VLR返回的鉴权失败消息或非法同步消息,并在得到MSC/VLR返回的鉴权失败消息或非法同步消息后终止计时,然后结束本流程;c.HLR/AUC将先前发送给MSC/VLR的鉴权元组删去。
16.根据权利要求15所述的方法,其特征在于,步骤c之后还包括HLR/AUC产生对应终端用户的新鉴权元组。
17.根据权利要求15所述的方法,其特征在于,鉴权失败消息中可以进一步包括是否是首鉴权元组对应的鉴权失败消息的信息,这样,在步骤b中,HLR/AUC在得到MSC/VLR返回的鉴权失败消息后,终止计时,并判断该鉴权失败消息是否是首鉴权元组对应的鉴权失败消息,如果是,则结束本流程,否则,执行步骤c。
18.根据权利要求17所述的方法,其特征在于,HLR/AUC在将鉴权元组下发个MSC/VLR时,还可以在下发消息中包括一个自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中包括了HLR/AUC支持保留鉴权元组的能力信息时,才在利用首鉴权元组进行鉴权失败时,在鉴权失败消息中包括该鉴权失败消息是首鉴权元组对应的鉴权失败消息的信息。
19.根据权利要求15所述的方法,其特征在于,在步骤b中,HLR/AUC在得到MSC/VLR返回的非法同步消息后,终止计时,并判断该非法同步消息是否是首鉴权元组对应的非法同步消息,如果是,则结束本流程,否则,执行步骤c。
20.根据权利要求15所述的方法,其特征在于,MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,通过该信息告诉HLR/AUC在将相关鉴权元组发送给MSC/VLR后,HLR/AUC是否删除这些下发给MSC/VLR的鉴权元组,对应地,步骤a还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程;否则,HLR/AUC在将鉴权元组发送给MSC/VLR后,不删除这些鉴权元组。
21.根据权利要求20所述的方法,其特征在于,MSC/VLR可以在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
22.一种鉴权元组留用方法,用于HLR/AUC对发送给MSC/VLR的鉴权元组进行管理,所述方法包括如下步骤a.HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将相关鉴权元组发送给MSC/VLR;b.MSC/VLR利用获取自HLR/AUC的鉴权元组进行鉴权,并在鉴权成功时,向HLR/AUC返回鉴权成功消息;c.HLR/AUC在得到MSC/VLR返回的鉴权成功消息后,对先前发送给MSC/VLR的鉴权元组执行删除操作。
23.根据权利要求22所述的方法,其特征在于,步骤c所述删除操作是指删除现存的先前发送给MSC/VLR的鉴权元组中最早产生的那个鉴权元组。
24.根据权利要求22所述的方法,其特征在于,步骤c所述删除操作是指将先前发送给MSC/VLR的鉴权元组全部删去。
25.根据权利要求24所述的方法,其特征在于,MSC/VLR只在利用从HLR/AUC获取的鉴权元组中首鉴权元组进行鉴权时,在鉴权通过的情况下才向HLR/AUC返回鉴权成功消息。
26.根据权利要求24所述的方法,其特征在于,MSC/VLR可以在请求鉴权元组的请求消息中携带是否删除下发的鉴权元组的信息,对应地,步骤a还包括,HLR/AUC判断MSC/VLR的请求鉴权元组的请求消息中是否携带了删除下发的鉴权元组的信息,如果是,则HLR/AUC在将鉴权元组发送给MSC/VLR后删除该鉴权元组,并结束流程;否则,HLR/AUC在将鉴权元组发送给MSC/VLR,并执行后续步骤。
27.根据权利要求26所述的方法,其特征在于,MSC/VLR只在鉴权元组用尽的情况下向HLR/AUC请求鉴权元组时,携带删除下发的鉴权元组的信息。
28.根据权利要求24所述的方法,其特征在于,HLR/AUC在将鉴权元组下发个MSC/VLR时,可以在下发消息中包括自己是否支持保留鉴权元组的能力信息,MSC/VLR在判断HLR/AUC下发鉴权元组的消息中包括了HLR/AUC支持保留鉴权元组的能力信息时,才会在鉴权成功时向HLR/AUC返回鉴权成功消息。
29.根据权利要求24所述的方法,其特征在于,步骤a还包括HLR/AUC在将鉴权元组发送给MSC/VLR后,记录发送给MSC/VLR的这些鉴权元组的相关信息;相应地,在步骤c.HLR/AUC在得到MSC/VLR返回的鉴权成功消息后,根据记录的所述相关信息将先前发送给MSC/VLR的鉴权元组删去。
30.根据权利要求29所述的方法,其特征在于,步骤c还包括HLR/AUC将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
31.根据权利要求29所述的方法,其特征在于,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一些特殊标记,所述记录发送给MSC/VLR的这些鉴权元组的相关信息是指在HLR/AUC对发送给MSC/VLR的鉴权元组增加特别标记来标识这些已经发送给MSC/VLR的鉴权元组;或者,为每个鉴权元组增加序号或流水号,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组对应的序号或流水号,或记录这些鉴权元组对应的序号或流水号的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组中RAND、或AUTN、或CK、或IK、或XRES、或AUTN中的SQNHE;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是这些鉴权元组的AUTN中的SQNHE的最大值;或者,所述记录的发送给MSC/VLR的鉴权元组的相关信息是一个表示将对应终端用户的所有鉴权元组都发送给了MSC/VLR的标志。
32.根据权利要求24述的方法,其特征在于,步骤a是指HLR/AUC在接收到MSC/VLR的请求鉴权元组的请求消息时,将对应终端用户的所有鉴权元组都发送给MSC/VLR,并且不删除这些发送给MSC/VLR鉴权元组。
33.根据权利要求32所述的方法,其特征在于,步骤c之后还包括HLR/AUC产生对应该终端用户的新鉴权元组。
全文摘要
本发明公开了一种鉴权元组留用方法,用于HLR/AUC对发送给MSC/VLR的鉴权元组进行管理,在本方法中,HLR/AUC在将鉴权元组发送给MSC/VLR后,记录发送给MSC/VLR的这些鉴权元组的相关信息;所述方法至少包括以下步骤a.HLR/AUC在接收到MSC/VLR发送的请求鉴权元组的请求消息时,判断是否存在对应终端用户的记录的发送给MSC/VLR的鉴权元组的相关信息,如果存在,则执行步骤b,否则直接执行步骤c;b.HLR/AUC根据所述相关信息将对应的鉴权元组删去,然后执行步骤c;c.HLR/AUC将现有相关鉴权元组发送给MSC/VLR后,并执行所述记录发送给MSC/VLR的这些鉴权元组的相关信息的操作;d.HLR/AUC接收到MSC/VLR返回的鉴权失败消息或非法同步消息后,将记录的发送给MSC/VLR的鉴权元组的相关信息删去。
文档编号H04W12/06GK1859714SQ20051003692
公开日2006年11月8日 申请日期2005年8月29日 优先权日2005年8月29日
发明者王正伟, 孔杰, 周春艳 申请人:华为技术有限公司