发明内容
有鉴于此,本发明的一个发明目的是提供一种移动通信网络中网络设备生成鉴权信息的方法,以使移动终端可以对网络进行鉴权,从而提高移动终端的安全性,防止移动终端被盗抢。
本发明的另一个目的是提供一种移动通信网络中移动终端对网络进行鉴权的方法,以通过对网络的鉴权提高移动终端的安全性,从而防止移动终端被盗抢。
本发明的还有一个目的是提供一种移动通信网络中的鉴权方法,以通过移动终端对网络的鉴权提高移动终端的安全性,从而防止移动终端被盗抢。
根据本发明的第一个方面,一种移动通信网络中网络设备生成鉴权信息的方法至少包括:
一种移动通信网络中网络设备生成鉴权信息的方法,至少包括:
a1、预先在网络设备中设置一个对应于移动终端的安全密钥;
b1、网络设备根据所述安全密钥、对应于移动终端当前用户卡的鉴权密钥和一个随机数生成对应于该移动终端的鉴权信息。
所述鉴权信息包括所述随机数和鉴权标记,其中鉴权标记至少包括设置的序列号和消息鉴权编码。
步骤b1所述生成鉴权信息的过程为:
b11、网络设备根据安全密钥、鉴权密钥、随机数和设置的序列号生成消息鉴权编码;
b12、组合设置的序列号和消息鉴权编码为鉴权标记;
b13、组合随机数和鉴权标记形成所述鉴权信息。
步骤b11所述生成消息鉴权编码的过程为:网络设备先根据鉴权密钥和随机数进行计算得到一个临时随机数,再使用安全密钥、临时随机数和设置的序列号产生消息鉴权编码。
步骤b11所述生成消息鉴权编码的过程为:网络设备先根据鉴权密钥、随机数和设置的序列号产生一个消息鉴权编码,再使用该消息鉴权编码和安全密钥进行计算得到一个新的消息鉴权编码,将新的消息鉴权编码作为组成鉴权标记的消息鉴权编码。
所述网络设备包括归属位置寄存器/验证中心HLR/AUC,该方法进一步包括:
c1、HLR/AUC根据鉴权密钥、安全密钥和随机数中的一个或多个生成期望响应、加密密钥以及完整性密钥,并将期望响应、加密密钥、完整性密钥和步骤b1所述的鉴权信息组成鉴权多元组。
所述网络设备进一步包括移动交换中心/拜访位置寄存器MSC/VLR,该方法进一步包括:HLR/AUC将鉴权多元组发送给MSC/VLR。
所述的鉴权多元组是在接收到来自MSC/VLR的鉴权多元组请求消息,或者是需要更新MSC/VLR的鉴权多元组时进行发送;
所述发送的鉴权多元组为已经生成的对应移动终端的一个或者多个鉴权多元组。
所述来自MSC/VLR的鉴权多元组请求消息是MSC/VLR在鉴权时发现没有对应移动终端的鉴权多元组或者在对应移动终端的所有鉴权多元组都使用完后向HLR/AUC发送的。
该方法进一步包括:MSC/VLR在接收到来自移动终端的触发鉴权的请求消息后,或者是在网络设备需要对移动终端进行鉴权时将鉴权多元组中的鉴权信息发送给移动终端。
所述序列号是用于移动终端用户卡鉴权的序列号或者单独设置的用于移动终端鉴权的序列号。
步骤a1所述的安全密钥为对应于移动终端特征信息的安全密钥,该移动终端特征信息是移动终端设备标识信息IMEI;或者为对应于移动终端用户签约相关信息的安全密钥,该移动终端用户签约相关信息是移动终端用户的国际移动用户标识IMSI或移动终端用户卡编号或移动电话号码簿号码MSISDN。
由于移动通信网络中的网络设备在生成鉴权信息时,使用了预先设置的对应于移动终端的安全密钥和鉴权密钥,从而使本发明方法的鉴权信息不同于现有技术中没有考虑安全密钥的鉴权信息,再配合移动终端在接收到鉴权信息后的处理,即可实现由移动终端对网络进行鉴权,而不同于现有技术中由用户卡对网络进行鉴权。
在由移动终端对网络进行鉴权的情况下,如果移动终端被盗抢,非法用户在更换一个用户卡之后,由于移动终端中保存的安全密钥是对应于网络设备按照合法用户卡为该移动终端设置的安全密钥,比如合法用户的签约信息里设置的安全密钥,而和非法用户的签约信息里设置的安全密钥不一致,因此移动终端对网络的鉴权将不会通过。这样,非法用户将不能正常使用该移动终端;或者安全密钥是对应于网络设备按照该移动终端标识设置的安全密钥,这样一旦用户在丢失移动终端后去运营商处修改网络设备侧对应于自己的移动终端设备的安全密钥信息,该移动终端对网络的鉴权也不会通过,该移动终端也将不能正常使用。因此,移动终端对网络的鉴权可以有效地提高移动终端的安全性,并有效防止移动终端被盗抢。
由于产生鉴权信息时,同时根据了鉴权密钥,因此,本发明支持同提高用户卡鉴权算法安全性来保证整体鉴权安全性的提高。
根据本发明的第二个方面,一种移动通信网络中移动终端对通信网络进行鉴权的方法至少包括:
一种移动通信网络中移动终端对通信网络进行鉴权的方法,该方法至少包括:
a2、预先在移动终端中设置一个对应于该移动终端的安全密钥;
b2、移动终端在接收到来自网络设备的鉴权信息之后,根据自己设置的安全密钥、当前用户卡的鉴权密钥和所述鉴权信息判断对网络的鉴权是否通过。
所述接收的鉴权信息包括随机数和鉴权标记,其中鉴权标记至少包括序列号和消息鉴权编码。
步骤b2所述判断对网络的鉴权是否通过的过程包括:
b21、移动终端根据自己设置的安全密钥、当前用户卡的鉴权密钥、所接收鉴权信息中的序列号和随机数计算得到一个移动终端消息鉴权编码;
b22、移动终端比较计算得到的移动终端消息鉴权编码和所接收鉴权信息中包含的消息鉴权编码是否一致,如果一致,判定对网络的鉴权通过;否则判定对网络的鉴权失败。
步骤b21所述计算移动终端消息鉴权编码的过程包括:
移动终端将所接收鉴权信息中的随机数发送给用户卡,由用户卡根据卡中的鉴权密钥和随机数进行计算得到一个临时随机数,并将临时随机数发送给移动终端;
移动终端根据自己设置的安全密钥和用户卡计算得到的临时随机数、所接收鉴权信息中的序列号进行计算得到一个消息鉴权编码。
步骤b21所述计算移动终端消息鉴权编码的过程包括:
移动终端将所接收鉴权信息中的随机数和序列号发送给用户卡,由用户卡根据用户卡中的鉴权密钥、随机数和序列号进行计算得到一个消息鉴权编码发送给移动终端;
移动终端根据自身保存的安全密钥和用户卡计算得到的消息鉴权编码进行计算得到一个新的消息鉴权编码,该新的消息鉴权编码为所述的移动终端消息鉴权编码。
在判定对网络的鉴权通过之前,该方法还包括:
移动终端根据自己设置的序列号判断来自网络设备的鉴权信息是否是最新的步骤,如果是最新的,则判断对网络鉴权通过,否则向网络发起同步序列号的操作。
所述序列号是用于移动终端用户卡鉴权的序列号或者是单独设置的用于移动终端鉴权的序列号。
步骤a2中所述设置的安全密钥是设置为对应于移动终端用户卡特征信息的安全密钥,所述用户卡特征信息是用户卡里的国际移动用户标识IMSI或用户卡编号。
该方法进一步包括:c2、移动终端或用户卡根据安全密钥、当前用户卡的鉴权密钥和随机数中的一个或多个生成期望响应、加密密钥和完整性密钥,并将期望响应返回给网络设备。
由于移动终端在接收到鉴权信息之后根据自己保存的安全密钥、鉴权密钥和接收到的鉴权信息直接判断对网络的鉴权是否通过,而不同于现有技术中由用户卡来对网络进行鉴权。如前所述,由于实现了由移动终端自身对网络的鉴权,提高了移动终端的安全性,有效防止了移动终端被盗抢。
根据本发明的第三个方面,一种移动通信网络中的鉴权方法至少包括:
一种移动通信网络中的鉴权方法,该方法至少包括:
a3、预先在网络设备和移动终端中分别设置一个对应该移动终端的安全密钥;
b3、网络设备根据安全密钥、对应于移动终端当前用户卡的鉴权密钥和随机数生成对应于所述移动终端的鉴权信息;
c3、网络设备将所述鉴权信息发送到所述移动终端;
d3、移动终端根据自己设置的安全密钥、当前用户卡的鉴权密钥和接收的鉴权信息判断对网络的鉴权是否通过。
所述鉴权信息包括随机数和鉴权标记,其中鉴权标记至少包括序列号和消息鉴权编码。
步骤b3所述生成鉴权信息的过程为:网络设备根据安全密钥、鉴权密钥、随机数和设置的序列号生成鉴权标记;
组合随机数和鉴权标记形成所述鉴权信息;
步骤的d3所述判断对网络的鉴权是否通过的过程包括:
移动终端根据自己设置的安全密钥、当前用户卡的鉴权密钥、所接收鉴权信息中的序列号和随机数计算得到一个移动终端消息鉴权编码;
移动终端比较计算得到的移动终端消息鉴权编码和所接收鉴权信息中包含的消息鉴权编码是否一致,如果一致,判定对网络的鉴权通过;否则判定对网络的鉴权失败。
步骤b3所述生成鉴权信息的过程为:网络设备先根据鉴权密钥和随机数进行计算得到一个临时随机数,再使用安全密钥和临时随机数产生消息鉴权编码,组合消息鉴权编码和设置的序列号为鉴权标记,组合鉴权标记和随机数为鉴权信息;
步骤d3所述判断对网络的鉴权是否通过的过程包括:
移动终端将所接收鉴权信息中的随机数发送给用户卡,由用户卡根据卡中的鉴权密钥和随机数进行计算得到一个临时随机数,并将临时随机数发送给移动终端;
移动终端根据自己设置的安全密钥和用户卡计算得到的临时随机数、所接收鉴权信息中的序列号进行计算得到一个消息鉴权编码,比较计算得到的消息鉴权编码和所接收鉴权信息中的消息鉴权编码是否一致,如果不一致,则判定对网络的鉴权失败;否则,判定对网络的鉴权通过。
步骤b3所述生成鉴权信息的过程为:网络设备先根据鉴权密钥、设置的序列号和随机数产生一个消息鉴权编码,再使用该消息鉴权编码和安全密钥进行计算得到一个新的消息鉴权编码,组合消息鉴权编码和设置的序列号为鉴权标记,组合鉴权标记和随机数为鉴权信息;
步骤d3所述判断对网络的鉴权是否通过的过程包括:
移动终端将所接收鉴权信息中的随机数和序列号发送给用户卡,由用户卡根据卡中的鉴权密钥、接收自移动终端的随机数和序列号进行计算得到一个消息鉴权编码发送给移动终端;
移动终端根据自身保存的安全密钥和用户卡计算得到的消息鉴权编码进行计算得到一个新的消息鉴权编码,比较自身计算得到的新的消息鉴权编码和所接收鉴权信息中的消息鉴权编码是否一致,如果不一致,则判定对网络的鉴权失败;否则,判定对网络的鉴权通过。
所述网络设备包括HLR/AUC和MSC/VLR,在步骤c3之前,该方法进一步包括:网络设备中的HLR/AUC根据鉴权密钥、安全密钥和随机数中的一个或多个生成期望响应、加密密钥以及完整性密钥,并将期望响应、加密密钥、完整性密钥和步骤b3所述的鉴权信息组成鉴权多元组发送给网络设备中的MSC/VLR,MSC/VLR将鉴权多元组中的鉴权信息发送给移动终端;
在所述步骤d3之后,该方法还包括:
移动终端或用户卡根据设置的安全密钥、鉴权密钥、所接收鉴权信息中的序列号和随机数中的一个或多个生成期望响应,并将期望响应发送给MSC/VLR;
MSC/VLR比较接收自移动终端的期望响应和接收自HLR/AUC的对应的鉴权多元组中的期望响应是否一致,如果一致,网络对移动终端的鉴权通过;否则网络对移动终端的鉴权不通过。
所述移动终端或用户卡生成期望响应时,还根据设置的安全密钥、鉴权密钥、所接收鉴权信息中的序列号和随机数中的一个或多个生成加密密钥和/或完整性密钥。如前所述,由于结合了第一方面和第二方面,因此实现了由移动终端自身对网络的鉴权,提高了移动终端的安全性,有效防止了移动终端被盗抢。进一步,移动终端还可以将期望响应发送给网络设备中的移动交换中心/拜访位置寄存器(MSC/VLR),MSC/VLR比较接收自移动终端的期望响应和接收自网络设备中的归属位置寄存器/鉴权中心(HLR/AUC)的期望响应是否一致,从而在实现移动终端对网络的鉴权之后还可以由网络对移动终端进行鉴权,进一步完善了鉴权处理,提高了鉴权效果。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
图1示出了根据本发明的网络设备生成鉴权信息的总体流程图。如图1所示,在步骤101,在网络设备中设置一个对应移动终端的安全密钥(SKEY)。
这里设置对应移动终端的SKEY可以是设置对应移动终端特征信息的SKEY,例如设置对应于IMEI的SKEY;也可以是设置对应于移动终端用户签约信息,或者说是移动终端用户卡特征信息的SKEY,例如是对应于国际移动用户标识(IMSI)的SKEY,或者是对应于移动终端用户卡编号的SKEY,或者是对应于移动电话号码(MSISDN)的SKEY。
在步骤102,网络设备在针对某一个移动终端生成鉴权信息时,产生一个随机数(RAND)。
在步骤103,网络设备利用对应该移动终端的SKEY、对应移动终端当前用户卡(或当前用户)的鉴权密钥(KI)和产生的RAND生成鉴权信息。
在本发明中,鉴权信息包括随机数和鉴权标记(AUTN)。AUTN可以至少包括序列号(SQN)和消息鉴权编码(MAC),并且可以进一步包括鉴权管理域(AMF)。AMF和SQN是在网络设备中预先设定的,在生成鉴权信息的过程中,可用于生成AUTN中的MAC,而将已有的SQN和AMF与计算得到的MAC组合在一起即构成了AUTN。
本发明由网络设备生成鉴权信息在具体实现上可以包括两个阶段:第一阶段由HLR/AUC生成包括鉴权信息和其他信息的鉴权多元组,然后将鉴权多元组发送给网络侧的MSC/VLR;第二阶段,由MSC/VLR将鉴权多元组中的鉴权信息提取出来发送给移动终端。其具体流程如图2所示。
这里的鉴权多元组中除了RAND和AUTN之外,还包括期望响应(XRES)、加密密钥(CK)和完整性密钥(IK)。其他三个参数发送到MSC/VLR之后由MSC/VLR保存,其中XRES用来在MSC/VLR对移动终端进行鉴权时使用,CK用于数据加解密,IK用于数据完整性验证以及产生数据的验证摘要信息。本发明将在后面对此进行说明。
上述SKEY可以是根据一个随机数和KI产生。比如,移动终端和网络相关设备例如HLR/AUC协商产生SKEY时,可以由其中的一方产生一个随机数,并将该随机数发送给另一方,网络设备根据该随机数和自己保存的对应于该移动终端当前用户卡的KI进行一定的计算,如摘要计算,得到一个计算结果,并将该计算结果作为SKEY。相应地,移动终端根据随机数和用户卡中的KI进行相应的计算得到一个计算结果,将该计算结果作为SKEY保存在移动终端。比如移动终端将随机数传送给用户卡,用户卡根据随机数和KI进行相应的计算得到移动终端需要的SKEY并发送给移动终端。上述摘要计算算法可以根据实际应用进行选择。
通过随机数和KI产生安全密钥SKEY,可以保证SKEY本身不需要在网络设备和移动终端之间传送,保证了SKEY的安全性。同时,这种方法实现了SKEY和KI的逻辑捆绑,有助于使用移动终端完全替代用户卡完成与网络进行相互鉴权。
如图2所示,在步骤201,在HLR/AUC中保存对应移动终端的SKEY。
在步骤202,HLR/AUC利用自己的随机数发生器产生一个RAND。
在步骤203,HLR/AUC利用自己保存的KI和自己产生的RAND计算得到XRES、CK和IK。
在步骤204,HLR/AUC利用预先设置的对应移动终端的SKEY、KI以及RAND和SQN生成MAC。这里的SQN是当前已知的,例如是预先设置好的。
在步骤205,HLR/AUC将步骤204生成的MAC以及已知的SQN组合成AUTN。
在步骤206,HLR/AUC将RAND、步骤205得到的AUTN、步骤203得到的XRES、CK和IK组成一个该移动终端的鉴权多元组。
在步骤207,HLR/AUC将鉴权多元组发送给MSC/VLR。
在步骤208,鉴权时,MSC/VLR在该移动终端的相应的鉴权多元组中提取出RAND和AUTN,作为鉴权信息发送给移动终端。
本步骤可以是移动终端向网络发送一个触发信息开始。实际当中,在移动终端发起位置更新请求或业务请求时,MSC/VLR会对移动终端发起鉴权请求,比如在移动终端开机登陆网络时MSC/VLR会向移动终端发起鉴权请求。当然,这里也可以将移动终端发起位置更新请求或业务请求理解为包含了触发鉴权的请求消息,MSC/VLR在接收到这些请求时向移动终端发送鉴权信息。
本步骤也可以是网络设备主动发起,比如,MSC/VLR在设定的时间内没有收到移动终端的相关消息,比如包含触发鉴权的信息时,主动发起一个鉴权流程,这种情况下不需要移动终端的触发消息。
在AUTN包括AMF的情况下,在步骤204中进一步考虑AMF,比如利用SKEY、KI、RAND、SQN和AMF生成MAC,其中AMF也是当前已知的,比如,预先设置好的。在步骤205中同样进一步考虑AMF,也就是将MAC、SQN和AMF共同组合成AUTN。
这里,在步骤204之前可以进一步包括一个HLR/AUC判断是否执行根据SKEY等生成鉴权信息的步骤,如果是,执行步骤204;否则按照现有流程直接根据KI和随机数生成鉴权信息,例如使用KI、RAND、SQN和AMF生成MAC,然后组合成AUTN并进一步组合成鉴权多元组。
HLR/AUC判断是否执行根据SKEY生成鉴权信息可以是预先在HLR/AUC设置一个安全标志,如果该安全标志是表示需要根据SKEY生成鉴权信息的值,例如置位为1,则意味着需要根据SKEY生成鉴权信息,如果安全标志是表示不需要根据SKEY生成鉴权信息的值,例如置位为0,则意味着不需要根据SKEY生成鉴权信息。
可替代地,HLR/AUC判断是否执行根据SKEY生成鉴权信息可以是判断SKEY是否是一个特定值,例如是0,如果是,则表示不需要根据SKEY生成鉴权信息,如果不是0而是其他任意值,则表示需要根据SKEY生成鉴权信息。
在上述方法中,HLR/AUC每产生一次鉴权多元组之后就对SQN进行一次更新,换句话说,每个鉴权多元组都具有不同的SQN。对于SQN的更新,可以按照一定的算法进行,算法根据原有的SQN生成新的SQN。具体可以参考3GPP 33.102/29.002的相关协议规定。
在现有技术中,HLR/AUC和移动终端中的用户卡都会保存一个SQN,并且在执行鉴权处理之前需要保证两个SQN一致。本发明的SQN可以使用和现有技术相同的SQN,即用于用户卡鉴权的SQN,也即网络和用户卡对应保存的SQN,具体可以参考3GPP 33.102/29.002的相关协议规定。但是较佳地,本发明另外单独设置一个专门用于移动终端鉴权的SQN,并且移动终端和HLR/AUC也会对该SQN进行同步处理。当然可以理解,单独设置的SQN和用户卡中保存的SQN可以取相同的值。
一般地,步骤207中HLR/AUC向MSC/VLR发送鉴权多元组是在接收到来自MSC/VLR的请求鉴权多元组消息后进行,或者在需要刷新MSC/VLR中保存的鉴权多元组时进行。在向MSC/VLR发送鉴权多元组之前,HLR/AUC一般会生成一个移动终端的多个鉴权多元组,这样在接收到来自MSC/VLR的获取鉴权多元组的请求消息之后,可以一次只向MSC/VLR发送一个鉴权多元组,也可以将多个鉴权多元组一起发送给MSC/VLR,比如,一次发送三个鉴权多元组到MSC/VLR。当然,MSC/VLR的请求获取鉴权多元组的请求消息中可以进一步包括需要HLR/AUC返回的鉴权多元组的数量,HLR/AUC根据MSC/VLR的请求和自己当前保存的鉴权多元组的数量来决定返回给MSC/VLR的鉴权多元组数量,比如,HLR/AUC产生了5个鉴权多元组,MSC/VLR请求3个鉴权多元组,则HLR/AUC向MSC/VLR返回3个,如果HLR/AUC产生了2个鉴权多元组,MSC/VLR请求3个鉴权多元组,则HLR/AUC向MSC/VLR返回2个鉴权多元组。
MSC/VLR在鉴权时,比如是在接收到来自移动终端的触发鉴权的请求消息后,或者需要对移动终端进行鉴权时,会从保存的该移动终端的鉴权多元组中取出一个鉴权多元组,将其中包含的RAND和AUTN等鉴权信息发送给该移动终端。如果MSC/VLR在取鉴权多元组时,发现从HLR/AUC发送来的鉴权多元组已经用完,则MSC/VLR会向HLR/AUC发送获取鉴权多元组的命令。
实际当中,上述计算鉴权多元组操作可以是在AUC中完成,AUC将计算得到的鉴权多元组发送给HLR临时保存,HLR在接收到MSC/VLR请求鉴权多元组的请求消息时,或者在需要刷新MSC/VLR中保存的鉴权多元组时,将一个或多个鉴权多元组发送给MSC/VLR保存。由于实际当中,HLR和AUC一般会集成在一起,因此,本发明里称为HLR/AUC。
相应地,MSC/VLR是移动交换中心和拜访位置寄存器模块的统称,实际当中,对于鉴权多元组的保存、向HLR请求鉴权多元组、以及对终端的鉴权判断等操作可以由VLR来实现。因为VLR一般被实现为MSC的一个模块,因此,本发明里将MSC和VLR统称为MSC/VLR。
实际当中,在上面步骤203中,也可以是HLR/AUC利用自己保存的SKEY和自己产生的RAND计算得到XRES、CK和IK。这种情况下,实现了移动终端完全替代用户卡来完成和网络的相互鉴权过程。这种情况下,较理想的做法是,移动终端的SKEY是根据鉴权密钥KI产生的。当然,也可以是HLR/AUC利用自己保存的KI、SKEY和自己产生的RAND计算得到XRES、CK和IK。
在设置SKEY后,可以进一步包括,更新MSC/VLR中保存的鉴权多元组的步骤。SKEY设置后,原来根据原有的SKEY产生的鉴权多元组中的鉴权信息失效,因此,需要重新生成鉴权多元组并更新MSC/VLR中保存的鉴权多元组。
如果专门为移动终端鉴权设置了SQN,则在设置SKEY之后,可以重新初始化该专门为移动终端鉴权设置的SQN。当然,保持该SQN不变也是可行的。
上述鉴权多元组一般是鉴权五元组。
HLR/AUC在根据SKEY、KI和RAND等生成鉴权多元组过程可以是先根据KI和RAND进行计算得到一个临时随机数TmpRAND,而后,按照现有3GPP产生鉴权五元组的协议处理方式,利用SKEY替代KI和利用临时随机数TmpRAND替代RAND等来产生AUTN、XRES、CK和IK,并由原RAND和产生的AUTN、XRES、CK以及IK组成鉴权多元组。
当然,HLR/AUC在根据SKEY、KI和RAND等生成鉴权多元组过程可以是先根据KI和RAND按照现有3GPP产生鉴权五元组的协议处理方式产生鉴权多元组,而后根据SKEY和鉴权多元组中的AUTN中的MAC进行计算,得到一个新的消息鉴权编码MAC2,并使用MAC2替代AUTN中的MAC,从而得到新的鉴权多元组。
上述说明了网络设备生成鉴权信息的处理,在网络设备生成鉴权信息之后会将该鉴权信息发送到对应的移动终端,下面说明移动终端接收到该鉴权信息之后所进行的处理。
图3示出了移动通信网络中移动终端对移动通信网络进行鉴权的总体方法流程。如图3所示,在步骤301,移动终端设置一个SKEY,这里的SKEY和网络设备保存的对应于该移动终端的SKEY一般是相同的。
在步骤302,移动终端在接收到来自网络设备的鉴权信息之后,根据该鉴权信息和自己保存的SKEY以及KI判断对网络的鉴权是否通过,如果通过,在步骤303可以正常接入网络,如果未通过,则认定当前移动终端用户非法,在步骤304停止自己的正常使用。
这里停止自己的正常使用可以是不允许移动终端接入网络,或者直接断电或关机等,并且还可以配合例如发送短消息通知亲友或安全机关等操作。
对应于图2所示的情况,移动终端对网络进行鉴权的一个具体实施例示于图4。
在步骤401,移动终端设置一个SKEY,这里的SKEY和网络设备保存的对应于该移动终端的SKEY是一致的。一般来说,终端和网络设备分别保存的是一对对称密钥,通常情况下这对对称密钥相同。
在步骤402,移动终端在接收到来自MSC/VLR的由RAND和AUTN组成的鉴权信息之后,根据自己的SKEY、当前用户卡中的KI和接收的RAND、AUTN中的SQN进行计算得到一个MAC值,并比较自己计算得到的MAC值和AUTN中的MAC值是否一致,如果不一致,则在步骤403判定对网络的鉴权失败;否则,执行步骤404。
在步骤404,移动终端判断AUTN是否可以接受,如果是可接受的,则在步骤405判定对网络的鉴权通过;否则,在步骤406移动终端认为自己保存的SQN和网络设备对应保存的SQN不同步,进一步发起同步SQN操作。
移动终端根据自己保存的SQN来判断AUTN是否可以接受。移动终端和网络设备会预先同步保存一个SQN,移动终端通过比较自己保存的SQN和AUTN中的SQN是否满足预定的条件来判断AUTN是否可以接受,该预定条件可以是AUTN中的SQN和移动终端自己保存的SQN的差值在一个预定范围内。如果移动终端判断AUTN中的SQN和自己保存的SQN的差值在所述预定范围内,则判定AUTN是可接受的;否则判定AUTN是不可接受的。
移动终端判定对网络的鉴权通过后,使用AUTN中的SQN更新自己保存的SQN。
在AUTN包括AMF的情况下,在步骤402中进一步考虑AMF,比如利用自己的SKEY、KI、接收的RAND、AUTN中的SQN和AMF生成MAC值。
这里,在步骤402之前可以进一步包括一个判断是否执行根据SKEY对网络进行鉴权的步骤,如果是,执行步骤402;否则按照现有流程将RAND发送给用户卡,由用户卡对网络进行鉴权。
步骤402可以进一步是:移动终端在接收到来自MSC/VLR的由RAND和AUTN组成的鉴权信息之后,将RAND发送给用户卡,由用户卡根据卡中的KI和RAND进行计算得到一个临时随机数TmpRAND,并将TmpRAND发送给移动终端。移动终端根据自己的SKEY和用户卡计算得到的TmpRAND、AUTN中的SQN进行计算得到一个MAC值,并比较自己计算得到的MAC值和AUTN中的MAC值是否一致,如果不一致,则在步骤403判定对网络的鉴权失败;否则,执行步骤404。
在步骤402还可以进一步是:移动终端在接收到来自MSC/VLR的由RAND和AUTN组成的鉴权信息之后,将RAND和AUTN中的SQN发送给用户卡,由用户卡根据卡中的KI、RAND和AUTN中的SQN进行计算得到一个MAC值,并将MAC发送给移动终端。移动终端根自己保存的SKEY和用户卡计算得到的MAC进行计算,得到一个新的消息鉴权编码MAC2,并比较自己计算得到的MAC2值和AUTN中的MAC值是否一致,如果不一致,则在步骤403判定对网络的鉴权失败;否则,执行步骤404。
移动终端判断是否执行根据SKEY对网络进行鉴权可以是预先设置一个安全标志,如果该安全标志是表示需要根据SKEY对网络进行鉴权的值,例如置位为1,则意味着需要根据SKEY对网络进行鉴权,如果安全标志是表示不需要根据SKEY对网络进行鉴权的值,例如置位为0,则意味着不需要根据SKEY对网络进行鉴权。
可替代地,移动终端判断是否执行根据SKEY对网络进行鉴权可以是判断SKEY是否是一个特定值,例如是0,如果是,则表示不需要根据SKEY对网络进行鉴权,如果不是0而是其他任意值,则表示需要根据SKEY对网络进行鉴权。
同样,这里的SQN可以使用和现有技术相同的SQN,即用于用户卡鉴权的SQN,也即网络和用户卡对应保存的SQN,具体可以参考3GPP33.102/29.002的相关协议规定。但是较佳地,本发明另外单独设置一个专门用于移动终端鉴权的SQN,并且移动终端和HLR/AUC也会对该SQN进行同步处理。当然可以理解,单独设置的SQN和用户卡中保存的SQN可以取相同的值。
由于移动终端中保存的SKEY和网络设备保存的SKEY一致,比如相同,因此,在移动终端中的SKEY可以是对应于用户卡编号或IMSI来保存的SKEY。当然,当移动终端仅仅支持一个用户卡时,该SKEY可以直接保存在移动终端,而不是按照支持的用户卡编号或IMSI来保存。当移动终端支持多于一个用户卡时,对应于用户卡编号或IMSI来保存的SKEY时,移动终端可以根据当前用户卡编号或IMSI来选择使用哪个SKEY来对网络进行鉴权。由于支持多卡的情况是本发明的一个扩展应用例子,本领域人员根据本发明思想很容易开发具体的应用,因此,这里不再对其进行详细描述。
上面分别说明了网络设备生成鉴权信息的流程和移动终端对网络进行鉴权的流程。下面根据图5说明本发明的移动通信网络中的鉴权方法的流程。
如图5所示,在步骤501,在网络设备和移动终端中同时设置一个对应移动终端鉴权的SKEY。当然,这里网络设备设置的SKEY可以是对应移动终端特征信息来设置的SKEY,也可以是对应于用户卡的IMSI来设置的SKEY。网络设备也可以根据移动用户的MSISDN来设置SKEY。
在步骤502,网络设备在针对某一个移动终端生成鉴权信息时,产生一个RAND。
在步骤503,网络设备利用对应该移动终端的SKEY、对应于移动终端当前用户卡的KI和产生的RAND生成鉴权信息。
在步骤504,网络设备将鉴权信息发送到对应的移动终端。
在步骤505,移动终端在接收到来自网络设备的鉴权信息之后,根据该鉴权信息和自己保存的SKEY与用户卡中的KI判断对网络的鉴权是否通过,如果通过,在步骤506可以正常接入网络,如果未通过,则认定当前用户非法,在步骤507进入异常处理过程,比如,停止正常使用,禁止网络业务。
移动终端判定对网络的鉴权通过后,使用接收的鉴权信息中的AUTN中的SQN更新自己保存的SQN。
下面结合图2和图4的具体实施例说明完整的鉴权方法。如图6所示,在步骤601,在HLR/AUC和移动终端中同时设置对应移动终端鉴权的SKEY。
在步骤602,HLR/AUC利用自己的随机数发生器产生一个RAND。
在步骤603,HLR/AUC利用自己保存的KI和自己产生的RAND计算得到XRES、CK和IK。
在步骤604,HLR/AUC利用预先保存的对应移动终端的SKEY、KI以及RAND和SQN生成MAC。这里的SQN是当前已知的,比如,预先设置好的。
在步骤605,HLR/AUC将MAC以及已知的SQN组合成AUTN。
在AUTN包括AMF的情况下,在步骤604中进一步考虑AMF,比如利用SKEY、KI、RAND、SQN和AMF生成MAC,其中AMF也是预先设置的。在步骤605中同样进一步考虑AMF,也就是将MAC、SQN和AMF共同组合成AUTN。
在步骤606,HLR/AUC将RAND、AUTN、XRES、CK和IK组成一个鉴权多元组。
在步骤607,HLR/AUC将该鉴权多元组发送给MSC/VLR。
在步骤608,鉴权时,MSC/VLR在该移动终端的相应的鉴权多元组中提取出RAND和AUTN,作为鉴权信息发送给移动终端。
本步骤可以是移动终端向网络发送一个触发信息开始的。实际当中,在移动终端发起位置更新请求,或业务请求时,MSC/VLR会对终端发起鉴权请求,比如在移动终端开机登陆网络时MSC/VLR会向终端发起鉴权请求。
本步骤可以是网络设备主动发起,比如,网络设备在设定的时间内没有接收到移动终端的相关消息,比如包含触发鉴权的信息时,主动发起一个鉴权流程。
在步骤609,移动终端在接收到来自MSC/VLR的RAND和AUTN之后,根据自己的SKEY、KI和接收的RAND、AUTN中的SQN计算得到一个MAC值,并比较自己计算得到的MAC值和AUTN中的MAC值是否一致,如果不一致,则在步骤610判定对网络的鉴权失败;否则,执行步骤611。
在步骤611,移动终端首先判断AUTN是否可以接受,比如判断AUTN中的SQN和自己保存的SQN的差值是否在一个预定范围内,如果不是,在步骤612判定AUTN不可接受,也即,自己保存的SQN和网络保存的SQN失去同步;否则在步骤613判定对网络的鉴权通过。
在步骤612,移动终端可以进一步向网络发送一个AUTN不可接受命令,比如,发起一个同步SQN的同步命令,通过同步流程,使移动终端和网络对应保存的SQN一致。关于SQN同步流程,可以参考现有技术中关于SQN同步的描述,参见3GPP 33.102/29.002相关协议,在此不再赘述。
移动终端判定对网络的鉴权通过后,使用接收的AUTN中的SQN更新自己保存的SQN。
在AUTN包括AMF的情况下,在步骤609中进一步考虑AMF,比如移动终端利用自己的SKEY、KI、RAND、AUTN中的SQN和AMF生成MAC值。
上述说明了本发明的移动终端对网络进行鉴权的处理,本发明还可以进一步包括由网络对移动终端进行鉴权的处理,也就是在步骤613之后,继续执行网络对终端进行鉴权的后续步骤。
如图7所示,步骤701-713和步骤601-613完全相同,不再重复说明,并且在图中使用一个字母A替代。
在步骤714,移动终端将RAND发送给用户卡。
在步骤715,用户卡使用自己的KI和接收的RAND生成XRES、CK和IK。
在步骤716,用户卡将生成的XRES发送给移动终端。
在步骤717,移动终端将接收自用户卡的XRES发送给MSC/VLR。
在步骤718,MSC/VLR比较接收自移动终端的XRES和接收自HLR/AUC的该移动终端的相应的鉴权多元组中XRES是否一致。如果一致,在步骤719判定网络对移动终端鉴权通过;否则在步骤720判定网络对移动终端鉴权失败。
这里在步骤714,为了和现有处理兼容,移动终端在发送RAND的同时可以发送AUTN,这样用户卡可以进一步根据AUTN和自己的KI对网络进行鉴权。在这种情况下,移动终端可以将发送给用户卡的AUTN设置成一个表示由移动终端对网络进行鉴权的特殊值,用户卡在判断出AUTN是该特殊值之后,仅仅使用KI和RAND产生XRES、CK和IK,而不再根据AUTN和KI对网络进行鉴权。
在用户卡根据KI和RAND生成XRES、CK和IK时,也可以只产生XRES和CK,然后将产生的XRES和CK发送给移动终端,由移动终端根据CK导出IK。
上述步骤717,移动终端将接收自用户卡的XRES发送给MSC/VLR之前,可以判断网络是否为第二代移动通信网络,如果是,移动终端可以根据XRES、CK、IK等导出用于第二代网络鉴权的符号响应(SRES2g,SignedResponse)和密码密钥(KC2g,Cipher Key),使用生成的SRES2g替代XRES传送给MSC/VLR,使用KC2g和网络设备进行相关通信数据的加解密。相关推导方法在现有3GPP中相关协议有建议,在此不再赘述。
另外,关于第二代移动通信网络的鉴权请参考GSM 03.20和GSM09.02。
另外,XRES、CK、IK也可以由SKEY和RAND产生,在此情况下,提出了如图8所示的另一实施例。
在步骤801,首先在HLR/AUC和移动终端中同时保存对应移动终端鉴权的SKEY。
在步骤802,HLR/AUC利用自己的随机数发生器产生一个RAND。
在步骤803,HLR/AUC利用预先保存的对应移动终端的SKEY和自己产生的RAND计算得到XRES、CK和IK。
在步骤804,HLR/AUC利用预先保存的对应移动终端的SKEY、对应当前用户的KI以及RAND和SQN生成MAC。这里的SQN是当前已知的,例如预先设置好的。
在步骤805,HLR/AUC将MAC以及已知的SQN组合成AUTN。
在AUTN包括AMF的情况下,在步骤804中进一步考虑AMF,比如利用SKEY、RAND、SQN和AMF生成MAC,其中AMF也是预先设置的。在步骤805中同样进一步考虑AMF,也就是将MAC、SQN和AMF共同组合成AUTN。
在步骤806,HLR/AUC将RAND、AUTN、XRES、CK和IK组成一个鉴权多元组。
在步骤807,HLR/AUC将该鉴权多元组发送给MSC/VLR。
在步骤808,鉴权时,MSC/VLR在该移动终端的相应鉴权多元组中提取出RAND和AUTN,作为鉴权信息发送给移动终端。
在步骤809,移动终端在接收到来自MSC/VLR的RAND和AUTN之后,根据自己的SKEY、KI和接收的RAND、AUTN中的SQN计算得到一个MAC值,并比较自己计算得到的MAC值和AUTN中的MAC值是否一致,如果不一致,则在步骤810判定对网络的鉴权失败;否则,执行步骤811。
在步骤811,移动终端判断AUTN是否可以接受,比如判断AUTN中的SQN和自己保存的SQN的差值是否在一个预定范围内,如果不是,在步骤812则判定AUTN是不可接受;否则,在步骤813判定对网络的鉴权通过。
在步骤812,移动终端可以进一步向网络发送一个AUTN不可接受命令,比如,发起一个同步SQN的同步命令,通过同步流程,使移动终端和网络对应保存的SQN同步。
移动终端判定对网络的鉴权通过后,使用接收的AUTN中的SQN更新自己保存的SQN。
在AUTN包括AMF的情况下,在步骤809中进一步考虑AMF,比如利用自己的SKEY、KI、RAND、AUTN中的SQN和AMF生成MAC值。
在步骤814,移动终端使用自己的SKEY和接收的RAND生成XRES、CK和IK。并将自己生成的XRES发送给MSC/VLR。
在步骤815,MSC/VLR比较接收自移动终端的XRES和接收自HLR/AUC的该移动终端的相应的鉴权多元组中XRES是否一致。如果一致,在步骤816判定网络对移动终端鉴权通过;否则在步骤817判定网络对移动终端鉴权失败。
另外,HLR/AUC在根据SKEY、KI和RAND等生成鉴权多元组时,可以先根据KI和RAND进行计算得到一个TmpRAND,而后,按照现有3GPP产生鉴权五元组的协议处理方式,利用SKEY替代KI和利用TmpRAND替代RAND等来产生AUTN、XRES、CK和IK,并由原RAND和产生的AUTN、XRES、CK以及IK组成鉴权多元组;对应地,移动终端在接收到来自MSC/VLR的由RAND和AUTN组成的鉴权信息之后,将RAND发送给用户卡,由用户卡根据卡中的KI和RAND进行计算得到一个TmpRAND,并将TmpRAND发送给移动终端。移动终端根据自己的SKEY和用户卡计算得到的TmpRAND、AUTN中的SQN进行计算得到一个MAC值,并比较自己计算得到的MAC值和AUTN中的MAC值是否一致,如果不一致,则在判定对网络的鉴权失败;否则,否则执行进一步判断AUTN是否可以接受的步骤。在此情况下,提出了如图9所示的另一实施例。
在步骤901,在HLR/AUC和移动终端中同时保存对应移动终端鉴权的SKEY。
在步骤902,HLR/AUC利用自己的随机数发生器产生一个RAND,并根据KI和RAND进行计算得到一个TmpRAND。
在步骤903,HLR/AUC利用预先保存的对应移动终端的SKEY和TmpRAND产生XRES、CK和IK。
在步骤904,HLR/AUC利用预先保存的对应移动终端的SKEY、TmpRAND和SQN生成MAC。这里的SQN是当前已知的,例如预先设置好的。
在步骤905,HLR/AUC将MAC以及已知的SQN组合成AUTN。
在AUTN包括AMF的情况下,在步骤904中进一步考虑AMF,比如利用SKEY、RAND、SQN和AMF生成MAC,其中AMF也是预先设置的。在步骤905中同样进一步考虑AMF,也就是将MAC、SQN和AMF共同组合成AUTN。
在步骤906,HLR/AUC将RAND和产生的AUTN、XRES、CK以及IK组成一个鉴权多元组。
在步骤907,HLR/AUC将该鉴权多元组发送给MSC/VLR。
在步骤908,鉴权时,MSC/VLR在该移动终端的相应鉴权多元组中提取出RAND和AUTN,作为鉴权信息发送给移动终端。
在步骤909,移动终端在接收到来自MSC/VLR的RAND和AUTN之后,将RAND发送给用户卡,由用户卡根据卡中的KI和RAND进行计算得到一个TmpRAND,并将TmpRAND发送给移动终端;移动终端根据自己的SKEY、用户卡计算得到的TmpRAND和接收的AUTN中的SQN进行计算得到一个MAC值,并比较自己计算得到的MAC值和AUTN中的MAC值是否一致,如果不一致,则在步骤910判定对网络的鉴权失败;否则,执行步骤911。
在步骤911,移动终端判断AUTN是否可以接受,比如判断AUTN中的SQN和自己保存的SQN的差值是否在一个预定范围内,如果不是,在步骤912则判定AUTN是不可接受;否则,在步骤913判定对网络的鉴权通过。
在步骤912,移动终端可以进一步向网络发送一个AUTN不可接受命令,比如,发起一个同步SQN的同步命令,通过同步流程,使移动终端和网络对应保存的SQN同步。
移动终端判定对网络的鉴权通过后,使用接收的AUTN中的SQN更新自己保存的SQN。
在AUTN包括AMF的情况下,在步骤909中进一步考虑AMF,比如利用自己的SKEY、KI、RAND、AUTN中的SQN和AMF生成MAC值。
在步骤914,移动终端使用自己的SKEY和用户卡产生的TmpRAND生成XRES、CK和IK。并将自己生成的XRES发送给MSC/VLR。
在步骤915,MSC/VLR比较接收自移动终端的XRES和接收自HLR/AUC的该移动终端的相应的鉴权多元组中XRES是否一致。如果一致,在步骤916判定网络对移动终端鉴权通过;否则在步骤917判定网络对移动终端鉴权失败。
相应地,HLR/AUC在根据SKEY、KI和RAND等生成鉴权多元组时,可以先根据KI和RAND按照现有3GPP产生鉴权五元组的协议处理方式产生鉴权多元组,而后根据SKEY和鉴权多元组中的AUTN中的MAC进行计算,得到一个新的消息鉴权编码MAC2,并使用MAC2替代AUTN中的MAC,从而得到新的鉴权多元组;相应地,移动终端在接收到来自MSC/VLR的由RAND和AUTN组成的鉴权信息之后,将RAND和AUTN中的SQN发送给用户卡,由用户卡根据卡中的KI、RAND和AUTN中的SQN进行计算得到一个MAC值,并将MAC发送给移动终端。移动终端根自己保存的SKEY和用户卡计算得到的MAC进行计算,得到一个MAC2,并比较自己计算得到的MAC2和AUTN中的MAC是否一致,如果不一致,则判定对网络的鉴权失败;否则,执行进一步判断AUTN是否可以接受的步骤。在此情况下,提出了如图10所示的另一实施例。
在步骤1001,在HLR/AUC和移动终端中同时保存对应移动终端鉴权的SKEY。
在步骤1002,HLR/AUC利用自己的随机数发生器产生一个RAND。
在步骤1003,HLR/AUC利用KI和RAND产生XRES、CK和IK。
在步骤1004,HLR/AUC利用KI、RAND和SQN生成MAC,而后根据SKey和MAC进行计算得到一个MAC2。这里的SQN是当前已知的,例如预先设置好的。
在步骤1005,HLR/AUC将MAC2以及已知的SQN组合成AUTN。
在AUTN包括AMF的情况下,在步骤1004中进一步考虑AMF,比如利用SKEY、RAND、SQN和AMF生成MAC,其中AMF也是预先设置的。在步骤1005中同样进一步考虑AMF,也就是将MAC2、SQN和AMF共同组合成AUTN。
在步骤1006,HLR/AUC将RAND、AUTN、XRES、CK以及IK组成一个鉴权多元组。
在步骤1007,HLR/AUC将该鉴权多元组发送给MSC/VLR。
在步骤1008,鉴权时,MSC/VLR在该移动终端的相应鉴权多元组中提取出RAND和AUTN,作为鉴权信息发送给移动终端。
在步骤1009,移动终端在接收到来自MSC/VLR的RAND和AUTN之后,将RAND和AUTN中的SQN发送给用户卡,由用户卡根据卡中的KI、RAND和AUTN中的SQN进行计算得到一个MAC值,并将MAC发送给移动终端;移动终端根据自己保存的SKEY和用户卡计算得到的MAC进行计算,得到一个MAC2,并比较自己计算得到的MAC2值和AUTN中的MAC值是否一致,如果不一致,则在步骤1010判定对网络的鉴权失败;否则,执行步骤1011。
在步骤1011,移动终端判断AUTN是否可以接受,比如判断AUTN中的SQN和自己保存的SQN的差值是否在一个预定范围内,如果不是,在步骤1012则判定AUTN是不可接受;否则,在步骤1013判定对网络的鉴权通过。
在步骤1012,移动终端可以进一步向网络发送一个AUTN不可接受命令,比如,发起一个同步SQN的同步命令,通过同步流程,使移动终端和网络对应保存的SQN同步。
移动终端判定对网络的鉴权通过后,使用接收的AUTN中的SQN更新自己保存的SQN。
在AUTN包括AMF的情况下,在步骤1009中进一步考虑AMF,比如利用自己的SKEY、KI、RAND、AUTN中的SQN和AMF生成MAC值。
在步骤1014,移动终端使用当前用户卡的KI和接收的RAND生成XRES、CK和IK。并将自己生成的XRES发送给MSC/VLR。
这里移动终端生成XRES、CK和IK的过程可以由用户卡来完成,比如移动终端在判断对网络鉴权通过后给用户卡发送一个命令,由用户卡来生成生成XRES、CK和IK。上述步骤1009中用户卡可以进一步产生XRES、CK和IK,这样,步骤1014移动终端就不再需要产生XRES、CK和IK了,即,步骤1014为移动终端将用户卡生成的XRES发送给MSC/VLR。
在步骤1015,MSC/VLR比较接收自移动终端的XRES和接收自HLR/AUC的该移动终端的相应的鉴权多元组中XRES是否一致。如果一致,在步骤1016判定网络对移动终端鉴权通过;否则在步骤1017判定网络对移动终端鉴权失败。
上述各种方法中,进一步包括HLR/AUC在产生鉴权多元组之前或之后更新SQN的步骤。
上述各种方法中,网络设备比如MSC/VLR在向终端发送鉴权信息时,可以一次发送,也可以分多次发送。比如,第一次传送一个RAND,第二次传送AUTN。实际当中,将根据网络的协议能力来决定分几次发送。比如,在第三代UMTS网络中,MSC/VLR可以一次将RAND、AUTN等鉴权信息通过鉴权命令发送给移动终端,而在第二代移动通信网络中,MSC/VLR可能需要通过两次或多次将RAND、AUTN等鉴权信息通过第二代网络的鉴权命令发送给移动终端。
本发明中产生RAND、产生鉴权多元组、以及产生XRES、CK、IK及MAC等等所使用的算法,可以是利用3GPP现有协议规定或建议的算法,也可以单独确定算法。关于第三代移动通信网络的鉴权请参考3G TS 33.102和3G TS 29.002。
上述MSC/VLR为电路域网络中的设备,对于分组域的网络,对应的MSC/VLR设备可以为SGSN。
可以理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。