专利名称:鉴权和密钥协商方法、认证方法、系统及设备的制作方法
技术领域:
本发明涉及通信领域,特别涉及认证技术。
技术背景随着技术的进步,传统核心网向全IP网络演进成为网络发展的趋势。第三代移动通信合作伙伴项目(3rd Generation Partnership Project,简称"3GPP,,) 在R5/R6标准提出的基于IP的多媒体子系统(IP based Multimedia Subsystem, 简称"IMS")即专门为下一代全IP的多媒体移动网络设计的系统,着眼于 用IP网络承载移动多媒体业务,使运营商和终端用户从多媒体服务的革新中 获取更快速、更灵活的应用,从而为运营商增加收入、创造利润。第三代合作伙伴项目2 (3rd Generation Partnership Project 2,简称 "3GPP2")已经制定了相应的IMS规范,即多媒体域(Multimedia Domain, 简称"MMD")标准。MMD与3GPP中IMS对应的实体和接口是基本—— 对应的。IMS是基于会话初始化协议(Session Initiation Protocol,简称"SIP") 的体系,SIP是按客户端/服务器方式工作的基于文本的信息协议,IMS使用 SIP呼叫控制机制来创建、管理和终结各种类型的多媒体业务。3GPP定义的IMS的框架结构包括呼叫会话控制功能(Call Session Control Function,简称"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是IMS的业务交换中心,执行会 话控制,负责管理用户信息,产生计费信息等;P-CSCF是终端用户接入IMS 的接入点,完成用户注册,负责服务质量控制和安全管理等;I-CSCF负责IMS 域之间的互通,管理S-CSCF的分配,对外隐藏网络拓朴和配置,产生计费 数据等。在终端发起呼叫前,需要在IMS核心网实体进行注册。注册过程使得终 端可以使用IMS服务。IMS注册使用的是基于鉴权和密钥协商(Authentication and Key Agreement,简称"AKA")的流程。在AKA流程中,首先由终端向网络侧发送认证请求,在请求中包含用 户身份。网络侧根据该请求中的用户身份获取该终端的根密钥,并根据该根 密钥计算用于认证的认证向量(AV) , AV包括五个参数随机数RAND, AUTN,期待的响应XRES以及完整性密钥IK和加密密钥CK;其中,AUTN 又包含有序列号SQN和MAC两个参数,MAC值是根据随机数RAND、 SQN 以及终端根密钥计算得到的,用来让终端认证网络侧。之后,网络侧将RAND 和AUTN通过认iia兆战消息Auth一Challenge发送给终端。终端收到该挑战消 息后,根据其中的RAND、 SQN以及该终端的根密钥计算相应的XMAC,并 将XMAC和消息中的MAC做比较,如果相同,则接着校验收到的SQN是 否大于本地保存的SQN,并且其差值在有效范围内,以防止重放攻击。如果 是,则该终端成功地认证了网络。终端接着根据该RAND计算RES、完整性 密钥IK和加密密钥CK,其中RES是用来让网络认证终端的参数。之后终端 向网络侧发送认i正响应SIP Register,在响应消息中包含用户身份,将RES 作为该响应消息的密钥。网络侧根据该响应消息中的用户身份找到对应的 XRES,检验该RES,判断该响应消息是否合法,如果合法则认证成功。可见,在该AKA流程中,只有在终端侧验证网络合法、且网络侧验证 终端合法,才均使得认证成功。为了确保终端能够有效验证网络侧,实现AKA过程,终端必须在本地 保存有SQN,网络侧同样为每个终端也保存有对应的SQN,终端与网络侧保 存的SQN同步。在每次网络侧发送挑战消息和终端检验SQN后,两侧的SQN 均会改变且单调递增。因此,终端在收到网络侧发送的认证挑战消息后,可 以根据消息包含的AV中的SQN是否大于本终端保存的SQN,或两者的差 值是否在一个限定的范围内,来判断该认证挑战消息是否新鲜。如果收到的 认证挑战消息中的SQN大于终端本地的SQN,则说明该认证挑战消息中的 SQN是有效的,否则认为是重放攻击,也就是说,该消息是被非法网络截获 后重发的,不具备安全性。这种情况下,终端发起与网络侧的重同步过程, 使得网络侧的SQN (序列号)与终端保存的SQN重新同步。由于在认证的过程中,终端和网络侧均需要使用到用户身份、SQN、根 密钥,这些信息保存在ISIM (即IMS的用户身份模块)上,因此通常而言, 支持IMS的终端需要具有ISIM模块。这个模块是3G用户卡UICC或者R-UIM 的一部分,对于没有ISIM的2G用户卡而言,无法实现IMS业务的注册。终端侧的用户标识、SQN和IMS的根密钥都保存在卡上,因此能保证 这些参数的安全性。如果终端为机卡一体,也就是没有UICC或者R-UIM时, 这些参数保存在终端的安全内存中。这样的终端只为 一个用户服务。目前,有些运营商希望为使用2G卡的用户提供IMS的业务,因此需要 考虑如何为这些用户保存以上参数,即IMS密钥、SQN等。有方法提出动态 生成IMS密钥,并且在这些用户使用的终端,也就是除去用户卡的用户设备 上维护和保存SQN。然而本发明的发明人发现,该方法中,由于SQN保存在终端上,用户 更换终端时,终端需要产生新的SQN,这个SQN与之前所使用的无法关联,从而无法保证SQN的单调递增性,这样可能导致非法网络的重放攻击。比如 说,用户通过2G卡先在终端1上进行IMS注册认证,在AKA过程中使用 终端1中保存的SQN进行网络验证,在该次网络验证之后,终端1上保存的 SQN会发生变化,单调递增;之后该用户通过该2G卡在终端2上再次进行 认证,此时,该终端2上为此用户重新生成的SQN可能会比之前的小(未确 保单调递增性)。此时,如果非法网络截获用户上次认证时的认证挑战消息 进行重放攻击,终端将误认该非法消息为合法认证挑战消息,即无法抵抗该 重放攻击。发明内容本发明实施方式要解决的主要技术问题是提供一种鉴权和密钥协商方 法、认证方法、系统及设备,使得在用户卡不支持SQN的保存的情况下,能 够抵抗AKA过程中的重放攻击。为解决上述技术问题,本发明的实施方式提供了 一种鉴权和密钥协商方 法> 包含以下步骤网络侧收到终端的认证请求时,根据与该终端的共享密钥、 一个随机数、 和代表网络侧当前系统时间的第一序列号生成第一认证码,将该随机数、第 一序列号和第 一认证码发送给终端;终端对收到的随机数、第一序列号和第一认证码进行验证,如满足以下 条件则认定网络侧合法根据与网络侧的共享密钥、随机数和第 一序列号生成的第二认证码与第 一认证码相同;代表终端側当前系统时间的第二序列号与第 一序列号的差值满足预定 条件;终端认定网络侧合法后,根据与网络侧的共享密钥和随机数生成响应值,发送给网络侧;如果网络侧对响应值验证成功,则认定终端合法。本发明的实施方式还提供了 一种鉴权和密钥协商系统,包含网络侧和终 端,网络侧包含第一生成单元,用于在收到终端的认证请求时,根据与该 终端的共享密钥、 一个随机数、和代表网络侧当前系统时间的第一序列号生 成第一认证码;发送单元,用于将随机数、第一序列号和第一生成单元生成的第一认证 码发送给终端;终端包含接收单元,用于从网络侧接收随机数、第一序列号和第一认 证码;第二生成单元,用于根据与网络侧的共享密钥和接收单元收到的随机 数,生成第二认证码和响应值;发送单元,用于将响应值发送给网络侧;验证单元,用于对接收单元收到的随机数、第一序列号和第一认证码进 行验证,在第二生成单元生成的第二认证码与第一认证码相同,且代表终端 侧当前系统时间的第二序列号与第一序列号的差值满足预定条件时,认定网 络侧合法;第二生成单元在验证单元认定网络侧合法后,根据与网络侧的共享密钥 和随枳4史生成响应{直。本发明的实施方式还提供了一种终端设备,包含接收单元,用于从网络侧接收随机数、第一序列号和第一认证码;生成单元,用于根据与网络侧的共享密钥和接收单元收到的随机数,生 成第二认证码和响应值;发送单元,用于将响应值发送给网络侧;验证单元,用于对接收单元收到的随机数、第一序列号和第一认证码进 行验证,在生成单元生成的第二认证码与第一认证码相同,且代表终端侧当 前系统时间的第二序列号与第 一序列号的差值满足预定条件时,认定网络侧 合法;生成单元在验证单元认定网络侧合法后,根据与网络侧的共享密钥和随 才几数生成响应值。本发明的实施方式还提供了一种认证方法,包含以下步骤 如果第二设备确定本设备没有保存待认证的用户的第四序列号,则根据 该第二设备的系统时间为该用户生成第四序列号,并通过与第 一设备的交互 将由第一设备保存的该用户的第三序列号与该第四序列号同步;第二设备和第 一设备使用同步后的第三、第四序列号进行交互消息的抗 重放认证。本发明的实施方式还提供了一种通信设备,包含 第一存储单元,用于保存用户的第四序列号;生成单元,用于在确定该第一存储单元没有保存待认证的用户的第四序 列号时,根据该通信设备的系统时间为该用户生成第四序列号,并指示该第 一存储单元保存该第四序列号;第一同步单元,用于通过与通信设备的对端设备的交互将由对端设备保 存的用户的第三序列号与第四序列号同步;第 一认证单元,用于使用同步后的第四序列号与对端设备进行交互消息 的抗重iii人iiE。本发明的实施方式还提供了一种通信设备,包含第二存储单元,用于保存用户的第三序列号;接收单元,用于从通信设备的对端设备接收待认证的用户的第四序列号;第二同步单元,用于将第二存储单元保存的第三序列号与接收单元收到的第四序列号同步;第二认证单元,用于使用更新后的第三序列号与对端设备进行交互消息 的抗重》文iUiE。本发明的实施方式还提供了一种认证系统,包含至少一个如上文所述的 第一种通信设备和至少一个如上文所述的第二种通信设备,该第一种通信设 备和该第二种通信设备互为进行认证的对端设备。本发明实施方式与现有技术相比,主要区别及其效果在于网络侧收到终端的认证请求时,根据与该终端的共享密钥、 一个随机数、 和代表网络侧当前系统时间的第一序列号SQN1生成第一认证码MAC,将该 随机数、第一序列号SQN1和第一认证码MAC发送给该终端;终端根据与 网络侧的共享密钥、收到的随机数和第一序列号SQN1生成第二认证码 XMAC,如果该第二认证码XMAC与第一认证码MAC相同,且代表终端侧 当前系统时间的第二序列号SQN2与第 一序列号SQN1的差值满足预定条件, 则该终端认定网络侧合法;如果,XMAC与MAC相同,但终端侧的SQN2 与网络侧的SQN1的差值不满足预定条件,则认定用于发送该随机数、第一 序列号SQN1和第一认证码MAC的消息是网络侧在之前发送的,可能被非 法网络复制后重放,不具备安全性,认证失败。由于系统时间是每个终端均 能够自动且唯一确定的,因此终端无需根据上次认证后的SQN2来生成本次 认证过程中的SQN2,即使用户卡无法保存其上次认证后的SQN2,或在上次 认证之后用户卡更换到了其它终端,均能唯一且准确地生成本次认证的SQN2,不会因为SQN2的无法确认或错误而将非法网络重放的随机数、第一 序列号和认证码误认为合法,从而能够有效抵抗重放攻击。如果第二设备确定本设备没有保存待认证的用户的第四序列号,则根据 该第二设备的系统时间为该用户生成第四序列号,并通过与第 一设备的交互 将由第一设备保存的该用户的第三序列号与该第四序列号同步;第二设备和 第一设备使用同步后的第三、第四序列号进行交互消息的抗重放认证。由于 在第一设备保存的用户的第三序列号是根据认证的次数递增的,而系统时间 是自动递增的,且能够很容易地保证系统时间自动递增的频率大于第二设备 认证的频率,因此根据系统时间生成的第四序列号比第 一设备和用户侧原先 保存的第三第四序列号大,如第二设备认证频率为十秒一次,则可以根据系 统时间的总秒数生成第四序列号,如第二设备认证频率为十毫秒一次,则可 以根据系统时间的总毫秒数生成第四序列号,从而可以保证根据系统时间生 成的第四序列号一定大于根据认证次数递增得到序列号。因此采用该系统时 间生成的第四序列号为第 一设备和第二设备侧进行序列号的重同步,在不知 道当前保存和使用的第三序列号和第四序列号的情况下,依然能够确保重同 步后的序列号是递增的,从而能够有效防止重放攻击,特别适合无法保存序:终端设备时与网络侧设备之间进行的重同步。
图1是根据本发明第一实施方式的鉴权和密钥协商方法流程图; 图2是根据本发明第二实施方式的鉴权和密钥协商方法流程图; 图3是根据本发明第三实施方式的鉴权和密钥协商方法流程图; 图4是^f艮据本发明第五实施方式的认证方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发 明的实施方式作进一步地详细描述。本发明第一实施方式涉及一种鉴权和密钥协商AKA方法。与现有的 AKA相比,两者最大的区别在于SQN参数设置方法的不同。在现有的AKA 中,SQN是一个计数器的概念,用户侧和网络侧都维护一个计数器,并保证 同步,用户的终端可以根据网络侧发送的计数器值(即SQN)和本地维护的 计数器值(SQN)是否一致来判断发送SQN的网络设备是否合法。该方法要 求一个用户必须统一维护一个SQN,在SQN保存在用户卡上的情况下,无 论用户更换多少终端,都能统一维护一个SQN,而对于无法保存SQN的用 户卡,由于只能将SQN保存在用户卡插入的终端上,在用户将同一张用户卡 插入不同的终端的情况下,无法统一不同终端中保存的SQN,从而在认证时 可能受到重放攻击。本实施方式继续使用SQN这个参数,但它不再是计数器 的值,而是系统的时钟值,也就是时间戳(time stamp )。由于终端和网络側 都有时钟,不同的终端维护的时钟永远是一致的,即使用户的用户卡无法保 存SQN,且需要插入不同的终端,只要各终端与网络侧在时间上是同步的, 不同终端的SQN就一定是一致的,从而可以有效4氐抗重^:攻击。在本实施方 式中终端对应的用户卡不支持SQN保存能力。具体的认证过程如图1所示,在步骤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与终端计算得到 的S Q N的差值在预定范围内等等,可以根据实际需要以及认证的精度来确定预定条件,应用十分灵活。在步骤108中,在终端对网络侧认证成功后,根据收到的认证挑战消息 中的随机数RAND和终端的共享密钥K计算RES、 IK和CK,将RES随响应消息发给网络侧。在步骤109中,网络侧收到该响应消息后,利用之前计算的XRES校验 该响应消息中的RES,如果校验成功,则完成了对终端的iU正,否则认证失 败。在步骤110中,网络侧根据认证结果发送认证成功(或者认证失败)的 消息给终端侧,认证结束。在认证结束后,网络侧和终端可以根据双方计算 得到的IK和CK进行数据传输。另外,在本实施方式中,进行认证之前,需要保证终端侧和网络侧系统 时钟的同步。可以是终端在发送认证请求之前,或网络侧在将认证挑战消息 发送给终端之前,发起一次时钟同步过程,从而确保终端和网络侧的系统时 间的差值在无影响的范围内,以确保终端能够准确判断其收到的认证挑战消 息的合法性。需要说明的是,在现有的AKA中,网络侧AV的产生可以是成批的, 每个AV所对应的随才几数和SQN值不同,每次认证使用 一个AV。而在本实 施方式中,由于AV中的SQN必须是实时的,而网络側不能估计到下一次认 证的时间,因此需要在每次执行认证时,才产生所需要的AV。另外,在本实施方式中,如果终端检测到SQN不同步,可以把自己这 一端的SQN值发给网络侧,让网络侧重新与它同步。或者,对于时钟严格同 步的网络,终端也可以不发起重同步过程,而只是重新进行认证或注册。本发明第二实施方式涉及一种鉴权和密钥协商方法。本实施方式以码分 多址2000 ( Code Division Multiple Access 2000,简称"CDMA2000")网络 为例对终端的认i正过程进行详细说明。本实施方式也是利用时间的单向性来判断是否受到重放攻击。网络側将其系统时间表示为48比特的SQN,将该SQN包含在认证4兆战消息中发送给 终端,在终端收到网络侧发送的认证挑战消息后,根据本终端当前的系统时 间进行判断,如果网络侧发来的SQN所表示的时间值与终端侧当前的时间值 相比不满足预定条件,如两个时间值差值的绝对值大于预定门限,就认为 SQN不同步,表示这个消息是某个攻击者发送的重放消息,终端将终止这次 认证。与现有的AKA不同,另外,在本实施方式中,如果终端;险测到SQN 不同步,可以把自己这一端的SQN值发给网络侧,让网络侧重新与它同步。 或者,对于时钟严格同步的网络,终端也可以不发起重同步过程,而只是重 新进行认证或注册。下面对CDMA2000网络中,使用2G用户卡的终端需要接入IMS时进行 的认证过程进行说明。对于CDMA2000网络来说,由于其物理层的设计需要 保证时钟与网络侧严格同步,因此CDMA2000中的终端有着非常精确的时 钟,可以直接进入认证过程。具体如图2所示,在步骤201中,终端向P-CSCF发起标准的MMD注 册请求,在注册请求中携带私有用户身份IMPI, P-CSCF将该注册请求转发 给S-CSCF。接着进入步骤202, S-CSCF向HSS发送认证请求Cx AuthR叫,来请求 终端的认i正数据。在该认证请求中携带该终端的IMPI。接着进入步骤203, HSS发现该终端使用的是2G用户卡,从该终端的 IMPI中恢复国际移动用户识别码(International Mobile Subscriber Identity, 简称"IMSr )。然后向归属位置寄存器(Home Location Register,简称"HLR") 发送认证请求AUTHREQ,来请求该终端的认证数据。接着进入步骤204, HLR执行2G的认证过程,生成随机数RandU,并 对该RandU采用CAVE算法生成认证数据AuthU,将RandU和AuthU通过认证响应消息authr叫反馈给HSS。接着进入步骤205, HSS根据收到的RandU和该终端IMSI中的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发送authr叫响应消息,在响应消息中 将Keys值返回给HSS。接着进入步骤209, HSS以AuthR和Keys合成AKA算法的认证数据5 元组(包括AUTN, XRES, IK, CK, Rand2,其中AUTN又包括MAC和 SQN),该认证数据5元组相当于认证向量AV。具体地说,HSS使用AuthR 和Keys生成AKA算法的认证密钥(SMEKEY||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,通过该 认证响应4巴认证数据5元组发送给S-CSCF。接着进入步骤211, S-CSCF通过认证挑战消息把Rand2, AUTN, IK和CK发送给P-CSCF。接着进入步骤212, P-CSCF通过认证挑战消息把Rand2和AUTN发送 给终端。接着进入步骤213,终端从Rand2分离出Rand参数,把Rand发给用户 卡Card,即2G R-UIM。接着进入步骤214,用户卡R-UIM根据Rand用CAVE算法计算认证数 据AuthR和Keys值,这里的Keys和步骤207中的相同,均由SMEKEY和 CDMAPLCM组成。用户卡R-UIM把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和CK。接着进入步骤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,简称"EAP")中的AKA 为基础,对本实施方式的鉴权和密钥协商方法进行具体说明。如图3所示,在步骤301中,Authenticator (进行认证的设备)向Peer (终端)发送EAP请求EAP-R叫uest消息,该消息用于向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。由于需要对EAP AKA数据包进行完整性保护,在本步骤中,Authenticator还需要计算临时 EAP密钥(Transient EAP Key,简称"TEK"),用TEK计算EAP AKA消息完整性值MAC2。接着进入步骤304, Authenticator通过EPA请求EAP-R叫uest消息(或 者是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计算EAP AKA消息的完整性值MAC3,并根据收到的EAP-Request消息(或者是AKA 挑战消息)中的随机数RAND、以及Peer的共享密钥计算RES,将计算得到 的RES和MAC3通过EAP响应EAP-Response消息(或者AKA挑战消息) 发送给Authenticates接着进入步骤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可能为0。接着进入步骤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的基础上加上一个 预定步长,例如加1。接着进入步骤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,触发重同步过程。本发明第六实施方式涉及一种认证系统,包含第 一通信设备和第二通信 设备,该第一、第二通信设备可以是终端设备或网络侧。以第一设备是网络 侧,第二设备是终端为例进行具体说明。该终端设备包含第一存储单元, 用于保存用户的第四序列号;生成单元,用于在确定该第一存储单元没有保 存待认证的用户的第四序列号时,根据该终端设备的系统时间为该用户生成 第四序列号,并指示该第一存储单元保存该第四序列号;第一同步单元,用 于通过与网络侧的交互将由网络侧保存的该用户的第三序列号与该第四序列 号同步;第一认证单元,用于使用同步后的第四序列号与网络侧进行交互消 息 的抗重itiU正。该网络侧包含第二存储单元,用于保存用户的第三序列号;接收单元, 用于从终端设备接收待认证的用户的第四序列号;第二同步单元,用于将第 二存储单元保存的第三序列号与接收单元收到的第四序列号同步;第二认证 单元,用于使用更新后的第三序列号与对端设备进行交互消息的抗重放认证。由于在网络侧保存的用户的第三序列号是根据认证的次数递增的,而系 统时间是自动递增的,且能够很容易地保证系统时间自动递增的频率大于终 端认证的频率,因此才艮据系统时间生成的第四序列号比网络侧和用户侧原先 保存的第三第四序列号大,如终端认证频率为十秒一次,则可以根据系统时 间的总秒数生成第四序列号,如终端认证频率为十毫秒一次,则可以根据系 统时间的总毫秒数生成第四序列号,从而可以保证根据系统时间生成的第四 序列号一定大于根据认证次数递增得到序列号。因此采用该系统时间生成的 第四序列号为网络侧和终端侧进行序列号的重同步,在不知道当前保存的第 三序列号和第四序列号的情况下,依然能够确保重同步后的序列号是递增的, 从而能够有效防止重放攻击,特别适合无法保存第四序列的用户卡更换终端 时进行的重同步。该终端的第一同步单元还包含发送子单元,用于将生成单元生成的第 四序列号发送给对端设备;指示子单元,用于指示对端设备将该对端设备保 存的用户的第三序列号更新为与该第四序列号相同。该网络侧的第二同步单元过以下方式进行同步如果第二存储单元已保 存有用户的第三序列号,将接收单元收到的第四序列号与该第三序列号比较, 如果该第四序列号大于该第三序列号,则指示第二存储单元将所保存的第三 序列号更新为与该第四序列号相同;如果第二存储单元未保存有用户的第三 序列号,则指示该第二存储单元保存从接收单元收到的第四序列号,将该第 四序列号作为该第三序列号。需要说明的是,上述的第一通信设备也可以是终端设备,第二通信设备 也可以是网络侧设备,也就是说,在网络侧设备中包含第一存储单元、生成 单元、第一同步单元、第一认证单元;在终端设备中包含第二存储单元、接 收单元、第二同步单元、第二认证单元。综上所述,在本发明的实施方式中,网络侧收到终端的认证请求时,根 据与该终端的共享密钥、 一个随机数、和代表网络侧当前系统时间的第一序 列号SQN1生成第一认证码MAC,将该随机数、第一序列号SQN1和第一认 证码MAC发送给该终端;终端根据与网络侧的共享密钥、收到的随机数和 第一序列号SQN1生成第二认证码XMAC,如果该第二认证码XMAC与第 一认证码MAC相同,且代表终端侧当前系统时间的第二序列号SQN2与第 一序列号SQN1的差值满足预定条件,则该终端认定网络侧合法;如果, XMAC与MAC相同,但终端侧的SQN2与网络侧的SQN1的差值不满足预 定条件,则认定用于发送该随机数、第一序列号SQN1和第一认证码MAC 的消息是网络侧在之前发送的,可能被非法网络复制后重放,不具备安全性, 认证失败。由于系统时间是每个终端均能够自动且唯一确定的,因此终端无 需根据上次认证后的SQN2来生成本次认证过程中的SQN2,即使用户卡无法保存其上次认证后的SQN2,或在上次认证之后用户卡更换到了其它终端, 均能唯一且准确地生成本次认证的SQN2,不会因为SQN2的无法确认或错 误而将非法网络重放的随机数、第一序列号和认证码误认为合法,从而能够 有效抵抗重放攻击。进行判断的预定条件可以是第二序列号与第 一序列号的差值的绝对值 小于预定门限、或第二序列号与第一序列号的差值在预定范围内等等,设置 较灵活。通过该预定条件,可以将网络侧发送的包含随机数、第一序列号和 认证码的认证挑战消息是否合法的判断控制在合理的范围内,满足不同业务 的需求。终端和/或网络侧在开始认证之前,需确保双方系统时钟的同步,如终端 在发送认证请求之前,或网络侧在生成第一认证码之前,可以发起一次时钟 同步过程,从而确保终端和网络侧的系统时间的差值在无影响的范围内,以 确保终端能够准确判断其收到的认证挑战消息的合法性。如果第二设备(如终端)确定本终端没有保存待认证的用户的第四序列 号,则根据该终端的系统时间为该用户生成第四序列号,并通过与第一设备 (如网络側)的交互将由网络侧保存的该用户的第三序列号与该第四序列号 同步;该终端和网络侧使用同步后的第三、第四序列号进行交互消息的抗重 放认证。由于在网络侧保存的用户的第三序列号是根据认证的次数递增的, 而系统时间是自动递增的,且能够很容易地保证系统时间自动递增的频率大 于终端认证的频率,因此根据系统时间生成的第四序列号比网络侧和用户侧 原先保存的第三第四序列号大,如终端认证频率为十秒一次,则可以根据系 统时间的总秒数生成第四序列号,如终端认证频率为十毫秒一次,则可以根 据系统时间的总毫秒数生成第四序列号,从而可以保证根据系统时间生成的 第四序列号一定大于根据认证次数递增得到序列号。因此采用该系统时间生 成的第四序列号为网络侧和终端侧进行序列号的重同步,在不知道当前保存的第三序列号和第四序列号的情况下,依然能够确保重同步后的序列号是递 增的,从而能够有效防止重放攻击,特别适合无法保存第四序列的用户卡更 换终端时进行的重同步。虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和 描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各 种改变,而不偏离本发明的精神和范围。
权利要求
1. 一种鉴权和密钥协商方法,其特征在于,包含以下步骤网络侧收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号生成第一认证码,将该随机数、第一序列号和第一认证码发送给所述终端;所述终端对收到的随机数、第一序列号和第一认证码进行验证,如满足以下条件则认定所述网络侧合法根据与所述网络侧的共享密钥、所述随机数和第一序列号生成的第二认证码与所述第一认证码相同;代表终端侧当前系统时间的第二序列号与所述第一序列号的差值满足预定条件;所述终端认定所述网络侧合法后,根据与所述网络侧的共享密钥和随机数生成响应值,发送给所述网络侧;如果所述网络侧对所述响应值验证成功,则认定所述终端合法。
2. 根据权利要求1所述的鉴权和密钥协商方法,其特征在于,所述第 一序列号和第二序列号的长度小于或等于48比特;或所述第一序列号和第二序列号均包含两部分,第一部分的长度小于或等 于48比特,第二部分的长度小于或等于16比特。
3. 根据权利要求1所述的鉴权和密钥协商方法,其特征在于,所述预 定条件为所述第二序列号与所述第 一 序列号的差值的绝对值小于预定门限;或 所述第二序列号与所述第 一序列号的差值在预定范围内。
4. 根据权利要求1所述的鉴权和密钥协商方法,其特征在于,所述终端在发送所述认证请求之前,或所述网络侧在生成所述第一认证码之前,确 保所述终端和所述网络侧的系统时钟同步。
5. 根据权利要求1所述的鉴权和密钥协商方法,其特征在于,所述网 络侧通过以下方式—睑ii所述响应值所述网络侧根据与所述终端的共享密钥和所述随机数生成响应验证值, 如果该响应验4正<直与所述响应值相同,则所述—睑i正成功。
6. 根据权利要求1所述的鉴权和密钥协商方法,其特征在于,还包含 以下步骤所述网络侧在生成所述第一认证码时,还根据与所述终端的共享密钥和 所述随机数生成完整性密钥和加密密钥;所述终端认定所述网络侧合法后,还根据与所述网络侧的共享密钥和所 述随机数生成所述完整性密钥和加密密钥;如果所述网络侧认定所述终端合法,则该网络侧和该终端通过所述完整 性密钥和加密密钥进行数据传输。
7. 根据权利要求1至6中任一项所述的鉴权和密钥协商方法,其特征 在于,如果所述终端验证得到所述第二序列号与所述第 一序列号的差值不满 足预定条件,则还包含以下步骤所述终端将所述第二序列号发送给所述网络侧;所述网络侧根据所述第二序列号代表的系统时间进行所述终端与该网 络侧的时钟同步过程。
8. —种鉴权和密钥协商系统,包含网络侧和终端,其特征在于,所述 网络侧包含第一生成单元,用于在收到所述终端的认证请求时,根据与该 终端的共享密钥、 一个随机数、和代表网络侧当前系统时间的第一序列号生成第一认证码;发送单元,用于将所述随机数、第一序列号和所述第一生成单元生成的第一认证码发送给所述终端;所述终端包含接收单元,用于从所述网络侧接收所述随机数、第一序 列号和第一认证码;第二生成单元,用于根据与所迷网络侧的共享密钥和所述接收单元收到 的随机数,生成第二认证码和响应值;发送单元,用于将所述响应值发送给所述网络侧;验证单元,用于对所述接收单元收到的所述随机数、第一序列号和第一 认证码进行验证,在所述第二生成单元生成的第二认证码与所述第一认证码 相同,且代表终端侧当前系统时间的第二序列号与所述第 一序列号的差值满 足预定条件时,认定所述网络侧合法;所述第二生成单元在所述验证单元认定所述网络侧合法后,根据与所述 网络侧的共享密钥和所述随机数生成所述响应值。
9. 根据权利要求8所述的鉴权和密钥协商系统,其特征在于,所述第 一序列号和第二序列号的长度小于或等于48比特;或所述第一序列号和第二序列号均包含两部分,第一部分的长度小于或等 于48比特,第二部分的长度小于或等于16比特。
10. 根据权利要求8所述的鉴权和密钥协商系统,其特征在于,所述预 定条件为所述第二序列号与所述第 一序列号的差值的绝对值小于预定门限;或 所述第二序列号与所述第一序列号的差值在预定范围内。
11. 一种终端设备,其特征在于,包含接收单元,用于从网络侧接收随机数、第一序列号和第一认证码;生成单元,用于根据与所述网络侧的共享密钥和所述接收单元收到的随机数,生成第二认证码和响应值;发送单元,用于将所述响应值发送给所述网络侧;验证单元,用于对所述接收单元收到的所述随机数、第一序列号和第一 认证码进行验证,在所述生成单元生成的第二认证码与所述第一认证码相 同,且代表终端侧当前系统时间的第二序列号与所述第 一序列号的差值满足 预定条件时,认定所述网络侧合法;所述生成单元在所述验证单元认定所述网络侧合法后,根据与所述网络 侧的共享密钥和所述随^/L数生成所述响应值。
12. 根据权利要求11所述的终端设备,其特征在于,所述第二序列号 的长度小于或等于48比特;或,所述第二序列号包含两部分,第一部分的 长度小于或等于48比特,第二部分的长度小于或等于16比特;所述预定条件为所述第二序列号与所述第一序列号的差值的绝对值小 于预定门限;或,所迷第二序列号与所述第一序列号的差值在预定范围内。
13. —种认证方法,其特征在于,包含以下步骤如果第二设备确定本设备没有保存待认证的用户的第四序列号,则根据 该第二设备的系统时间为该用户生成第四序列号,并通过与第 一设备的交互 将由第一设备保存的该用户的第三序列号与该第四序列号同步;所述第二设备和所述第一设备使用同步后的第三、第四序列号进行交互 消息的抗重放认i正。
14. 根据权利要求13所迷的认证方法,其特征在于,所述第二设备通 过与第一设备的交互将第三序列号与所述第四序列号重同步的步骤还包含 以下子步骤所述第二设备将所述第四序列号发送给所述第一设备;如果所述第 一设备已保存有所述用户的第三序列号,则该第 一设备将所 述第四序列号与该第 一设备保存的所述用户的第三序列号比较,如果该第四 序列号大于所保存的第三序列号,则将所保存的第三序列号更新为与该第四序列号相同;如果所述第一设备未保存有所述用户的第三序列号,则该第一设备保存 从所述第二设备收到的第四序列号,将该第四序列号作为该第三序列号。
15. 根据权利要求13所述的认证方法,其特征在于,所述第二设备和 所述第 一设备使用同步后的第三、第四序列号进行交互消息的抗重放认证的 步骤还包含以下步骤所述第一设备将同步后的第三序列号增加一个预定步长,并将增加步长 后的第三序列号携带在待认证的消息中发送给所述第二设备;所述第二设备 将同步后的第四序列号和所述待认证的消息中携带的第三序列号进行比较, 如果比较的结果满足第一预定条件,则该消息的抗重放认证成功,该第二设 备将该第四序列号更新为与该第三序列号相同;如果比较的结果不满足该第 一预定条件,则消息的抗重放认证失败。
16. 根据权利要求15所述的认证方法,其特征在于,所述第一预定条 件为所述待认证的消息中携带的第三序列号大于所述第二设备同步后的第 四序列号;或者,所述待认证的消息中携带的第三序列号大于所述第二设备 同步后的第四序列号,且两者的差值在预定范围内。
17.根据权利要求13至16中任一项所述的认证方法,其特征在于,所 述第二设备在收到来自所述第一设备的属于所述用户的待认证的消息时,或 所述第二设备需要为所述用户发起认证时,判断该第二设备是否保存该用户的第四序列号。
18. —种通信设备,其特征在于,包含 第一存储单元,用于保存用户的第四序列号;生成单元,用于在确定该第一存储单元没有保存待认证的用户的第四序 列号时,根据该通信设备的系统时间为该用户生成第四序列号,并指示该第一存储单元保存该第四序列号;第一同步单元,用于通过与所述通信设备的对端设备的交互将由对端设 备保存的所述用户的第三序列号与所述第四序列号同步;第 一认证单元,用于使用同步后的第四序列号与所述对端设备进行交互 消息的抗重》文认证。
19. 根据权利要求18所述的通信设备,其特征在于,所述第一同步单 元还包含发送子单元,用于将所述生成单元生成的第四序列号发送给所述对端设备;指示子单元,用于指示所述对端设备将该对端设备保存的所述用户的第 三序列号更新为与该第四序列号相同。
20. —种通信设备,其特征在于,包含 第二存储单元,用于保存用户的第三序列号;接收单元,用于从所述通信设备的对端设备接收待认证的用户的第四序列号;第二同步单元,用于将所述第二存储单元保存的第三序列号与所述接收单元收到的第四序列号同步;第二认证单元,用于使用更新后的第三序列号与所述对端设备进行交互 消息的抗重放认证。
21. 根据权利要求20所述的通信设备,其特征在于,所述第二同步单 元通过以下方式将所述第二存储单元保存的第三序列号与所迷接收单元收 到的第四序列号同步如果所述第二存储单元已保存有所述用户的第三序列号,将所述接收单 元收到的第四序列号与该第三序列号比较,如果该第四序列号大于该第三序 列号,则指示所述第二存储单元将所保存的第三序列号更新为与该第四序列号相同;如果所述第二存储单元未保存有所述用户的第三序列号,则指示该第二 存储单元保存从所述接收单元收到的第四序列号,将该第四序列号作为该第 三序列号。
22. —种认证系统,其特征在于,包含至少一个根据权利要求18或19 所述的第一类通信设备,和至少一个权利要求20或21所述的第二类通信设 备,所述第 一类通信设备和所述第二类通信设备互为进行认证的对端设备。
全文摘要
本发明涉及通信领域,公开了一种鉴权和密钥协商方法、认证方法、系统及设备,使得在用户卡不支持SQN的保存的情况下,能够抵抗AKA过程中的重放攻击。本发明中,网络侧收到终端的认证请求时,根据与该终端的共享密钥、一个随机数、和代表网络侧当前系统时间的第一序列号SQN1生成第一认证码MAC,将该随机数、第一序列号SQN1和第一认证码MAC发送给该终端;终端根据与网络侧的共享密钥、收到的随机数和第一序列号SQN1生成第二认证码XMAC,如果该第二认证码XMAC与所述第一认证码MAC相同,且代表终端侧当前系统时间的第二序列号SQN2与所述第一序列号SQN1的差值满足预定条件,则该终端认定网络侧合法。
文档编号H04L9/32GK101272251SQ20071008994
公开日2008年9月24日 申请日期2007年3月22日 优先权日2007年3月22日
发明者刘文宇, 昉 尤, 洁 赵 申请人:华为技术有限公司