一种切换的密钥分发方法及系统 |
|||||||
申请号 | CN201010236671.X | 申请日 | 2010-07-22 | 公开(公告)号 | CN102340774B | 公开(公告)日 | 2016-05-11 |
申请人 | 中兴通讯股份有限公司; | 发明人 | 杜高鹏; 朱永升; | ||||
摘要 | 本 发明 提供了一种切换的密钥分发方法及系统,方法包括:终端在源基站和目标基站进行切换时,目标基站向核心网 请求 密钥生成信息;目标基站根据核心网提供的密钥生成信息生成密钥,该密钥用于推导出接入层的密钥。本发明提出的密钥分发方案,通过MME为目标eNB提供密钥的生成素材,并由目标eNB生成KeNB密钥,这样,在X2切换过程中,即使源eNB被攻破,也无法获取到目标eNB的密钥KeNB,从而解决了切换过程中密钥分发的安全问题,并且达到了1跳前向安全的目的。 | ||||||
权利要求 | 1.一种切换的密钥分发方法,其特征在于,所述方法包括: |
||||||
说明书全文 | 一种切换的密钥分发方法及系统技术领域[0001] 本发明涉及移动通信技术领域,更具体地,涉及一种切换的密钥分发方法及系统。 背景技术[0002] 随着移动通信的普及,移动通信中的安全问题正受到越来越多的关注,对移动通信中的安全也提出了更高的要求。对于LTE(Long Term Evolution,长期演进)系统而言,终端在LTE/SAE(System Architecture Evolution,系统架构演进)内部网络移动,及LTE与rd其他3GPP(3 Generation PartnershipProject,第三代合作伙伴计划)系统相互移动时的接入安全问题,是LTE/SAE接入安全的核心关键技术,也是目前3GPP SA3(系统和业务工作组3)目前研究的重点、热点和难点。它使EUTRAN(Evolved Universal TerrestrialRadio Access Network,演进通用陆地无线接入网络)产品在处理终端移动的过程更加复杂,可能在将来的实际组网影响无线网络性能,如掉话率,切换失败率等的一个主要因素,因此,移动状态下的安全问题,已成为产品线相关单位关注的焦点问题。 [0003] 在LTE系统中,当发生同一个MME(Mobile Management Entity,移动管理实体)下两个eNB(evolved Node B,演进的节点B)之间的X2切换时,同样存在着密钥分发的安全问题。 [0004] 目前的密钥分发方式为:第一次切换执行横向密钥生成链,后续的切换执行纵向密钥生成链。 [0005] 下面将结合附图对现有技术的密钥分发方式加以介绍。假设eNB A、eNBB和eNB C归属同一个MME,UE在三个eNB之间进行X2切换,图1示出了第一次切换的密钥分发流程示意图,结合图1,UE第一次从eNB A切换到eNB B时,eNB A执行横向密钥生成链,其具体流程描述如下: [0006] 步骤101,UE向eNB A上报Measurement Report(测量报告); [0007] 步骤102,eNB A根据UE上报的测量报告作出切换决策(HandOverDecision),并*生成KeNB=KDF(KeNB||PCI||EARFCN_DL); [0008] 其中的KeNB为UE接入eNB A时,由核心网MME生成并下发给eNB A的共享密钥,以便eNB A根据该密钥推导出AS(接入层)的密钥。而KDF(KeyDerivation Function)是密钥推演函数。 [0010] 其中,NCC(Next Hop Chaining Counter)为下一跳链计数器。 [0011] 步骤104,eNB B令KeNB=KeNB*; [0012] 步骤105,eNB B返回HandoverRequest Ack(切换请求应答),将NCC(此时NCC=0)放入该Handover Request Ack消息的透明容器中; [0013] 步骤106,eNB B向UE发送HO Command(切换命令),并将NCC(此时NCC=0)放入HO Command消息的透明容器中发送给UE; [0014] 步骤107,UE生成KeNB*,KeNB*=KDF(KeNB||PCI||EARFCN_DL),并将KeNB=KeNB*; [0015] 步骤108,UE向eNB B发送Handover Confirm(切换确认); [0016] 步骤109,eNB B在完成和UE的切换信令交互后,向MME发送PathSwitch Request(路径切换请求)消息; [0017] 步骤110,MME接收到Path Switch Request消息后应将本地保存的NCC(此前NCC=1)值按1递增,即令NCC=NCC+1;并根据安全参数规范规定的函数计算新的NH,NH=KDF(KASME||NH_Old),其中以KASME和本地保存的NH值(NH_Old)作为函数的输入; [0018] 步骤111,MME在Path Switch Ack(路径切换应答)消息中向目标eNBB发送新计算的{NCC,NH}对(此时NCC=2); [0019] 步骤112,eNB B保存接收到的{NCC,NH}对,以备下次切换使用,并删除其它可能已有的但未使用的{NCC,NH}对; [0020] 步骤113,切换完成后,eNB B向eNB A发送Release Resource(释放资源)消息,通知eNB A释放UE的相关资源。 [0021] 图2示出了第一次切换的密钥分发流程示意图,结合图2,UE第二次从eNB B切换到eNB C时,eNB C使用新的{NH,NCC},执行纵向密钥生成链。 [0022] 步骤201,UE向eNB B上报Measurement Report; [0023] 步骤202,eNB B作出切换决策并生成KeNB*,KeNB*=KDF(NH||PCI||EARFCN_DL); [0024] 步骤203,eNB B通过Handover Request消息将{NCC,KeNB*}转发给目标eNB C(此时NCC=2); [0025] 步骤204,eNB C将KeNB=KeNB*; [0026] 步骤205~206,eNB C将NCC放入HO Command消息的透明容器中,并通过源eNB B转发给UE; [0027] 步骤 207,UE 使用 消息 中的 NCC 对应 的 NH 生 成 KeNB*,即 KeNB*=*KDF(NH||PCI||EARFCN_DL),并将KeNB=KeNB; [0028] 后续步骤208~213可参照图1中的步骤108~113,其主要区别在于两次切换的NCC不同,在此不再赘述。 [0029] 从上述现有切换流程可以看出,UE第一次从eNB A切换到eNB B时,eNB A可以推算出eNB B的密钥;UE第二次从eNB B切换到eNB C时,eNBB可以推算出eNB C的密钥。但eNB A无法推算出eNB C的密钥,即需要2跳才能达到前向安全的目的。所谓前向安全是指对一个eNB和一个UE共享密钥KeNB,而该eNB不能推算出该UE和另一个eNB之间的密钥。 [0030] 综上所述,现有切换的密钥分发存在如下问题: [0031] 1、UE在eNB之间进行X2切换时,目标eNB的密钥KeNB是由源eNB计算提供,这样,一旦源eNB被攻破,在X2切换过程中可能获取到目标eNB的密钥KeNB,这样是非常不安全的; [0032] 2、目前的密钥分发机制至少需要2跳才能达到前向安全的目的,无法达到1跳前向安全。 发明内容[0033] 本发明解决的技术问题是提供一种切换的密钥分发方法及系统,能够达到1跳前向安全的目的。 [0034] 为解决上述技术问题,本发明提供了一种切换的密钥分发方法,方法包括: [0035] 终端在源基站和目标基站进行切换时,目标基站向核心网请求密钥生成信息; [0036] 目标基站根据核心网提供的密钥生成信息生成密钥,该密钥用于推导出接入层的密钥。 [0037] 进一步地,密钥生成信息包括下一跳链计数器(NCC)对应的中间密钥(NH)值; [0038] 目标基站根据NH值生成的密钥为KeNB。 [0039] 进一步地,目标基站向核心网请求密钥生成信息,具体包括: [0040] 目标基站收到源基站发送的切换请求时,根据该切换请求中包含的第一NCC值生成第二NCC值,并向核心网移动管理实体发送切换NCC请求,在该切换NCC请求中包含第二NCC值; [0041] 移动管理实体收到切换NCC请求时,根据其中的第二NCC值以及本地保存的NCC值确定NH值,并包含在切换NCC响应中发送给目标基站。 [0042] 进一步地,移动管理实体根据第二NCC值以及本地保存的NCC值确定NH值,具体包括: [0043] 移动管理实体将第二NCC值与本地保存的NCC值进行比较, [0044] 如果第二NCC值等于本地保存的NCC值,则将第二NCC值对应的NH值确定为NH值; [0045] 如果第二NCC值大于本地保存的NCC值,则将本地保存的NCC值设置为第二NCC值,计算第二NCC值对应的NH值并将其确定为NH值; [0046] 如果第二NCC值小于本地保存的NCC值,则将本地保存的NCC值递增一次,计算递增后的NCC值对应的NH值并将其确定为NH值。 [0047] 进一步地,移动管理实体发送给目标基站的切换NCC响应中还包含NH值所对应的NCC值;目标基站收到NCC值后保存,并转发给终端; [0048] 终端根据目标基站发送的NCC值计算对应的NH值,并根据计算出的NH值计算KeNB。 [0049] 进一步地,目标基站按照如下公式计算第二NCC值: [0050] [0051] 其中,NCC1为第一NCC值,NCC2为第二NCC值,CRNTI为小区无线网络临时标识。 [0052] 进一步地,当第二NCC值小于移动管理实体本地保存的NCC值时,若本地保存的NCC值递增后等于NCC取值范围内的最大值,则直接根据本地保存的该NCC值计算对应的NH值并将其确定为NH值。 [0053] 进一步地,NCC的取值范围为大于等于0,小于等于63。 [0054] 进一步地,一种切换的密钥分发系统,系统包括:基站和核心网,基站包括密钥信息请求单元及密钥生成单元,核心网包括密钥信息提供单元,其中, [0055] 密钥信息请求单元用于,收到终端请求切入的切换请求时,向核心网请求密钥生成信息; [0056] 密钥信息提供单元用于,根据密钥信息请求单元的请求,为其提供密钥生成信息; [0057] 密钥生成单元用于,根据密钥信息提供单元提供的密钥生成信息生成密钥,该密钥用于推导出接入层的密钥。 [0058] 进一步地,密钥生成信息包括NCC对应的NH值,密钥生成单元生成的密钥为KeNB; [0059] 密钥信息请求单元进一步用于,根据切换请求中包含的第一NCC值生成第二NCC值,并通过向核心网移动管理实体发送切换NCC请求向核心网请求密钥生成信息,在该切换NCC请求中包含第二NCC值; [0060] 密钥信息提供单元进一步用于,收到切换NCC请求时,根据其中的第二NCC值以及本地保存的NCC值确定NH值,并包含在切换NCC响应中发送给密钥信息请求单元。 [0061] 进一步地,密钥信息提供单元进一步用于,根据第二NCC值以及本地保存的NCC值,按照如下方式确定NH值: [0062] 将第二NCC值与本地保存的NCC值进行比较, [0063] 如果第二NCC值等于本地保存的NCC值,则将第二NCC值对应的NH值确定为NH值; [0064] 如果第二NCC值大于本地保存的NCC值,则将本地保存的NCC值设置为第二NCC值,计算第二NCC值对应的NH值并将其确定为NH值; [0065] 如果第二NCC值小于本地保存的NCC值,则将本地保存的NCC值递增一次,计算递增后的NCC值对应的NH值并将其确定为NH值。 [0066] 进一步地,系统还包括终端,终端进一步包括密钥计算单元, [0067] 密钥信息提供单元进一步用于,在发送给密钥信息请求单元的切换NCC响应中还包含确定的NH值所对应的NCC值; [0068] 密钥信息请求单元进一步用于,收到NCC值后保存,并转发给终端; [0069] 密钥计算单元用于,根据收到的密钥信息请求单元发送的NCC值计算对应的NH值,并根据计算出的NH值计算KeNB。 [0070] 本发明提出的密钥分发方案,通过MME为目标eNB提供密钥的生成素材,并由目标eNB生成KeNB密钥,这样,在X2切换过程中,即使源eNB被攻破,也无法获取到目标eNB的密钥KeNB,从而解决了切换过程中密钥分发的安全问题,并且达到了1跳前向安全的目的。 附图说明[0072] 图1为现有技术的第一次切换的密钥分发流程示意图; [0073] 图2为现有技术的第二次切换的密钥分发流程示意图; [0074] 图3为本发明实施例的切换的密钥分发流程示意图。 具体实施方式[0075] 本发明的核心思想在于,在X2切换中,通过目标eNB与MME的交互,MME为目标eNB提供密钥的生成素材,由目标eNB来进行密钥的生成,从而保证了源eNB无法推算出目标eNB和UE之间的密钥,达到1跳前向安全的目的。 [0076] 基于上述思想,本发明提供一种切换的密钥分发方法,具体采用如下技术方案: [0077] 终端在源基站和目标基站进行切换时,所述目标基站向核心网请求密钥生成信息; [0078] 所述目标基站根据核心网提供的所述密钥生成信息生成密钥,该密钥用于推导出接入层的密钥。 [0079] 进一步地,所述密钥生成信息包括NCC对应的NH值;所述目标基站根据所述NH值生成的所述密钥为KeNB。 [0080] 进一步地,所述目标基站向核心网请求密钥生成信息,具体包括: [0081] 所述目标基站收到所述源基站发送的切换请求时,根据该切换请求中包含的第一NCC值生成第二NCC值,并向核心网移动管理实体发送切换NCC请求,在该切换NCC请求中包含所述第二NCC值; [0082] 所述移动管理实体收到所述切换NCC请求时,根据其中的所述第二NCC值以及本地保存的NCC值,确定相应的NH值并包含在切换NCC响应中发送给所述目标基站。 [0083] 进一步地,所述移动管理实体根据所述第二NCC值以及本地保存的NCC值,确定相应的NH值,具体包括: [0084] 所述移动管理实体将所述第二NCC值与本地保存的NCC值进行比较,[0085] 如果所述第二NCC值等于本地保存的NCC值,则将所述第二NCC值对应的NH值确定为所述相应的NH值; [0086] 如果所述第二NCC值大于本地保存的NCC值,则将本地保存的NCC值设置为所述第二NCC值,计算所述第二NCC值对应的NH值并将其确定为所述相应的NH值; [0087] 如果所述第二NCC值小于本地保存的NCC值,则将本地保存的NCC值递增一次,计算递增后的NCC值对应的NH值并将其确定为所述相应的NH值。 [0088] 进一步地,所述NCC的取值范围为大于等于0,小于等于63。 [0089] 进一步地,所述目标基站按照如下公式计算所述第二NCC值: [0090] [0091] 其 中,NCC1为 第 一 NCC值,NCC2为 第 二NCC值,CRNTI(Cell RadioNetwork Temporary Identify)为小区无线网络临时标识。 [0092] 进一步地,当所述第二NCC值小于所述移动管理实体本地保存的NCC值时,若本地保存的NCC值递增后等于NCC取值范围内的最大值,则直接根据本地保存的该NCC值计算对应的NH值并将其确定为所述相应的NH值。 [0093] 进一步地,终端根据目标基站发送的NCC值计算对应的NH值,并根据计算出的NH值计算KeNB。 [0094] 以下将结合附图及具体实例对本发明技术方案的实施作更进一步详细的描述。 [0095] 图3为本发明实施例的切换的密钥分发方法的流程示意图,如图3所示,本实施例流程具体描述如下: [0096] 步骤301,UE上报Measurement Report; [0097] 步骤302,源eNB根据UE上报的Measurement Report作出切换决策,并生成KeNB*; [0098] 该步骤中,如果是第一次切换,则KeNB*=KDF(KeNB||PCI||EARFCN_DL);否则,KeNB*=KDF(NH||PCI||EARFCN_DL); [0099] 步骤303,源eNB向目标eNB发起Handover Request,并通过HandoverRequest消*息将{NCC,KeNB}转发给目标eNB; [0100] 步骤304,目标eNB生成NCC*,NCC*=KDF(NCC||KeNB*||CRNTI); [0101] 优选地,为了更好地保障密钥的安全性,本发明中将标准NCC的取值范围【0,7】进行扩展,如可以将的取值范围取作【0,63】等,这样,可以避免源eNB根据有限的几个NCC的取值推算出目标eNB的密钥。 [0102] 此外,优选地,如果该步骤中目标eNB生成的NCC*为范围内的最大值,则令NCC*=*NCC-1,以免出现NCC翻转的情况。 [0103] 步骤305,目标eNB向MME发送HandoverNCC Request(切换NCC请求)消息,该消*息中携带所生成的NCC; [0104] 步骤306,MME收到Handover NCC Request消息后,将本地的NCC值与消息中的*NCC值进行比较,并按照如下方式确定NH值: [0105] (i)如果NCC*=NCC,则MME将NCC=NCC*,并确定NH值为NCC所对应的NH; [0106] (ii)如果NCC*>NCC,则MME将NCC=NCC*,通过安全参数规范定义的函数迭代* *计算NCC对应的NH,然后令NH=NH; [0107] (iii)如果NCC*<NCC,则MME将NCC=NCC+1,这样做的目的是向NCC递增的方向生成NH。 [0108] 此外,对于情况(iii),为了保证采用纵向密钥生成法时不出现NCC翻转的情况,即NCC值如果达到最大值或临界值的话应该如何处理,是否重设为0,目前协议上并没有明确的描述,因此,为了使NCC不进行翻转,本发明定义了如下处理方式:NCC+1后如果为取值*范围内最大值,则NCC=NCC-1,然后通过规范定义的KDF(KASME||NH)计算NH,然后令NH* =NH。 [0109] 步骤307,MME向目标eNB发送Handover NCC Response(切换NCC响应)消息,该消息中包括{NCC,NH}; [0110] 步骤308,目标eNB保存收到的NCC的值,并根据收到的NH值生成KeNB,KeNB=KDF(NH||PCI||EARFCN_DL); [0111] 步骤309,目标eNB向源eNB返回Handover Request Ack(切换请求应答),并将收到的MME发送的NCC值包含在该Handover Request Ack消息中; [0112] 步骤310,源eNB将NCC包含在Handover Command消息中发送给UE; [0113] 步骤311,UE收到包含NCC值的Handover Command消息后,增加NCC值,直到和Handover Command消息中的NCC值相匹配,然后通过安全参数规范定义的函数迭代计算NCC对应的NH,并根据该NH值计算KeNB,KeNB=KDF(NH||PCI||EARFCN_DL); [0115] 步骤312,UE向目标eNB返回Handover Confirm消息; [0116] 步骤313,目标eNB在完成和UE的切换信令交互后,向MME发送PathSwitch Request消息; [0117] 步骤314,MME向目标eNB发送Path Switch Request Ack,该消息中不再携带{NCC,NH}; [0118] 步骤315,切换完成后,目标eNB向源eNB发送Release Resource消息,通知源eNB释放UE的相关资源。 [0119] 从上述流程可以看出,在步骤304中,目标eNB根据源eNB发送的NCC值生成一*NCC,而在步骤306~308中,是由MME确定NH值并发送给目标eNB,目标eNB根据MME提供的NH值生成密钥,从而使得源eNB无法推算出目标eNB与UE之间的密钥KeNB,达到了1跳的前向安全。 [0120] 本实施方式的切换的密钥分发系统,包括:基站和核心网,基站包括密钥信息请求单元及密钥生成单元,核心网包括密钥信息提供单元,其中, [0121] 密钥信息请求单元用于,收到终端请求切入的切换请求时,向核心网请求密钥生成信息; [0122] 密钥信息提供单元用于,根据密钥信息请求单元的请求,为其提供密钥生成信息; [0123] 密钥生成单元用于,根据密钥信息提供单元提供的密钥生成信息生成密钥,该密钥用于推导出接入层的密钥。 [0124] 密钥生成信息包括NCC对应的NH值,密钥生成单元生成的密钥为KeNB; [0125] 密钥信息请求单元进一步用于,根据切换请求中包含的第一NCC值生成第二NCC值,并通过向核心网移动管理实体发送切换NCC请求向核心网请求密钥生成信息,在该切换NCC请求中包含第二NCC值; [0126] 密钥信息提供单元进一步用于,收到切换NCC请求时,根据其中的第二NCC值以及本地保存的NCC值确定NH值,并包含在切换NCC响应中发送给密钥信息请求单元。 [0127] 密钥信息提供单元进一步用于,根据第二NCC值以及本地保存的NCC值,按照如下方式确定NH值: [0128] 将第二NCC值与本地保存的NCC值进行比较, [0129] 如果第二NCC值等于本地保存的NCC值,则将第二NCC值对应的NH值确定为NH值; [0130] 如果所述第二NCC值大于本地保存的NCC值,则将本地保存的NCC值设置为第二NCC值,计算第二NCC值对应的NH值并将其确定为NH值; [0131] 如果第二NCC值小于本地保存的NCC值,则将本地保存的NCC值递增一次,计算递增后的NCC值对应的NH值并将其确定为NH值。 [0132] 系统还包括终端,终端进一步包括密钥计算单元, [0133] 密钥信息提供单元进一步用于,在发送给密钥信息请求单元的切换NCC响应中还包含确定的NH值所对应的NCC值; [0134] 密钥信息请求单元进一步用于,收到NCC值后保存,并转发给终端; [0135] 密钥计算单元用于,根据收到的密钥信息请求单元发送的NCC值计算对应的NH值,并根据计算出的NH值计算KeNB。 [0136] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 |