专利名称:鉴权和密钥协商方法、认证方法、系统及设备的利记博彩app
技术领域:
本发明涉及通信领域,特别涉及认证技术。
背景技术:
随着技术的进步,传统核心网向全IP网络演进成为网络发展的趋势。第三代移动通信合作伙伴项目(3rd Generation Partnership Pro ject,简称 “3GPP”)在 R5/R6 标准提出的基于IP的多媒体子系统(IP based Multimedia Subsystem,简称“MS”)即专门为下一代全IP的多媒体移动网络设计的系统,着眼于用IP网络承载移动多媒体业务,使运营商和终端用户从多媒体服务的革新中获取更快速、更灵活的应用,从而为运营商增加收入、创造利润。第三代合作伙伴项目2 (3rd Generation Partnership Project 2,简称“3GPP2”)已经制定了相应的頂S规范,即多媒体域(Multimedia Domain,简称“MMD”)标准。MMD与3GPP中IMS对应的实体和接口是基本——对应的。IMS是基于会话初始化协议(Session Initiation Protocol,简称“SIP”)的体系,SIP是按客户端/服务器方式工作的基于文本的信息协议,IMS使用SIP呼叫控制机制来创建、管理和终结各种类型的多媒体业务。3GPP定义的MS的框架结构包括呼叫会话控制功能(Call Session ControlFunction,简称 “CSCF”)、媒体网关控制功能(Media Gateway Control Function,简称“MGCF”)、多媒体资源功能(Multimedia Resource Function,简称“MRF”)、和归属用户服务器(Home Subscriber Server,简称 “HSS”)等功能实体。其中,CSCF又可以分成服务CSCF (Serving CSCF,简称“S-CSCF”)、代理CSCF (Proxy CSCF,简称 “P-CSCF,,)和查询 CSCF (Interrogating CSCF,简称 “ I-CSCF,,)三个逻辑实体。S-CSCF是MS的业务交换中心,执行会话控制,负责管理用户信息,产生计费信息等;P_CSCF是终端用户接入IMS的接入点,完成用户注册,负责服务质量控制和安全管理等;I-CSCF负责MS域之间的互通,管理S-CSCF的分配,对外隐藏网络拓扑和配置,产生计费数据等。在终端发起呼叫前,需要在MS核心网实体进行注册。注册过程使得终端可以使用IMS服务。IMS注册使用的是基于鉴权和密钥协商(Authentication and Key Agreement,简称“AKA”)的流程。在AKA流程中,首先由终端向网络侧发送认证请求,在请求中包含用户身份。网络侧根据该请求中的用户身份获取该终端的根密钥,并根据该根密钥计算用于认证的认证向量(AV),AV包括五个参数随机数RAND,AUTN,期待的响应XRES以及完整性密钥IK和加密密钥CK ;其中,AUTN又包含有序列号SQN和MAC两个参数,MAC值是根据随机数RAND、SQN以及终端根密钥计算得到的,用来让终端认证网络侧。之后,网络侧将RAND和AUTN通过认证挑战消息Auth_ChalIenge发送给终端。终端收到该挑战消息后,根据其中的RAND、SQN以及该终端的根密钥计算相应的XMAC,并将XMAC和消息中的MAC做比较,如果相同,则接着校验收到的SQN是否大于本地保存的SQN,并且其差值在有效范围内,以防止重放攻击。如果是,则该终端成功地认证了网络。终端接着根据该RAND计算RES、完整性密钥IK和加密密钥CK,其中RES是用来让网络认证终端的参数。之后终端向网络侧发送认证响应SIPRegister,在响应消息中包含用户身份,将RES作为该响应消息的密钥。网络侧根据该响应消息中的用户身份找到对应的XRES,检验该RES,判断该响应消息是否合法,如果合法则认证成功。可见,在该AKA流程中,只有在终端侧验证网络合法、且网络侧验证终端合法,才均使得认证成功。为了确保终端能够有效验证网络侧,实现AKA过程,终端必须在本地保存有SQN,网络侧同样为每个终端也保存有对应的SQN,终端与网络侧保存的SQN同步。在每次网络侧发送挑战消息和终端检验SQN后,两侧的SQN均会改变且单调递增。因此,终端在收到网络侧发送的认证挑战消息后,可以根据消息包含的AV中的SQN是否大于本终端保存的SQN,或两者的差值是否在一个限定的范围内,来判断该认证挑战消息是否新鲜。如果收到的认证挑战消息中的SQN大于终端本地的SQN,则说明该认证挑战消息中的SQN是有效的,否则认为是重放攻击,也就是说,该消息是被非法网络截获后重发的,不具备安全性。这种情况下,终端发起与网络侧的重同步过程,使得网络侧的SQN(序列号)与终端保存的SQN重新同步。由于在认证的过程中,终端和网络侧均需要使用到用户身份、SQN、根密钥,这些信息保存在ISM(即MS的用户身份模块)上,因此通常而言,支持MS的终端需要具有ISM模块。这个模块是3G用户卡nCC或者R-UM的一部分,对于没有ISM的2G用户卡而言,无法实现MS业务的注册。终端侧的用户标识、SQN和MS的根密钥都保存在卡上,因此能保证这些参数的安全性。如果终端为机卡一体,也就是没有ncc或者R-UM时,这些参数保存在终端的安全内存中。这样的终端只为一个用户服务。目前,有些运营商希望为使用2G卡的用户提供MS的业务,因此需要考虑如何为这些用户保存以上参数,即MS密钥、SQN等。有方法提出动态生成MS密钥,并且在这些用户使用的终端,也就是除去用户卡的用户设备上维护和保存SQN。然而本发明的发明人发现,该方法中,由于SQN保存在终端上,用户更换终端时,终端需要产生新的SQN,这个SQN与之前所使用的无法关联,从而无法保证SQN的单调递增性,这样可能导致非法网络的重放攻击。比如说,用户通过2G卡先在终端I上进行MS注册认证,在AKA过程中使用终端I中保存的SQN进行网络验证,在该次网络验证之后,终端I上保存的SQN会发生变化,单调递增;之后该用户通过该2G卡在终端2上再次进行认证,此时,该终端2上为此用户重新生成的SQN可能会比之前的小(未确保单调递增性)。此时,如果非法网络截获用户上次认证时的认证挑战消息进行重放攻击,终端将误 认该非法消息为合法认证挑战消息,即无法抵抗该重放攻击。
发明内容
本发明实施方式要解决的主要技术问题是提供一种鉴权和密钥协商方法、认证方法、系统及设备,使得在用户卡不支持SQN的保存的情况下,能够抵抗AKA过程中的重放攻击。为解决上述技术问题,本发明的实施方式提供了一种鉴权和密钥协商方法,包含以下步骤网络侧收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号生成第一认证码,将该随机数、第一序列号和第一认证码 发送给终端;终端对收到的随机数、第一序列号和第一认证码进行验证,如满足以下条件则认定网络侧合法根据与网络侧的共享密钥、随机数和第一序列号生成的第二认证码与第一认证码相同;代表终端侧当前系统时间的第二序列号与第一序列号的差值满足预定条件;终端认定网络侧合法后,根据与网络侧的共享密钥和随机数生成响应值,发送给网络侧;如果网络侧对响应值验证成功,则认定终端合法。本发明的实施方式还提供了一种鉴权和密钥协商系统,包含网络侧和终端,网络侧包含第一生成单元,用于在收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号生成第一认证码;发送单元,用于将随机数、第一序列号和第一生成单元生成的第一认证码发送给终端;终端包含接收单元,用于从网络侧接收随机数、第一序列号和第一认证码;第二生成单元,用于根据与网络侧的共享密钥和接收单元收到的随机数,生成第二认证码和响应值;发送单元,用于将响应值发送给网络侧;验证单元,用于对接收单元收到的随机数、第一序列号和第一认证码进行验证,在第二生成单元生成的第二认证码与第一认证码相同,且代表终端侧当前系统时间的第二序列号与第一序列号的差值满足预定条件时,认定网络侧合法;第二生成单元在验证单元认定网络侧合法后,根据与网络侧的共享密钥和随机数生成响应值。本发明的实施方式还提供了一种终端设备,包含接收单元,用于从网络侧接收随机数、第一序列号和第一认证码;生成单元,用于根据与网络侧的共享密钥和接收单元收到的随机数,生成第二认证码和响应值;发送单元,用于将响应值发送给网络侧;验证单元,用于对接收单元收到的随机数、第一序列号和第一认证码进行验证,在生成单元生成的第二认证码与第一认证码相同,且代表终端侧当前系统时间的第二序列号与第一序列号的差值满足预定条件时,认定网络侧合法;生成单元在验证单元认定网络侧合法后,根据与网络侧的共享密钥和随机数生成响应值。本发明的实施方式还提供了一种认证方法,包含以下步骤
如果第二设备确定本设备没有保存待认证的用户的第四序列号,则根据该第二设备的系统时间为该用户生成第四序列号,并通过与第一设备的交互将由第一设备保存的该用户的第三序列号与该第四序列号同步;第二设备和第一设备使用同步后的第三、第四序列号进行交互消息的抗重放认证。本发明的实施方式还提供了一种通信设备,包含第一存储单元,用于保存用户的第四序列号;生成单元,用于在确定该第一存储单元没有保存待认证的用户的第四序列号时,根据该通信设备的系统时间为该用户生成第四序列号,并指示该第一存储单元保存该第四序列号;第一同步单元,用于通过与通信设备的对端设备的交互将由对端设备保存的用户的第三序列号与第四序列号同步;第一认证单元,用于使用同步后的第四序列号与对端设备进行交互消息的抗重放认证。本发明的实施方式还提供了一种通信设备,包含第二存储单元,用于保存用户的第三序列号;接收单元,用于从通信设备的对端设备接收待认证的用户的第四序列号;第二同步单元,用于将第二存储单元保存的第三序列号与接收单元收到的第四序列号同步;第二认证单元,用于使用更新后的第三序列号与对端设备进行交互消息的抗重放认证。本发明的实施方式还提供了一种认证系统,包含至少一个如上文所述的第一种通信设备和至少一个如上文所述的第二种通信设备,该第一种通信设备和该第二种通信设备互为进行认证的对端设备。本发明实施方式与现 有技术相比,主要区别及其效果在于网络侧收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号SQNl生成第一认证码MAC,将该随机数、第一序列号SQNl和第一认证码MAC发送给该终端;终端根据与网络侧的共享密钥、收到的随机数和第一序列号SQNl生成第二认证码XMAC,如果该第二认证码XMAC与第一认证码MAC相同,且代表终端侧当前系统时间的第二序列号SQN2与第一序列号SQNl的差值满足预定条件,则该终端认定网络侧合法;如果,XMAC与MAC相同,但终端侧的SQN2与网络侧的SQNl的差值不满足预定条件,则认定用于发送该随机数、第一序列号SQNl和第一认证码MAC的消息是网络侧在之前发送的,可能被非法网络复制后重放,不具备安全性,认证失败。由于系统时间是每个终端均能够自动且唯一确定的,因此终端无需根据上次认证后的SQN2来生成本次认证过程中的SQN2,即使用户卡无法保存其上次认证后的SQN2,或在上次认证之后用户卡更换到了其它终端,均能唯一且准确地生成本次认证的SQN2,不会因为SQN2的无法确认或错误而将非法网络重放的随机数、第一序列号和认证码误认为合法,从而能够有效抵抗重放攻击。如果第二设备确定本设备没有保存待认证的用户的第四序列号,则根据该第二设备的系统时间为该用户生成第四序列号,并通过与第一设备的交互将由第一设备保存的该用户的第三序列号与该第四序列号同步;第二设备和第一设备使用同步后的第三、第四序列号进行交互消息的抗重放认证。由于在第一设备保存的用户的第三序列号是根据认证的次数递增的,而系统时间是自动递增的,且能够很容易地保证系统时间自动递增的频率大于第二设备认证的频率,因此根据系统时间生成的第四序列号比第一设备和用户侧原先保存的第三第四序列号大,如第二设备认证频率为十秒一次,则可以根据系统时间的总秒数生成第四序列号,如第二设备认证频率为十毫秒一次,则可以根据系统时间的总毫秒数生成第四序列号,从而可以保证根据系统时间生成的第四序列号一定大于根据认证次数递增得到序列号。因此采用该系统时间生成的第四序列号为第一设备和第二设备侧进行序列号的重同步,在不知道当前保存和使用的第三序列号和第四序列号的情况下,依然能够确保重同步后的序列号是递增的,从而能够有效防止重放攻击,特别适合无法保存序列号的用户卡在更换终端设备时与网络侧设备之间进行的重同步。
图I是根据本发明第一实施方式的鉴权和密钥协商方法流程图;图2是根据本发明第二实施方式的鉴权和密钥协商方法流程图;图3是根据本发明第三实施方式的鉴权和密钥协商方法流程图;图4是根据本发明第五实施方式的认证方法流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本发明第一实施方式涉及一种鉴权和密钥协商AKA方法。与现有的AKA相比,两者最大的区别在于SQN参数设置方法的不同。在现有的AKA中,SQN是一个计数器的概念,用户侧和网络侧都维护一个计数器,并保证同步,用户的终端可以根据网络侧发送的计数器值(即SQN)和本地维护的计数器值(SQN)是否一致来判断发送SQN的网络设备是否合法。该方法要求一个用户必须统一维护一个SQN,在SQN保存在用户卡上的情况下,无论用户更换多少终端,都能统一维护一个SQN,而对于无法保存SQN的用户卡,由于只能将SQN保存在用户卡插入的终端上,在用户将同一张用户卡插入不同的终端的情况下,无法统一不同终端中保存的SQN,从而在认证时可能受到重放攻击。本实施方式继续使用SQN这个参数,但它不再是计数器的值,而是系统的时钟值,也就是时间戳(time stamp)。由于终端和网络侧都有时钟,不同的终端维护的时钟永远是一致的,即使用户的用户卡无法保存SQN,且需要插入不同的终端,只要各终端与网络侧在时间上是同步的,不同终端的SQN就一定是一致的,从而可以有效抵抗重放攻击。在本实施方式中终端对应的用户卡不支持SQN保存能力。具体的认证过程如图I所示,在步骤101中,终端向网络侧发起注册或者认证请求,请求中包含用户的身份。接着进入步骤102,网络侧收到该注册或者认证请求后,根据其中用户的身份,找到对应的用户信息,获取该用户的共享密钥K,作为认证密钥。如果用户信息中没有共享密钥,网络侧也可以通过其他方式生成认证密钥。
接着进入步骤103,网络侧产生随机数RAND,并获得系统时间,将时间值变换为48比特的SQN值。将系统时间转换成SQN值的方法有很多,根据所需要的精度,可以有不同的转换。如果精度不需要很高,可以将时间的总秒数转换成SQN值;如果精度要求高一些,可以将秒和毫秒数转换成SQN值。另外,在本实施方式中,该SQN是48比特的数值,在实际应用中,该SQN也可以是小于或大于48比特的数值,本实施方式不在此进行限制。接着进入步骤104,网络侧根据共享密钥K、随机数RAND和SQN值计算认证向量AV的其他参数。该AV包括RAND、AUTN、XREX、IK和CK,AUTN又包含序列号SQN和MAC。也就是说,该网络侧根据共享密钥K、RAND和SQN计算MAC、XRES、IK和CK。其中MAC和SQN用于供终端认证网络侧,XRES用于供网络侧在之后对终端进行认证。接着进入步骤105,网络侧将RAND、AUTN(包括SQN和MAC值)作为认证挑战消息的参数发给终端侧。接着进入步骤106,终端侧收到该认证挑战消息后,根据消息中的RAND和SQN、以及终端本身的共享密钥K,采用与网络侧相同的方法计算XMAC。并将该XMAC与收到的认证挑战消息中的MAC值做比较,如果不正确,则判定当前收到的认证挑战消息是非法的,则终止认证流程,认证失败。如果正确则进入步骤107。在步骤107中,终端继续检查SQN的值。SQN是否有效的判断方法与现有的AKA流程不同,终端首先获得当前的系统时间,并将其转换成48比特的SQN值,将本终端转换得到的SQN与接收到的认证挑战消息中的SQN进行比较,如果满足预定条件,则SQN校验成功,表明两边是同步的,该认证挑战消息是新鲜的,终端对网络的认证成功,进入步骤108 ;如果不满足预定条件,则说明消息是重放的,认证失败,结束本流程。其中,该预定条件可以是收到的认证挑战消息中的SQN与终端计算得到的SQN的差值的绝对值小于预定门限;或者,收到的认证挑战消息中的SQN与终端计算得到的SQN的差值在预定范围内等等,可以根据实际需要以及认证的精度来确定预定条件,应用十分灵活。在步骤108中,在终端对网络侧认证成功后,根据收到的认证挑战消息中的随机数RAND和终端的共享密钥K计算RES、IK和CK,将RES随响应消息发给网络侧。在步骤109中,网络侧收到该响应消息后,利用之前计算的XRES校验该响应消息中的RES,如果校验成功,则完成了对终端的认证,否则认证失败。在步骤110中,网络侧根据认证结果发送认证成功(或者认证失败)的消息给终端侧,认证结束。在认证结束后,网络侧和终端可以根据双方计算得到的IK和CK进行数据传输。另外,在本实施方式中,进行认证之前,需要保证终端侧和网络侧系统时钟的同步。可以是终端在发送认证请求之前,或网络侧在将认证挑战消息发送给终端之前,发起一次时钟同步过程,从而确保终端和网络侧的系统时间的差值在无影响的范围内,以确保终端能够准确判断其收到的认证挑战消息的合法性。需要说明的是,在现有的AKA中,网络侧AV的产生可以是成批的,每个AV所对应的随机数和SQN值不同,每次认证使用一个AV。而在本实施方式中,由于AV中的SQN必须是实时的,而网络侧不能估计到下一次认证的时间,因此需要在每次执行认证时,才产生所需要的AV。
另外,在本实施方式中,如果终端检测到SQN不同步,可以把自己这一端的SQN值发给网络侧,让网络侧重新与它同步。或者,对于时钟严格同步的网络,终端也可以不发起重同步过程,而只是重新进行认证或注册。本发明第二实施方式涉及一种鉴权和密钥协商方法。本实施方式以码分多址2000 (Code Division Multiple Access 2000,简称“CDMA2000”)网络为例对终端的认证过程进行详细说明。本实施方式也是利用时间的单向性来判断是否受到重放攻击。网络侧将其系统时间表示为48比特的SQN,将该SQN包含在认证挑战消息中发送给终端,在终端收到网络侧发送的认证挑战消息后,根据本终端当前的系统时间进行判断,如果网络侧发来的SQN所表 示的时间值与终端侧当前的时间值相比不满足预定条件,如两个时间值差值的绝对值大于预定门限,就认为SQN不同步,表示这个消息是某个攻击者发送的重放消息,终端将终止这 次认证。与现有的AKA不同,另外,在本实施方式中,如果终端检测到SQN不同步,可以把自己这一端的SQN值发给网络侧,让网络侧重新与它同步。或者,对于时钟严格同步的网络,终端也可以不发起重同步过程,而只是重新进行认证或注册。下面对CDMA2000网络中,使用2G用户卡的终端需要接入MS时进行的认证过程进行说明。对于CDMA2000网络来说,由于其物理层的设计需要保证时钟与网络侧严格同步,因此CDMA2000中的终端有着非常精确的时钟,可以直接进入认证过程。具体如图2所示,在步骤201中,终端向P-CSCF发起标准的MMD注册请求,在注册请求中携带私有用户身份MPI,P-CSCF将该注册请求转发给S-CSCF。接着进入步骤202, S-CSCF向HSS发送认证请求Cx AuthReq,来请求终端的认证数据。在该认证请求中携带该终端的IMPI。接着进入步骤203,HSS发现该终端使用的是2G用户卡,从该终端的IMPI中恢复国际移动用户识别码(International Mobile Subscriber Identity,简称“IMSI”)。然后向归属位置寄存器(Home Location Register,简称“HLR”)发送认证请求AUTHREQ,来请求该终端的认证数据。接着进入步骤204,HLR执行2G的认证过程,生成随机数RandU,并对该RandU采用CAVE算法生成认证数据AuthU,将RandU和AuthU通过认证响应消息authreq反馈给HSS。接着进入步骤205,HSS根据收到的RandU和该终端MSI中的MIN2合成Rand参数。接着进入步骤206,HSS将AuthU作为AuthR,与Rand —起再次向HLR发送2G的统一认证请求AUTHREQ,在认证请求消息中标识需要HLR返回加密密钥。接着进入步骤207,HLR收到该认证请求后,使用其中的Rand参数进行CAVE认证运算得到AuthR,并将计算得到的AuthR与HSS上报的认证请求中的AuthR值比较,如果一致则使用AuthR进行CAVE运算得到加密密钥Keys。该加密密钥Keys在CAVE机制中是由信令加密密钥(Signaling Message Encryption Key,简称“SMEKEY”)和 CDMA 私有长码掩码(CDMA Private Long Code Mask,简称 “CDMAPLCM”)组成的。接着进入步骤208,HLR向HSS发送authreq响应消息,在响应消息中将Keys值返回给HSS。接着进入步骤209, HSS以AuthR和Keys合成AKA算法的认证数据5元组(包括AUTN,XRES, IK, CK, Rand2,其中AUTN又包括MAC和SQN),该认证数据5元组相当于认证向量AV。具体地说,HSS使用AuthR和Keys生成AKA算法的认证密钥(SMEKEYI I CDMAPLCM | | AuthR)。并且生成AKA算法的128比特随机数Rand2 (HSS可以先生成96位的随机数RandT,Rand2 = RandT Rand)。之后,HSS获得系统时间,将其转换成48比特的数值,作为SQN。HSS根据该认证密钥、Rand2和SQN执行AKA算法,计算认证数据5元组剩余的参数MAC、XRES, IK和CK。接着进入步骤210, HSS向S-CSCF返回认证响应Cx AuthRsp,通过该认证响应把认证数据5元组发送给S-CSCF。接着进入步骤211,S-CSCF通过认证挑战消息把Rand2,AUTN, IK和CK发送给P-CSCF。接着进入步骤212,P-CSCF通过认证挑战消息把Rand2和AUTN发送给终端。接着进入步骤213,终端从Rand2分离出Rand参数,把Rand发给用户卡Card,即2G R-ΠΜ。接着进入步骤214,用户卡R-UM根据Rand用CAVE算法计算认证数据AuthR和Keys值,这里的Keys和步骤207中的相同,均由SMEKEY和CDMAPLCM组成。用户卡R-UM把AuthR和Keys值反馈给终端。接着进入步骤215,终端根据AuthR和Keys合成AKA算法的认证密钥,再根据P-CSCF发送的Rand2和AUTN中的SQN,用AKA算法计算认证结果XMAC,如果XMAC和P-CSCF发送的AUTN中的MAC相同,则终端继续检查SQN。具体地说,终端获取自己的系统时间,将其转换为48比特的SQN,将自身转换得到的SQN与P-CSCF发送的AUTN中的SQN做比较,如果相同或者差值满足预定条件,则SQN校验成功,说明终端和网络侧是同步的,表示消息具有新鲜性,终端对网络的认证成功。其中,预定条件可以是收到的认证挑战消息中的SQN与终端转换得到的SQN的差值的绝对值小于预定门限;或者,收到的认证挑战消息中的SQN与终端转换得到的SQN的差值在预定范围内等等,具体可以根据实际需要以及认证的精度来确定预定条件,使得应用十分灵活。在终端对网络的认证成功后,终端继续计算RES、IK和CK0接着进入步骤216,终端用RES计算注册响应消息的摘要,通过注册响应消息Register发送给P-CSCF,P-CSCF再将该消息转发给S-CSCF,该注册响应消息携带终端计算得到的RES。接着进入步骤217,S-CSCF利用XRES校验该Register注册响应消息中的RES是否正确,如果正确,表示对终端的认证成功。接着进入步骤218,S-CSCF通过P-CSCF向终端发送注册成功的消息。在注册成功后,网络侧和终端可以根据双方计算得到的IK和CK进行数据传输。
在本实施方式中,由于系统时间是每个终端均能够自动且唯一确定的,因此终端无需根据上次认证后的SQN来生成本次认证过程中的SQN,即使用户卡无法保存其上次认证后的SQN,或在上次认证之后用户卡更换到了其它终端,均能唯一且准确地生成本次认证的SQN,不会因为SQN的无法确认或错误而将非法网络重放的认证挑战消息误认为合法,能够有效抵抗重放攻击。本发明第三实施方式涉及一种鉴权和密钥协商方法,本实施方式以可扩展认证协议(Extensible Authentication Protocol,简称 “ΕΑΡ”)中的 AKA 为基础,对本实施方式的鉴权和密钥协商方法进行具体说明。如图3所示,在步骤301中,Authenticator (进行认证的设备)向Peer (终端)发送EAP请求EAP-Request消息,该消息用于向Peer请求待认证的终端的身份。接着进入步骤302,Peer通过EAP响应EAP-Response消息向Authenticator发送自己的身份。接着进入步骤303, Authenticator根据Peer发送的身份,查找到对应的用户信息,主要获取该Peer的预共享密钥,作为认证密钥。如果没有预共享密钥,也可通过其他方式产生认证密钥。Authenticator根据系统时间生成SQN,通过预共享密钥(即认证密钥)、系统生成的随机数RAND、时间戳方式的SQN计算AV (包括AUTN,XRES, IK, CK, Rand2,其中 AUTN又包括MAC和SQN)的其他参数XRES,IK, CK, MAC。由于需要对EAPAKA数据包进行完整性保护,在本步骤中,Authenticator还需要计算临时EAP密钥(Transient EAP Key,简称“TEK”),用TEK计算EAP AKA消息完整性值MAC2。接着进入步骤304, Authenticator通过EPA请求EAP-Request消息(或者是AKA挑战消息)将RAND、AUTN’以及用TEK计算的EAP AKA消息完整性值MAC2发给Peer。接着进入步骤305,Peer根据收到的RAND、AUTN中的SQN以及自身的预共享密钥计算XMAC。Peer将计算得到的XMAC值与收到的AUTN中的MAC值进行比较,如果相同,则接着校验收到的AUTN中的SQN的值是否与本地时钟同步,如果同步,则成功认证网络。这里的同步可以是收到的EAP-Request消息(或者是AKA挑战消息)中的SQN与Peer本地时钟对应的SQN的差值的绝对值小于预定门限;或者,收到的EAP-Request消息(或者是AKA挑战消息)中的SQN与终端Peer本地时钟对应的SQN的差值在预定范围内等等,可以根据实际需要以及认证的精度来确定该同步条件,使得应用十分灵活。另外,Peer同样也会计算TEK,并校验收到的MAC2。在上述校验都成功后,Peer可以根据收到的RAND、AUTN中的SQN以及自身的预共享密钥计算IK和CK,用于在AKA过程成功结束后,可以根据该IK和CK与Authenticator进行数据传输。接着进入步骤306,为了保证消息的完整性,peer也会用TEK计算EAPAKA消息的完整性值MAC3,并根据收到的EAP-Request消息(或者是AKA挑战消息)中的随机数RAND、以及Peer的共享密钥计算RES,将计算得到的RES和MAC3通过EAP响应EAP-Response消息(或者AKA挑战消息)发送给Authenticator。接着进入步骤307, Authenticator校验MAC3是否正确,并比较RES是否与原来计算的AV中的XRES相同,如果相同,说明peer是合法用户,接着进入步骤308。在步骤308中,Authenticator将认证成功EAP Success消息发给Peer,表示成功的认证了该Peer, EAP AKA过程结束。在成功完成认证后,Authenticator和Peer可以根据双方计算得到的IK和CK进行数据传输。在本实施方式中,由于系统时间是每个Peer均能够自动且唯一确定的,因此Peer无需根据上次认证后的SQN来生成本次认证过程中的SQN,即使用户卡无法保存其上次认证后的SQN,或在上次认证之后用户卡更换到了其它Peer,均能唯一且准确地生成本次认证的SQN,不会因为SQN的无法确认或错误而将非法网络重放的挑战消息误认为合法,能够有效抵抗重放攻击。
另外,需要说明的是,在以上各实施方式中,除了将系统时间转换为48比特的值全部填入SQN外,还可以将系统时间转换为64比特的值,其中48bit填入SQN,余下的16bit填入AKA中另一个参数AMF,从而提高系统时间的精度,使得验证时的准确性更高。本发明第四实施方式涉及一种鉴权和密钥协商系统,包含网络侧和终端,其中,网络侧包含第一生成单元,用于在收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号生成第一认证码;发送单元,用于将随机数、第一序列号和第一生成单元生成的第一认证码发送给终端。终端包含接收单元,用于从网络侧接收随机数、第一序列号和第一认证码;第二生成单元,用于根据与网络侧的共享密钥和接收单元收到的随机数,生成第二认证码和响 应值;发送单元,用于将响应值发送给网络侧;验证单元,用于对接收单元收到的随机数、第一序列号和第一认证码进行验证,在第二生成单元生成的第二认证码与第一认证码相同,且代表终端侧当前系统时间的第二序列号与第一序列号的差值满足预定条件时,认定网络侧合法;第二生成单元在验证单元认定网络侧合法后,根据与网络侧的共享密钥和随机数生成响应值。其中,上述的第一序列号和第二序列号的长度小于或等于48比特;或,第一序列号和第二序列号均包含两部分,第一部分的长度小于或等于48比特,第二部分的长度小于或等于16比特。检验第一序列号的预定条件为第二序列号与第一序列号的差值的绝对值小于预定门限;或第二序列号与第一序列号的差值在预定范围内。由于本实施方式中使用的系统时间是每个终端均能够自动递增且唯一确定的,因此终端无需根据上次认证后的第二序列号来生成本次认证过程中的第二序列号,即使用户卡无法保存其上次认证后的第二序列号,或在上次认证之后用户卡更换到了其它终端,均能唯一且准确地生成本次认证的第二序列号,不会因为第二序列号的无法确认或错误而将非法网络重放的随机数、第一序列号和认证码误认为合法,能够有效抵抗重放攻击。本发明第五实施方式涉及一种认证方法,该认证方法可以是AKA方法,但与第一至第三实施方式不同,主要在于,在第一至第三实施方式的整个AKA过程中均采用系统时间作为SQN,而在本实施方式中,仅在终端侧无对应的SQN值时,采用系统时间作为SQN来同步网络侧和终端侧的SQN,在其余的AKA过程中,仍采用与现有的AKA技术相同的序列号方式使用SQN。这里终端侧无对应的SQN值的时机可以是SQN需要在终端上而不是用户卡上维护,但终端某时刻无对应用户的SQN,例如终端检测到被插入新的用户卡时。此时,终端将当前自身的系统时间作为新的SQN,发起AKA中的重同步流程,将这个SQN通知给网络侧。网络侧收到该SQN后对其进行保存,在随后的认证过程中(即随后的AKA过程中),网络侧以新保存的SQN为基础,使用现有AKA技术维护和使用SQN,也就是说网络侧之后发送的SQN是在新保存的SQN基础上进行递增。由于现有的AKA技术中保存的SQN是根据认证次数的增加而增加的,因此只要确保代表系统时间的SQN递增的频率比该终端认证的频率快,就能在不知道上次认证后的SQN的情况下,仍然确保该代表系统时间的SQN大于根据AKA技术保存的SQN。比如说,只要用户认证的频率小于每秒一次,那么根据系统时间总秒数生成的SQN就一定比根据现有的AKA技术保存的SQN大。从而能够严格确保重同步的SQN比同步前的SQN大,满足SQN的严格单调递增性,在最大程度上避免重放攻击。具体流程如图4所示,在步骤401中,终端设备检测到当前插入的用户卡发生了改变,即本终端更换了用户卡,因此删除本终端之前为上一个用户卡保存的SQN值。接着进入步骤402,终端发起AKA认证流程。接着进入步骤403,网络侧计算计算认证向量AV,并向终端发送认证挑战消息,该认证挑战消息中同样包含RAND、AUTN(包括SQN和MAC值)。其中SQN是网络侧为当前用户维护的SQN值,如果该用户是第一次注册的用户,则该SQN可能为O。你
接着进入步骤404,终端收到该认证挑战消息后,根据消息中的RAND和SQN、以及当前用户的共享密钥,采用与网络侧相同的方法计算XMAC。并将该XMAC与收到的认证挑战消息中的MAC值做比较,如果不正确,则判定当前收到的认证挑战消息是非法的,则终止认证流程,认证失败。如果正确则进一步判断本终端是否保存有该用户的SQN,由于终端当前插入的用户卡发生了改变,因此终端未保存有该用户的SQN,从而终端根据自己的系统时间生成SQN,接着进入步骤405。在步骤405中,终端根据新生成的SQN发起重同步请求,该重同步请求消息中包含参数AUTS,该AUTS中包括了该根据系统时间生成的SQN和MAC-S。接着进入步骤406,网络侧收到该重同步请求消息后,校验该AUTS中的MAC-S是否正确,如果正确,则检查该AUTS中包含的SQN是否比网络侧当前为该用户保存的SQN值大,如果收到的AUTS中的SQN比本地保存的SQN值大,则说明该重同步请求消息有效,网络侧将收到的认证请求中的SQN替代之前保存的SQN。接着进入步骤407,网络侧重新发送认证挑战消息,在该认证挑战消息中包含AV,该AV中的SQN是该网络侧在步骤406中收到的SQN的基础上按照现有的AKA的技术形成的,即在该更新后的SQN的基础上加上一个预定步长,例如加I。接着进入步骤408,终端接收到新的挑战消息后,校验MAC,在MAC校验成功后根据步骤404中生成的本地SQN检查网络侧发来的SQN,检查的方式与现有的AKA流程相同。如果检查成功,则表示对网络侧的认证成功。接着进入步骤409。在步骤409中,终端发送响应值RES给网络侧。接着进入步骤410,网络侧对该响应值进行校验,如果网络侧校验RES成功,则进入步骤411向该终端发送认证成功的消息。在随后的AKA认证流程中,终端和网络侧都继续使用上述流程中同步的SQN,具体的认证步骤与现有的AKA流程相同。如果终端再次发现用户卡被更换,则重新执行步骤401,通过系统时间重同步网络侧和终端的SQN。由于现有的AKA流程抗重放的效果主要取决于终端侧和网络侧的SQN是否能够同步且保持单调递增,而采用本实施方式进行认证和重同步可以很好地保证SQN的单调递增性,因此其抗重放性能较好。具体地说,由于在本实施方式中,当终端某时刻检查到新用户卡被插入后,将根据系统的时间生成SQN,根据该生成的SQN与网络侧进行SQN的同步,即网络侧和终端均将保存的SQN更新为代表该终端当时的系统时间的SQN。如果终端是根据系统时间的总秒数生成SQN,则只要该终端新对应的用户的认证的频率低于每秒一次,那么该用户在使用该终端之前的SQN的值是小于当前的时间值的。从而,采用本实施方式,在用户卡插入新终端再次执行重同步时,无需知道该用户上一次认证时的SQN,也能确保终端发给网络侧的新的SQN—定大于上一次认证时网络侧为该用户保存的SQN,严格保证了该用户的SQN在网络侧和终端侧的单调递增。这里说的用户认证频率低于每秒一次,只是给出的一个例子,并不是限定条件,既便该用户认证的频率很高,也可以通过其他方法保证代表终端系统时间的SQN大于最近一次认证时保存的SQN,如终端在重同步时,可以根据系统时间的总毫秒数生成SQN。在本实施方式中,在SQN同步后,网络侧和终端侧保存的SQN值仍然会随认证的次数递增,但不会超过系统时间,从而在下一次需要重新同步SQN时,仍然可以采用当前的系统时间来进行。另外,由于本实施方式与第一至第三实施方式相比,无需每次认证时均确保网络侧和终端侧的时钟同步,只需在进行SQN重同步之前确保即可,降低了对网络侧时间同步特性的要求,这对于CDMA2000网络的特性更吻合(因为终端和基站具有很好的时间同步特性,但核心网的进行认证的设备反而不容易与基站严格同步),实用性较好。需要说明的是,本实施方式中,是以终端根据终端侧的系统时间进行SQN重同步为例进行说明的,除了该方式外,也可以由网络侧根据网络侧的系统时间进行双方SQN的 重同步,如由网络侧根据其系统时间为用户生成一个SQN,并发送给终端,终端根据收到的SQN进行判断,如果该终端本地已保存有该用户的SQN则将本地保存的SQN与收到的SQN进行比较,如果收到的SQN大,则将本地保存的SQN更新为与收到的SQN相同;如果该终端本地未保存该用户的SQN,则可以直接保存。另外,在本实施方式中,终端在收到网络侧发送的认证挑战消息后判断本终端是否保存有该用户的SQN,除此之外,终端也可以在需要为该用户发起认证请求时,直接判断本终端是否保存有该用户的SQN,如果没有,则直接根据终端系统时间为该用户生成一个SQN,触发重同步过程。本发明第六实施方式涉及一种认证系统,包含第一通信设备和第二通信设备,该第一、第二通信设备可以是终端设备或网络侧。以第一设备是网络侧,第二设备是终端为例进行具体说明。该终端设备包含第一存储单元,用于保存用户的第四序列号;生成单元,用于在确定该第一存储单元没有保存待认证的用户的第四序列号时,根据该终端设备的系统时间为该用户生成第四序列号,并指示该第一存储单元保存该第四序列号;第一同步单元,用于通过与网络侧的交互将由网络侧保存的该用户的第三序列号与该第四序列号同步;第一认证单元,用于使用同步后的第四序列号与网络侧进行交互消息的抗重放认证。该网络侧包含第二存储单元,用于保存用户的第三序列号;接收单元,用于从终端设备接收待认证的用户的第四序列号;第二同步单元,用于将第二存储单元保存的第三序列号与接收单元收到的第四序列号同步;第二认证单元,用于使用更新后的第三序列号与对端设备进行交互消息的抗重放认证。由于在网络侧保存的用户的第三序列号是根据认证的次数递增的,而系统时间是自动递增的,且能够很容易地保证系统时间自动递增的频率大于终端认证的频率,因此根据系统时间生成的第四序列号比网络侧和用户侧原先保存的第三第四序列号大,如终端认证频率为十秒一次,则可以根据系统时间的总秒数生成第四序列号,如终端认证频率为十毫秒一次,则可以根据系统时间的总毫秒数生成第四序列号,从而可以保证根据系统时间生成的第四序列号一定大于根据认证次数递增得到序列号。因此采用该系统时间生成的第四序列号为网络侧和终端侧进行序列号的重同步,在不知道当前保存的第三序列号和第四序列号的情况 下,依然能够确保重同步后的序列号是递增的,从而能够有效防止重放攻击,特别适合无法保存第四序列的用户卡更换终端时进行的重同步。该终端的第一同步单元还包含发送子单元,用于将生成单元生成的第四序列号发送给对端设备;指示子单元,用于指示对端设备将该对端设备保存的用户的第三序列号更新为与该第四序列号相同。该网络侧的第二同步单元过以下方式进行同步如果第二存储单元已保存有用户的第三序列号,将接收单元收到的第四序列号与该第三序列号比较,如果该第四序列号大于该第三序列号,则指示第二存储单元将所保存的第三序列号更新为与该第四序列号相同;如果第二存储单元未保存有用户的第三序列号,则指示该第二存储单元保存从接收单元收到的第四序列号,将该第四序列号作为该第三序列号。需要说明的是,上述的第一通信设备也可以是终端设备,第二通信设备也可以是网络侧设备,也就是说,在网络侧设备中包含第一存储单元、生成单元、第一同步单元、第一认证单元;在终端设备中包含第二存储单元、接收单元、第二同步单元、第二认证单元。综上所述,在本发明的实施方式中,网络侧收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号SQNl生成第一认证码MAC,将该随机数、第一序列号SQNl和第一认证码MAC发送给该终端;终端根据与网络侧的共享密钥、收到的随机数和第一序列号SQNl生成第二认证码XMAC,如果该第二认证码XMAC与第一认证码MAC相同,且代表终端侧当前系统时间的第二序列号SQN2与第一序列号SQNl的差值满足预定条件,则该终端认定网络侧合法;如果,XMAC与MAC相同,但终端侧的SQN2与网络侧的SQNl的差值不满足预定条件,则认定用于发送该随机数、第一序列号SQNl和第一认证码MAC的消息是网络侧在之前发送的,可能被非法网络复制后重放,不具备安全性,认证失败。由于系统时间是每个终端均能够自动且唯一确定的,因此终端无需根据上次认证后的SQN2来生成本次认证过程中的SQN2,即使用户卡无法保存其上次认证后的SQN2,或在上次认证之后用户卡更换到了其它终端,均能唯一且准确地生成本次认证的SQN2,不会因为SQN2的无法确认或错误而将非法网络重放的随机数、第一序列号和认证码误认为合法,从而能够有效抵抗重放攻击。进行判断的预定条件可以是第二序列号与第一序列号的差值的绝对值小于预定门限、或第二序列号与第一序列号的差值在预定范围内等等,设置较灵活。通过该预定条件,可以将网络侧发送的包含随机数、第一序列号和认证码的认证挑战消息是否合法的判断控制在合理的范围内,满足不同业务的需求。终端和/或网络侧在开始认证之前,需确保双方系统时钟的同步,如终端在发送认证请求之前,或网络侧在生成第一认证码之前,可以发起一次时钟同步过程,从而确保终端和网络侧的系统时间的差值在无影响的范围内,以确保终端能够准确判断其收到的认证挑战消息的合法性。如果第二设备(如终端)确定本终端没有保存待认证的用户的第四序列号,则根据该终端的系统时间为该用户生成第四序列号,并通过与第一设备(如网络侧)的交互将由网络侧保存的该用户的第三序列号与该第四序列号同步;该终端和网络侧使用同步后的第三、第四序列号进行交互消息的抗重放认证。由于在网络侧保存的用户的第三序列号是根据认证的次数递增的,而系统时间是自动递增的,且能够很容易地保证系统时间自动递增的频率大于终端认证的频率,因此根据系统时间生成的第四序列号比网络侧和用户侧原先保存的第三第四序列号大,如终端认证频率为十秒一次,则可以根据系统时间的总秒数生成第四序列号,如终端认证频率为十毫秒一次,则可以根据系统时间的总毫秒数生成第四序列号,从而可以保证根据系统时间生成的第四序列号一定大于根据认证次数递增得到序列号。因此采用该系统时间生成的第四序列号为网络侧和终端侧进行序列号的重同步,在不知道当前保存的第三序列号和第四序列号的情况下,依然能够确保重同步后的序列号是递增的,从而能够有效防止重放攻击,特别适合无法保存第四序列的用户卡更换终端时进行的重同步本发明第七实施方式涉及一种认证方法,该认证方法包含以下步骤如果第二设备确定本设备没有保存待认证的用户的第四序列号,则根据该第二设备的系统时间为该用户生成第四序列号,并通过与第一设备的交互将由第一设备保存的该用户的第三序列号与该第四序列号同步;所述第二设备和所述第一设备使用同步后的第三、第四序列号进行交互消息的抗重放认证。可选地,所述第二设备通过与第一设备的交互将第三序列号与所述第四序列号重同步的步骤还包含以下子步骤所述第二设备将所述第四序列号发送给所述第一设备;如果所述第一设备已保存有所述用户的第三序列号,则该第一设备将所述第四序列号与该第一设备保存的所述用户的第三序列号比较,如果该第四序列号大于所保存的第三序列号,则将所保存的第三序列号更新为与该第四序列号相同;如果所述第一设备未保存有所述用户的第三序列号,则该第一设备保存从所述第二设备收到的第四序列号,将该第四序列号作为该第三序列号。可选地,所述第二设备和所述第一设备使用同步后的第三、第四序列号进行交互消息的抗重放认证的步骤还包含以下步骤所述第一设备将同步后的第三序列号增加一个预定步长,并将增加步长后的第三序列号携带在待认证的消息中发送给所述第二设备;所述第二设备将同步后的第四序列号和所述待认证的消息中携带的第三序列号进行比较,如果比较的结果满足第一预定条件,则该消息的抗重放认证成功,该第二设备将该第四序列号更新为与该第三序列号相同;如果比较的结果不满足该第一预定条件,则消息的抗重放认证失败。可选地,所述第一预定条件为所述待认证的消息中携带的第三序列号大于所述第二设备同步后的第四序列号;或者,所述待认证的消息中携带的第三序列号大于所述第二设备同步后的第四序列号,且两者的差值在预定范围内。可选地,所述第二设备在收到来自所述第一设备的属于所述用户的待认证的消息时,或所述第二设备需要为所述用户发起认证时,判断该第二设备是否保存该用户的第四序列号。本发明第八实施方式涉及一种通信设备,该通信设备包含第一存储单元,用于保存用户的第四序列号;生成单元,用于在确定该第一存储单元没有保存待认证的用户的第四序列号时,根据该通信设备的系统时间为该用户生成第四序列号,并指示该第一存储单元保存该第四序列号;第一同步单元,用于通过与所述通信设备的对端设备的交互将由对端设备保存的所述用户的第三序列号与所述第四序列号同步;第一认证单元,用于使用同步后的第四序列号与所述对端设备进行交互消息的抗重放认证。可选地,所述第一同步单元还包含发送子单元,用于将所述生成单元生成的第四序列号发送给所述对端设备;指示子单元,用于指示所述对端设备将该对端设备保存的所述用户的第三序列号 更新为与该第四序列号相同。本发明第九实施方式涉及另一种通信设备,该通信设备包含第二存储单元,用于保存用户的第三序列号;接收单元,用于从所述通信设备的对端设备接收待认证的用户的第四序列号;第二同步单元,用于将所述第二存储单元保存的第三序列号与所述接收单元收到的第四序列号同步;第二认证单元,用于使用更新后的第三序列号与所述对端设备进行交互消息的抗重放认证。可选地,所述第二同步单元通过以下方式将所述第二存储单元保存的第三序列号与所述接收单元收到的第四序列号同步如果所述第二存储单元已保存有所述用户的第三序列号,将所述接收单元收到的第四序列号与该第三序列号比较,如果该第四序列号大于该第三序列号,则指示所述第二存储单元将所保存的第三序列号更新为与该第四序列号相同;如果所述第二存储单元未保存有所述用户的第三序列号,则指示该第二存储单元保存从所述接收单元收到的第四序列号,将该第四序列号作为该第三序列号。本发明第九实施方式涉及一种认证系统,该认证系统包含至少一个上述实施例七所述的第一类通信设备,和至少一个上述实施例八所述的第二类通信设备,所述第一类通信设备和所述第二类通信设备互为进行认证的对端设备。虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种认证方法,其特征在于,所述方法包括 网络侧接收终端发送的序列号,所述序列号为终端检测到有新的用户卡插入时,根据自己的系统时间生成的; 所述网络侧根据所述终端发送的序列号更新所述网络侧保存的序列号; 所述网络侧利用更新后的序列号与所述终端进行鉴权和密钥协商AKA认征。
2.如权利要求I所述的方法,其特征在于,所述网络侧接收终端发送的序列号包括 网络侧接收终端发送的重同步请求消息,所述重同步请求消息中包括所述终端检测到有新的用户卡插入时,根据自己的系统时间生成的序列号。
3.如权利要求2所述的方法,其特征在于,所述网络侧根据所述终端发送的序列号更新所述网络侧保存的序列号包括 所述网络侧收到所述重同步请求消息后,检测所述重同步请求消息中包含所述终端生成的序列号是否比所述网络侧保存的序列号的值大,如果所述终端生成的序列号比所述网络侧保存的序列号的值大,则所述网络侧将所述终端生成的序列号替代所述网络侧之前保存的序列号。
4.如权利要求I或2所述的方法,其特征在于,所述网络侧利用更新后的序列号与所述终端进行AKA认证包括 所述网络侧向所述终端发送认证挑战消息以使所述终端对所述网络侧进行认证,所述认证挑战消息中包括一个增加步长的序列号,该增加步长的序列号是在所述网络侧更新后的序列号的基础上加上一个预定步长得到的。
5.一种网络侧设备,其特征在于,所述网络侧设备包括 第一单元,用于接收终端发送的序列号,所述序列号为终端检测到有新的用户卡插入时,根据自己的系统时间生成的; 第二单元,用于根据所述终端发送的序列号更新所述网络侧设备保存的序列号; 第三单元,用于利用更新后的序列号与所述终端进行鉴权和密钥协商AKA认证。
6.根据权利要求5所述的网络侧设备,其特征在于,所述第一单元具体用于接收终端发送的重同步请求消息,所述重同步请求消息中包括所述终端检测到有新的用户卡插入时,根据自己的系统时间生成的序列号。
7.根据权利要求6所述的网络设备,其特征在于,所述第二单元具体用于在所述第一单元收到所述重同步请求消息后,检测所述重同步请求消息中包含所述终端生成的序列号是否比所述网络侧设备保存的序列号的值大,如果所述终端生成的序列号比所述网络侧设备保存的序列号的值大,则所述网络侧设备将所述终端生成的序列号替代所述网络侧设备之前保存的序列号。
8.根据权利要求5或6所述的网络设备,其特征在于,所述第三单元具体用于向所述终端发送认证挑战消息以使所述终端对所述网络侧设备进行认证,所述认证挑战消息中包括一个增加步长的序列号,该增加步长的序列号是在所述网络侧设备更新后的序列号的基础上加上一个预定步长得到的。
9.一种认证方法,其特征在于,所述方法包括 第一设备通过与第二设备的交互将由所述第一设备保存的用户的第三序列号与第四序列号进行同步;所述第四序列号为所述第二设备确定其没有保存待认证的用户的第四序列号时,根据所述第二设备的系统时间为所述用户生成的; 所述第一设备与所述第二设备使用同步后的所述第三序列号和所述第四序列号进行交互消息的抗重放认证。
10.根据权利要求9所述的方法,其特征在于,所述方法包括 所述第一设备接收所述第二设备发送的所述第四序列号; 如果所述第一设备已保存有所述用户的第三序列号,则所述第一设备将所述第四序列号与所述第一设备保存的所述用户的第三序列号进行比较,如果该第四序列号大于所述第一设备保存的第三序列号,则将所保存的第三序列号更新为与该第四序列号相同; 如果所述第一设备未保存有所述用户的第三序列号,则所述第一设备保存从所述第二设备收到的第四序列号,并将该第四序列号作为第三序列号。
11.根据权利要求9或10所述的方法,其特征在于,所述方法包括 所述第一设备将同步后的第三序列号增加一个预定步长,并将增加步长后的第三序列号携带在待认证的消息中发送给所述第二设备,以使所述第二设备将同步后的第四序列号和所述待认证的消息中携带的第三序列号进行比较,如果比较的结果满足第一预定条件,则该消息的抗重放认证成功,并使该第二设备将该第四序列号更新为与该第三序列号相同;如果比较的结果不满足该第一预定条件,则消息的抗重放认证失败。
12.根据权利要求11所述的方法,其特征在于,所述第一预定条件为所述待认证的消息中携带的第三序列号大于所述第二设备同步后的第四序列号;或者,所述待认证的消息中携带的第三序列号大于所述第二设备同步后的第四序列号,且两者的差值在预定范围内。
13.—种通信设备,其特征在于,所述通信设备包括 第一单元,用于通过与第二设备的交互将由所述通信设备保存的用户的第三序列号与第四序列号进行同步;所述第四序列号为所述第二设备确定其没有保存待认证的用户的第四序列号时,根据所述第二设备的系统时间为所述用户生成的; 第二单元,用于与所述第二设备使用同步后的所述第三序列号和所述第四序列号进行交互消息的抗重放认证。
14.如权利要求13所述的通信设备,其特征在于,所述第一单元包括 第三单元,用于接收所述第二设备发送的所述第四序列号; 第四单元,用于如果所述通信设备已保存有所述用户的第三序列号,将所述第四序列号与所述通信设备保存的所述用户的第三序列号进行比较,如果该第四序列号大于所述通信设备保存的第三序列号,则将所保存的第三序列号更新为与该第四序列号相同; 第五单元,用于如果所述通信设备未保存有所述用户的第三序列号,保存从所述第二设备收到的第四序列号,并将该第四序列号作为第三序列号。
15.如权利要求13或14所述的通信设备,其特征在于,所述第二单元具体用于将同步后的第三序列号增加一个预定步长,并将增加步长后的第三序列号携带在待认证的消息中发送给所述第二设备,以使所述第二设备将同步后的第四序列号和所述待认证的消息中携带的第三序列号进行比较,如果比较的结果满足第一预定条件,则该消息的抗重放认证成功,并使该第二设备将该第四序列号更新为与该第三序列号相同;如果比较的结果不满足该第一预定条件,则消息的抗重放认证失败。
16.如权利要求15所述的通信设备,其特征在于,所述第一预定条件为所述待认证的消息中携带的第三序列号大于所述第二设备同步后的第四序列号;或者,所述待认证的消息中携带的第三序列号大于所述第二设备同步后的第四序列号,且两者的差值在预定范围内。
全文摘要
本发明涉及通信领域,公开了一种鉴权和密钥协商方法、认证方法、系统及设备,使得在用户卡不支持SQN的保存的情况下,能够抵抗AKA过程中的重放攻击。本发明中,网络侧收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号SQN1生成第一认证码MAC,将该随机数、第一序列号SQN1和第一认证码MAC发送给该终端;终端根据与网络侧的共享密钥、收到的随机数和第一序列号SQN1生成第二认证码XMAC,如果该第二认证码XMAC与所述第一认证码MAC相同,且代表终端侧当前系统时间的第二序列号SQN2与所述第一序列号SQN1的差值满足预定条件,则该终端认定网络侧合法。
文档编号H04W12/04GK102638794SQ20121008287
公开日2012年8月15日 申请日期2007年3月22日 优先权日2007年3月22日
发明者刘文宇, 尤昉, 赵洁 申请人:华为技术有限公司