生成本地接口密钥的方法

文档序号:7964061阅读:272来源:国知局
专利名称:生成本地接口密钥的方法
技术领域
本发明涉及通用鉴权框架(GAA)技术领域,特别是指一种生成本地接 口密钥的方法。
背景技术
在第三代无线通信标准中,GAA是多种应用业务实体使用的一个用于 完成对用户身份进行验证的通用结构,应用通用鉴权框架可实现对应用业务 的用户进行检查和验证身份。上述多种应用业务可以是多播或广播业务、用 户证书业务、信息即时提供业务等,也可以是代理业务。图la为现有技术通用鉴权框架结构示意图,如图la所示,通用鉴权框 架通常由用户、4丸行用户身份初始检查验证的服务功能(BSF)实体、归属 用户服务器(HSS)和网络业务应用(NAF)实体组成。下文中将BSF实体 简称为BSF,将NAF实体简称为NAF。其中,BSF用于与用户进行互认证, 该互认证过程为互相验证身份,同时生成BSF与用户的共享密钥的过程, 该互认证过程也称为Bootstrapping过程或GBA过程,称能够与BSF实现 GBA过程的用户为具备GBA功能的用户;HSS中存储用于描述用户信息的 描述(Profile)文件,同时HSS还兼有产生鉴权信息的功能;NAF可以代 表不同的网络业务应用实体,用户要实现某种业务时,必须访问该业务对应 的NAF并与该NAF进行通信。各个实体之间的接口如图la所示,BSF与 NAF之间通过Zn接口连接;用户通过用户终端(UE )与BSF或NAF连接, UE与BSF之间通过Ub接口连接,UE与NAF之间通过Ua接口连接。本 文中,可以将BSF、 NAF及HSS统一称为网络侧。用户需要使用某种业务时,如果用户知道该业务需要到BSF进行GBA
过程,则直接到BSF进行互鉴权,否则,用户会首先和该业务对应的NAF 联系,如果该NAF使用GAA通用鉴权框架,并且发现该用户还未到BSF 进行互iU正过程,NAF则通知该用户到BSF进行互鉴权以验"i正身份。用户与BSF之间的GBA (互鉴权)的步骤包括用户向BSF发出鉴权 请求;BSF接到鉴权请求后,首先到HSS获取该用户的鉴权信息;BSF获 得鉴权信息后与用户进行双向认证以及密钥协商,完成用户和BSF之间身 份的互相认证及共享密钥Ks的生成,BSF还为共享密钥Ks定义了一个有 效期限即生存周期(Key-lifetime),以便Ks进行定期更新。共享密钥Ks 是作为根密钥来使用的,用于衍生出加密通信的密钥。之后,BSF分配一个会话事务标识(B-TID )发送给用户,该B-TID与 Ks相关联,可以用于标识Ks,还包含了Ks的有效期限。用户收到B-TID后,重新向NAF发出连接请求,且请求消息中携带了 该B-TID,同时用户侧根据Ks计算出衍生密钥Ks—NAF。NAF收到连接请求后,先在本地查询是否有用户携带的该B-TID,如果 NAF不能在本地查询到该B-TID,则向BSF进行查询,该查询消息中携带 了 NAF标识(NAF—ID )和B-TID。如果BSF不能在本地查询到该B-TID, 则通知NAF没有该用户的信息,此时,NAF将通知用户到BSF重新进行认 证鉴权。BSF查询到该B-TID后,使用与用户侧相同的算法计算出Ks的衍 生密钥Ks—NAF ,并向NAF发送成功的响应消息,该成功的响应中包括NAF 所需的B-TID、与该B-TID对应的衍生密钥Ks—NAF、以及BSF为该密钥诏: 置的有效期限。NAF收到BSF的成功响应消息后,就认为该用户是经过BSF 认证的合法用户,同时NAF和用户也就共享了由Ks衍生的密钥Ks—NAF。 之后,NAF和用户在后续的通信过程中通过Ks一NAF来进行加密通信。 当用户发现Ks即将过期,或NAF要求用户重新到BSF进行鉴权时, 用户就会重复上述的步骤重新到BSF进行互鉴权,以得到新的共享密钥Ks 及衍生密钥Ks一NAF。这里需要说明的是,GBA过程可以分为GBA ME过程和GBA U过程,对于GBA—ME过程,将会产生密钥Ks—NAF,该Ks—NAF存储于移动设备 (ME)中;对于GBA—U过程,将会产生两个密钥,其中一个是移动设备 中的用户身份模块UICC的密钥即Ks_int_NAF,另一个是ME的密钥即 Ks—ext一NAF。随着网络技术的发展,以及市场需求的推动,网络融合已经成为人们关 注的焦点。从未来发展的角度来看,多种网络融合对于用户来说,可使用任 意终端设备如移动台、PDA(个人数字助理)、PC(个人电脑)等通过任意方式 接入网络如无线局域网(WLAN)、数字用户线路 (DSL)、 通用分组无 线业务(GPRS)等,而且号码可唯一、帐单可唯一。这就意味着一个用户 可以具备多种终端设备,并且这些终端设备共享该用户的一个用户终端 (UE )对应的用户信息,如UE的UICC ( UICC上可以为GSM用户身份模 块(SIM)、通用用户身份才莫块(USIM)等)和ME对应的用户信息,在这 种情况下,这就不仅仅是UICC或者ME可以安全接入网络,而且还需要保 证其它终端设备也要通过UICC安全的接入网络。图lb是NAF应用客户端和GBA客户端分离状态下的GAA框架示意 图,某个移动用户具备多个终端设备,如除了手机以外,还具备其它终端设 备如PC机,WLANUE,掌上电脑等,而这些终端设备采用同一个UE用户 信息访问网络业务,NAF应用客户端并不在UICC上,而是在UICC以外的 某一个或者某几个外围终端设备上,GBA客户端仍在UICC上。基于上述情况,在终端设备与网络建立安全连接之前,终端设备必须获 得UICC中的相关机密信息,从而来保证终端设备能够安全接入网络或者开 展相应的业务,即终端设备与UICC间需要传送一些机密信息,比如终端设 备与网络进行双向认证所需要的UICC的信息、终端设备开展业务时需要使 用的密钥信息等等。因此,终端设备与UICC之间的本地接口Uu)必须提供安 全保护,能够保证终端设备与UICC之间传送的信息不泄漏、不被非法获得。 只有本地接口的安全性得到保护,整个网络的安全性才能得以完全保证。终端设备下文筒称为终端要使用某应用时,检查到自身不存在与该应用
对应的与UICC通信所需要的Ks一Local时,或者终端检查到自身存在与该应用对应的与UICC通信所需要的Ks—Local,而UICC中不存在与该应用对应的Ks—Local时,将会发起Ks一Local协商过程,图2是现有技术UICC与终端之间协商本地4^口密钥的流程图,具体包括以下步骤步骤200:终端请求UICC进行一次完整的GBA过程,及与NAF密钥中心相关的GBA—U过程,乂人而产生相关的密钥资料。NAF密钥中心用于协商终端与UICC间通信密钥的服务器。本步骤中,通过GBA过程及GBA—U过程,协商了终端/UICC与BSF间的共享密钥Ks,及保存在UICC中与B—TID,NAF标识(NAF—ID )对应的密钥Ks一int—NAF。步骤201:终端向UICC请求与GBA过程中生成的Ks—int—NAF相关的 B—TID及NAF—ID。终端在请求中携带有终端标识(Terminal—ID )等衍生Ks_Local所需相关 信息,如应用的标识等。步骤202: UICC利用自身存储的Ks—int—NAF及接收到的Terminal—ID等 衍生Ks一Local。本步骤中,UICC利用Ks—int—NAF和来自终端的相关信息衍生KsJ^oca1,并且存储该Ks—Local 。需要说明的是,本步骤也可以在步骤210之后执行。步骤203: UICC向终端发送与Ksjnt—NAF相关的NAF—ID和B—TID。步骤204:终端与NAF进行双向认证并建立隧道。如通过证书方式等建立基于TLS的超文本传输协议(HTTPS)隧道等,具体实现属于本领域技术人员公知技术,可参见相关资料,这里不再赘述。步骤205:终端通过建立好的HTTPS隧道,向NAF密钥中心发送本地密钥建立请求。该本地密钥建立请求中携带有Terminal一ID和获得的B一TID ,也可能携带 有NAF—ID等信息。 步骤206: NAF向BSF发送认证请求,该认证请求中携带有B—TID和自身 的NAF一ID。步骤207: BSF向NAF发送认证响应,该认证响应中携带有Ks—int—NAF 和相关信息如Ksjnt—NAF的生命周期等信息。步骤208: NAF根据Terminal—ID检查该终端可以通过该UICC接入网络 后,利用Ks—int—NAF和相关信息,采用与UICC中相同的算法衍生Ks一Local, 并为该Ks一Local定义一个生存周期。步骤209: NAF通过HTTPS隧道,将衍生的Ks—Local及其生存周期发送 给终端。步骤210:终端存储接收到的Ks一Local及其生存周期。 至此,终端与UICC共享了Ks—Local,并利用该Ks—Local进行安全通信。 现有UICC与终端间协商Ks_Local的方法存在的问题是 Ks—Local是由Ks—int—NAF衍生的,在Ks—int—NAF密钥有效期内,终端 因与网络侧中断通信如关机等原因造成Ks—Local丟失时,如果该终端再次发 起该Ks一Local所对应的应用,则将会发起图2所示整个协商过程。然而,在 这种情况下,UICC内可能保存有与当前发起的应用对应的Ks—Local,并且 该Ks一Local尚未过期,如果按照图2所示流程重新协商一个新Ks—Local,造 成了过于繁瑣的过程,浪费了资源。除此之外,在终端与UICC中的Ks—Local无效,{旦书t生该Ks—Local的 Ks—int—NAF处于有效期时,现有4支术中还可以采用该Ks—int—NAF重新衍生 Ks—Local,但是,由于计算密钥的参数与协商丟失的Ks—Local的过程中的参 数相同,所以此次衍生出的Ks—1ocal与前一次衍生的Ks—local相同,这样的处 理在一定程度上降低了UICC与终端间通信的安全等级。发明内容有鉴于此,本发明的主要目的在于提供一种生成本地接口密钥的方法, 能够简单地获取本地接口密钥,保证UICC与终端间通信的安全等级。
为达到上述目的,本发明的技术方案具体是这样实现的一种生成本地接口密钥的方法,该方法包括以下步骤A、 生成可变参数;B、 根据生成的可变参数,及计算本地接口密钥的相关参数衍生本地接口密钥。所述可变参数由终端生成,所述本地接口密钥由用户集成电路卡UICC侧 衍生,所述步骤B具体包括终端将所述可变参数发送至UICC侧;UICC侧根据所述可变参数及计算本地接口密钥的相关参数衍生所述本地 4妻口密钥。所述可变参数由终端生成,所述本地接口密钥由网络侧衍生,所述步骤B 具体包括终端将所述可变参数以及从UICC侧获取的密钥标识信息发送至网络侧; 网络侧根据所述可变参数、密钥标识信息及计算本地接口密钥的相关参数衍生所述本地接口密钥。所述可变参数由UICC侧生成,所述本地接口密铜由UICC侧衍生,所述步骤B具体包括UICC侧根据所述可变参数及计算本地接口密钥的相关参数衍生所述本地 孑妄口密钥。所述可变参数由UICC侧生成,所述本地接口密钥由网络侧衍生,所述步 骤B具体包括终端将从UICC侧获取的密钥标识信息以及可变参数发送至网络侧; 网络侧根据所述可变参数、密钥标识信息及计算本地接口密钥的相关参数衍生所述本地接口密钥。所述可变参数由网络侧生成,所述本地接口密钥由UICC侧衍生,所述步骤B具体包括终端将从网络侧获取的所迷可变参数发送至UICC侧,所述UICC侧根据 所述可变参数及计算本地接口密钥的相关参数衍生所述本地接口密钥。所述可变参数由网络侧生成,所述本地接口密钥由网络侧衍生,所述步骤B具体包括终端将/人UICC侧获取的密钥标识信息发送至网络侧; 网络侧冲艮据所述可变参数、密钥标识信息及计算本地接口密钥的相关参数 衍生所述本地接口密钥。所述网^"侧衍生本地接口密钥具体包括所述网络侧中的BSF根据Ks以及所述可变参数衍生NAF相关密钥,所 述Ks为UICC用户和BSF之间的共享密钥;根据所述NAF相关密钥及计算本地接口密钥Ks—local的相关参数衍生本地接口密钥。所述网络侧衍生本地接口密钥具体包括所述网络侧中的BSF根据Ks衍生NAF相关密钥,所述Ks为UICC用户 和BSF之间的共享密钥;根据所述NAF相关密钥、所述可变参数及计算本地接口密钥Ks一local的 相关参数衍生本地接口密钥。所述可变参数由所述网络侧中的通用自引导鉴权框架服务功能实体BSF 或网络应用功能实体NAF生成。若所述生成可变参数由所述网络侧中的通用自引导鉴权框架服务功能实 体BSF生成,所述网络侧衍生本地接口密钥具体包括所述网络侧中的网络应用功能实体NAF将从所述终端获得的密钥标识信 息发送至BSF;BSF根据Ks、获得的密钥标识信息及所述可变参数衍生NAF相关密钥, 并发送至NAF,所述Ks为UICC用户和BSF之间的共享密钥;NAF^4居获得的NAF相关密钥及计算本地接口密钥的相关参数衍生所述 本地接口密钥。若所述可变参数由所述网络侧中的NAF生成,所述网络侧衍生本地接口
密钥的步骤具体包括所述网络侧中的NAF将从所述终端获得的密钥标识信息发送至所述网络 侧中的BSF;BSF根据Ks、获得的密钥标识信息及所述可变参数衍生NAF相关密钥, 并发送至NAF,所述Ks为UICC用户和BSF之间的共享密钥;NAF根据获得的NAF相关密钥、该可变参数及计算本地接口密钥Ks—local 的相关参数衍生所述本地接口密钥。 所述步骤A之前还包括当终端未保存本地接口密钥时,查询UICC侧中是否存在有效的本地接口 密钥,所述有效为UICC侧存在该本地4^口密钥,且本地接口密钥的生命周期 未失效;若不存在,则执^f亍步骤A;否则,进入步骤C;C.终端通过网络侧中的NAF请求与当前应用对应的本地接口密钥。所述步骤C具体包括Cl.所述终端向UICC侧查询所述本地接口密钥;C2.所述UICC侧查询该的本地接口密钥是否有效,若有效,则将所述本 地接口密钥的生存周期发送给终端;若无效,则通知终端后进入步骤A;C3.所述终端向所述网络侧的NAF请求该本地接口密钥;C4.所述网络侧的NA确定该本地接口密钥未过期后,将查询到的本地接 口密钥及其生存周期返回给终端。步骤C3中所述终端请求本地接口密钥之前,该方法还包括所述终端4艮据 接收到的本地接口密钥的生存周期,确定该本地接口密钥是否过期,若未过期, 则继续执行本步骤中的请求本地接口密钥;若过期,则执行步骤A。步骤C4中,若所述网络侧的NAF确定该本地接口密钥过期,则执行步骤A。步骤A中所述UICC侧为用户身份模块UICC,或者UICC所属设备。 由上述技术方案可见,本发明方法利用生成可变参数,并根据生成的可
变参数,及计算本地接口密钥的相关参数衍生本地接口密钥。计算本地接口 密钥的相关参数为已知的......本发明方法筒化了终端获取本地接口密钥的实现过程,节省了协商Ks—Local的时间,从而节约了系统资源。同时,本 发明结合可变参数如随机数或时间戳,以及有效的密钥信息如根密钥Ks、 由Ks衍生得到的Ks—int—NAF,重新衍生以获取本地接口密钥,保证了 UICC 侧与终端间通信的安全等级。所述UICC侧指UICC本身和UICC所属设备。


图la是GAA结构示意图;图lb是NAF应用客户端和GBA客户端分离状态下的GAA框架示意图;图2是现有技术UICC与终端之间协商本地接口密钥的流程图; 图3是本发明终端获取本地接口密钥的流程图; 图4是本发明终端获取本地接口密钥的实施例一的流程图; 图5是本发明终端获取本地接口密钥的实施例二的流程图; 图6是本发明终端获取本地接口密钥的实施例三的流程图; 图7是本发明终端获取本地接口密钥的实施例四的流程图; 图8是本发明终端获取本地接口密钥的实施例五的流程图。
具体实施方式
本发明的核心思想是生成可变参数,并根据生成的可变参数,及计算 本地接口密钥的相关参数衍生本地接口密钥。为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 较佳实施例,对本发明进一步详细说明。图3是本发明终端获取本地接口密钥的流程图,本发明中的NAF密钥 中心即为NAF实体,当终端使用某应用时,包括以下步骤步骤300:终端获取密钥相关信息,并利用获得的密钥相关信息,向网
络侧请求建立本地接口密钥。本步骤中终端可以通过向UICC侧请求,以获取密钥相关信息,该密钥相关信息可以是密钥标识信息如B一TID,密钥生命周期等。这里,UICC侧 可以是UICC本身,也可以是UICC所属设备。步骤301:网络侧利用接收到的密钥相关信息查询有效的密钥信息,利 用该密钥信息及产生的可变参数衍生本地接口密钥。本步骤中,网络侧查询与接收到的密钥相关信息对应的有效的 Ks一int—NAF或Ks,利用 一可变参数如随机数或时间戳或者同步计数器的值, 以及Ks—int—NAF,衍生出与前一次衍生的Ks—local不相同的Ks—Local,或 者利用一可变参数如随机数或时间戳,以及Ks,衍生出与前一次衍生的 Ks—int—NAF不相同的Ks—int—NAF,再利用该Ks—int—NAF衍生Ks_Local。步骤302:网络侧将衍生的本地接口密钥发送给终端。进一步地,UICC侧自身利用有效的Ks—int—NAF和一与网络侧相同的 可变参数衍生Ks一Local并存储,或者利用有效的Ks和一与网络侧相同的可 变参数,衍生出与前一次衍生的Ks_int_NAF不相同的Ks—int—NAF,再利用 该Ks—int—NAF衍生Ks—Local。进一步地,在步骤300之前,终端可以先判断自身是否保存有与当前要 使用的应用对应的Ks—Local,若保存有,则向UICC侧发送查询请求,查看 UICC侧中该Ks—Local是否有效,可以在UICC侧内设置一个计数器来判断 该Ks—Local是否有效,如果计数器为0或者空(NULL),则表示该Ks—Local 无效,返回无效响应,之后终端发起新的密钥协商过程;否则,表示该 Ks—Local有效,直接应用该Ks—Local与UICC侧之间通信;若未保存,则进一步查询UICC侧中与当前要使用的应用对应的 Ks—Local是否过期,若过期,则执行图3所示流程;若未过期,则终端直接 向NAF密钥中心请求与当前应用对应的Ks_Local即可。需要说明的是,即 使UICC中与当前要使用的应用对应的Ks_Local未过期,也可以通过图3 所示的流程来获取Ks—Local 。
下面以UICC侧为UICC为例,结合几个实施例描述本发明方法的具体实现。实施例一 ,NAF相关密钥如Ks一int—NAF有效的情况,假设可变参数为 随机数RAND。图4是本发明终端获取本地接口密钥的实施例一的流程图,包括以下步骤步骤400:终端向UICC请求与GBA过程中生成的与Ks—int一NAF相关的 B一TID,也可以进一步包括生存周期等,该请求中携带有TerminalJD、 Terminal—appliJD、随机数RAND。本步骤中,终端需要生成随机数RAND并存储,生成的方法属于现有技 术,这里不再赘述。需要说明的是,随机数RAND还可以单独携带在一条本 地密钥衍生指令中发送给UICC。需要说明的是,本步骤之前或者本步骤之后还可能包括终端检查UICC 侧是否存在有效的Ks的步骤。如果不存在Ks或者存在的Ks已经过期,那么 需要发起一个完整的GBA过程,协商出一个新的Ks。此时,由于终端可以获 得B-TID信息,则步骤楊,401中查寻Ks—int—NAF的B-TID的过程可以省略, 也可以在要求UICC计算Ks—1ocal之前执行Ks—int—NAF查询过程,以便知道 UICC中是否存有可用的Ks—int一NAF。步骤401: UICC利用GBA—U过程中生成的Ks—int—NAF及接收到的随机 数RAND,衍生Ks—Local并存储。如果UICC中没有可用的Ks—int_NAF,那么需要执行GBA—U密钥衍生过 程,该GBA一U过程可能在收到本地密钥衍生指令之后,由UICC执行;也可 能在收到本地密钥衍生指令之前,收到 一个GBA一U密钥衍生指令后由UICC 执行。本步骤可以在步骤408之后纟丸行,此时,步骤400中所述本地密钥衍生指 令在步骤408之后,本步骤之前执行。步骤402: UICC将与GBA过程中生成的Ks—int—NAF对应的B—TID,还可
以进一步包括的Ks—int—NAF对应的生存周期发送给终端。本步骤中,在UICC向终端返回B—TID,还可以进一步包括生存周期时,UICC将自身的UICC标识符(UICC—ID )及UICC的应用的标识 (UICC—appli—ID )发送给终端。本步骤还可以进一步包括终端根据Ks一int—NAF对应的生存周期判断Ks—int—NAF是否过期,若未过期,则继续执行步骤403;若过期,则触发GBA过程,之后返回步骤400。步骤403:终端与NAF密钥中心进行双向认证并建立安全隧道如HTTPS隧道。本步骤具体实现方法很多,属于现有技术,这里不再详述。 步骤404:终端通过建立好的HTTPS隧道,向NAF密钥中心发送本地接 口密钥建立请求。该本地密钥建立请求中携带有Termina1—ID、 Terminal—appli—ID、获得的 B—TID、 UICCJD、 UICC—appli—ID以及终端存储的随机数RAND。这样, NAF密钥中心可以对于不同的应用产生 一个有效的本地接口密钥。步骤405 ~步骤406: NAF密钥中心查询自身存储的与该B—TID对应的有 效Ks一int—NAF ,利用该有效的Ks—int—NAF及接收到的随机数RAND衍生 Ks—Local并分配该Ks—Local的生存周期。需要说明的是,参加衍生Ks—Local 的信息还包括其它相关信息如Termina1—ID、 Terminal—appli—ID、 UICC—ID、 UICC—appli—ID等,具体衍生的算法与本发明无关,这里不再详述。UICC和NAF密钥中心使用相同的衍生算法衍生Ks—Local。本步骤直接利用存储的密钥信息即有效的Ks—int—NAF衍生Ks—Local,简 化了终端获取本地接口密钥的实现过程,节省了协商Ks—Local的时间,从而 节约了网络资源。此外,本步骤通过使用一随机数,即使在Ks—int一NAF相同 的情况下,衍生出来的Ks一Local也是不同的,保证了终端与UICC间通信的 安全等级。需要说明的是,如果NAF密钥中心不存在该B—TID对应的KsJnt—NAF即Ks—int—NAF无效,则NAF密钥中心会向BSF请求该密钥信息,这种情况不属 于本发明范畴,可以参考现有方案,这里不再赘述。本步骤中,在利用该有效的Ks—in^NAF衍生Ks—Local之前,进一步包括 NAF密钥中心可以通过Termina1—ID和UICC JD,查询该终端是否受限利用该 UICC接入网络,查询方式属于现有技术,大致是在NAF密钥中心维护一个 数据库,该数据库存储某个UICC允许被哪些终端使用,或者存储某个UICC 不允许被哪些终端使用的信息。如果允许该设备接入网络,则利用 Ks—int一NAF和相关信息衍生Ks—Local,否则,返回指示该终端无权利用该 UICC接入网络的响应。步骤407: NAF密钥中心通过隧道,向终端发送本;也密钥建立响应,该 响应中携带有BJTID、书于生得到的Ks—Local及其生存周期。 步骤408:终端存储接收到的Ks—Local及其生存周期。 至此,终端与UICC就共享了 Ks—Local,并利用该Ks—Local进行安全通信。 实施例二 , NAF相关密钥如Ks—int—NAF有效的情况。 本实施例与实施例 一 的不同之处在于,参与衍生Ks —local的可变参数的 产生实体不同。在实施例一中,可变参数由终端产生。而本实施例中,列举 了产生可变参数的两种可能及时机(1) UICC先于NAF密钥中心衍生 Ks—Local时,UICC在衍生Ks—Local时,自身产生该可变参数作为衍生 Ks—Local的参数,并将该可变参数通过终端传递给NAF密钥中心,NAF密钥 中心也将该可变参数作为衍生Ks一Local的一个参数,并采用与UICC相同的 衍生算法生成与UICC相同的Ks—Local。 (2) NAF密钥中心先于UICC衍生 Ks—Local时,NAF密钥中心在衍生Ks—Local时,自身产生该可变参数作为衍 生Ks—Local的参数,并将该可变参数通过终端传递给UICC, UICC也将该可 变参数作为衍生Ks—Local的一个参数,并采用与NAF密钥中心相同的衍生算 法生成与NAF密钥中心相同的Ks—Local;可变参数也可能是BSF计算 Ks—int—NAF时生成后通过终端传递给UICC的,UICC利用自身保存有的Ks及接 收到的可变参数衍生Ks—int—NAF,并在收到衍生本地接口密钥请求时,利用该 Ks—int—NAF衍生Ks—local 。图5是本发明终端获取本地接口密钥的实施例二的流程图,实施例二中 以NAF密钥中心先于UICC衍生Ks一Local为例,具体描述实现方法,包括以 下步骤步骤500:终端向UICC请求与GBA过程中生成的与Ks_int—NAF相关的 B—TID及密钥生存周期,该请求中可以携带TerminalJD、 Terminal—appli—ID。 需要说明的是,本步骤之前或者本步骤之后还可能包括终端检查UICC 侧是否存在有效的Ks的步骤。如果不存在Ks或者存在的Ks已经过期,那么 需要发起一个完整的GBA过程,协商出一个新的Ks。此时,由于终端可以获 得B-TID信息,则步骤500, 501中查寻Ks—int—NAF的B-TID的过程可以省略, 也可以在要求UICC计算Ks—local之前执行Ks—int—NAF查询过程,以便知道 UICC中是否存有可用的Ksjnt—NAF。步骤501: UICC将与GBA过程中生成 的Ks—int一NAF对应的B—TID及生存周期等信息发送给终端。本步骤中,在UICC向终端返回B—TID及Ks—int—NAF的生存周期时, UICC将自身的UICC—ID及UICC—appli—ID发送给终端。步骤5 02:终端与NAF进行双向认证并建立HTTPS隧道。 本步骤具体实现方法很多,属于现有技术,这里不再详述。 步骤503:终端通过建立好的HTTPS隧道,向NAF密钥中心发送本地密 钥建立请求。该本地密钥建立请求中携带有TerminalJD、 Terminal—appli—ID、获得的 B—TID、 UICC—ID以及UICC一appi—ID。这样,NAF密钥中心可以对于不同的应用产生一个有效的本地接口密钥。步骤504~步骤505: NAF密钥中心查询自身存储的与该B—TID对应的有 效Ks一int—NAF、生成一随机数RAND,利用该有效的Ks—int—NAF及生成的随 机数RAND衍生Ks—Local并分配该Ks—Local的生存周期。本步骤中,NAF密钥中心生成随机数RAND并存储,该随机数RAND的 生成的方法属于现有技术,这里不再赘述。
本步骤直接利用存储的密钥信息即有效的Ks一int—NAF衍生Ks_Local,简 化了终端获取本地接口密钥的实现过程,节省了协商Ks一Local的时间,从而 节约了网络资源。此外,本步骤通过使用一随机数,即使在Ks—int一NAF相同 的情况下,衍生出来的Ks—Local也是不同的,保证了终端与UICC间通信的 安全等级。需要说明的是,如果NAF密钥中心不存在该B—TID对应的Ks一int—NAF无效,则NAF密钥中心会向BSF请求该密钥信息,这种情况不属于本发明范畴,可以参考现有方案,这里不再赘述。本步骤中,在利用该有效的Ks一int—NAF衍生Ks—Local之前,进一步包括NAF密钥中心可以通过Termina1—ID和UICC一ID,查询该终端是否受限利用该UICC接入网络。如果允许该设备接入网络,则利用Ks—int—NAF和相关信息衍生Ks—Local,否则,返回指示该终端无权利用该UICC接入网络的的响应。 步骤506: NAF密钥中心通过HTTPS隧道,向终端发送本地密钥建立响应,该响应中携带有B—TID、 NAF密钥中心自身存储有的随机数RAND、衍生得到的Ks—Local及其生存周期。步骤507:终端存储接收到的Ks—Local及其生存周期。步骤508 : 终端向UICC发送生成Ks—Local请求,该请求中携带有Terminal一ID、 Terminal—appli一ID以及来自NAF密钥中心的随机数RAND。步骤509: UICC利用GBA—U过程中生成的有效的Ks—int—NAF及接收到的随机数RAND,衍生Ks—Local并存储。UICC和NAF密钥中心使用相同的衍生算法衍生Ks—Local。 需要说明的是,GBA—U过程可以在本步骤中执行,也可以在步骤508之前的任何步骤执行。至此,终端与UICC就共享了 Ks—Local,并利用该Ks—Local进行安全通信。实施例三,NAF相关密钥Ks—int—NAF无效且Ks有效的情况。图6是本发明终端获取本地接口密钥的实施例三的流程图,包括以下步骤步骤600 :终端向UICC请求Ks相关信息,该请求中可以携带 Terminal—ID、 Terminal—appli—ID,还可以携带终端表示当前时间爿f直的时间戳。步骤601: UICC查找本地存在的Ks,并将该Ks对应的生存周期及B-TID 返回给终端。如果来自终端的请求中携带有时间戳,UICC可根据该时间戳查询本地 是否存在有效的的Ks,如果存在,则将该Ks对应的生存周期及B—TID发送给 终端,进入步骤603,否则,进入步骤602。UICC对比时间戳和生存周期,判断该Ks的有效性,若生存周期大于时 间戳则表示有效;否则,表示无效。步骤602:发起GBA过程,以产生一个有效的Ks。本步骤中GBA过程的触发可能有多种情况如果终端就是UICC所属 ME,那么直接由ME发起GBA过程;如果终端是一个通过外部接口连接到 UICC上的外围终端,那么可能是由外围终端向UICC发指令,然后UICC向 ME发主动式命令触发GBA过程,或者UICC发现没有有效的Ks后,向ME发 主动式命令触发GBA过程,或者外围终端直接向ME发命令触发GBA过程; 之外,也有可能就是终端自身发起GBA过程。GBA过程的目的就是为了产生一个Ks,存储在UICC中。 步骤603:终端与NAF进行双向认证并建立HTTPS隧道。 本步骤具体实现方法很多,属于现有技术,这里不再详述。步骤604:终端通过建立好的HTTPS隧道,向NAF密钥中心发送本地密 钥建立请求。该本地密钥建立请求中携带有步骤602中GBA过程产生的或UICC返回 给终端的B—TID , 以及Terminal—ID 、 Terminal—appli—ID 、 UICC—ID 、 UICC—appiJD,以及终端生成的随机数RAND。这样,NAF密钥中心可以对 于不同的应用产生一个有效的本地接口密钥。步骤605: NAF密钥中心向BSF请求Ks—int—NAF,该请求中携带有接收 到的B—TID和随机数RAND ,以及自身的NAF—ID 。 步骤606: BSF利用B—TID对应的Ks、 NAF—ID、随才几数RAND等参数衍 生Ks—int—NAF并分配该Ks—int一NAF对应的生存周期,将该Ks一int一NAF及其 生存周期发送给NAF密钥中心。本步骤中,利用该随;f几数RAND,使得由Ks衍生的Ks一int—NAF与前一次 使用的Ks—int一NAF不同。步骤607: NAF密钥中心利用接收到的Ks—int—NAF衍生Ks—Local。 本步骤中,NAF密钥中心在利用该有效的Ks—int—NAF衍生Ks—Local之 前,进一步包括NAF密钥中心可以通过Termina1—ID和UICC—ID,查询该终 端是否受限利用该UICC接入网络。如果允许该设备接入网络,则利用 Ks_int—NAF和相关信息衍生Ks_Local,否则,返回指示该终端无权利用该 UICC接入网络的响应。步骤608: NAF密钥中心通过HTTPS隧道,向终端发送本地密钥建立响 应,该响应中携带有B—TID、随机数RAND、 Ks—Local及其生存周期。 步骤609:终端存储接收到的Ks一Local及其生存周期。 步骤610 :终端向UICC发送生成KsJ^ocal请求,该请求中携带有 Terminal—ID、 Terminal一appli一ID以及来自NAF密钥中心的随机数RAND。步骤611: UICC首先利用Ks和NAF—ID、随机数RAND等参数衍生 Ks—int—NAF,之后再利用该Ks—int—NAF衍生Ks—Local并存储。 UICC和NAF密钥中心使用相同的衍生算法衍生Ks—Local。 需要说明的是,UICC利用Ks、 NAFJD、随机数RAND等参数衍生 Ks—int—NAF的步骤也可在步骤610之前执行。至此,终端与UICC就共享了 Ks_Local,并利用该Ks—Local进4亍安全通信。 /人上述实施例一、实施例二和实施例三可见,实施例一和实施例二获取 KsJLocal的方法为利用 一可变参数如随机数或时间戳,以及密钥信息中的 有效Ks—int_NAF,衍生出与前一次衍生的Ks—local不相同的Ks—Local,而实 施例三获取Ks—Local的方法为利用 一可变参数如随机数或时间戳,以及密 钥信息中的Ks ,衍生出与前 一 次衍生的Ks—int—NAF不相同的Ks—int__NAF ,
再利用该Ks—int—NAF衍生Ks—Local 。需要说明的是,UICC侧和BSF利用可变参数以及Ks计算Ks—int—NAF的 可变参凄t,除了本实施例中所述终端产生,还可以由NAF密钥中心产生,并 携带在步骤605中的请求消息中发给BSF,随后通过步骤608、步骤609、步 骤610发给UICC侧;还可以由BSF在步骤606产生,并通过后续步骤发给UICC 侧。以上实施例中,不需要执行完整的GBA过程,简化了获取Ks—Local 的流程,简单地获取了本地接口密钥,节省了协商Ks—Local的时间,从而 节约了网络资源;同时,通过可变参数参与衍生而获得的Ks—Local与前一 次使用的Ks—Local是不同的,保证了 UICC与终端间通信的安全等级。需要说明的是,在执行实施例一和实施例二之前,还可以增加实施例三 中的步骤600~步骤602,此时,实施例一中的步骤400-步骤401可以省 略,实施例二中的步骤500 ~步骤501可以省略。除此之外,对于终端由于关机等操作而造成未过期的Ks—Local丟失的情 况,在终端需要使用某应用时,除了可以采用上述实施例一至实施例三的方 法获取Ks—Local外,还可以通过与UICC的交互,获取与Ks—Local相关的信息 如B—TID和应用相关标识,并利用获得的相关信息直接向NAF密钥中心请求 与该B—TID对应的Ks—Local即可。下面结合实施例四和实施例五详细描述实 现方法。实施例四,UICC中存在Ks—Local且未过期的情况。图7是本发明终端获取本地接口密钥的实施例四的流程图,包括以下步骤步骤700:终端向UICC发起查询Ks—Local请求,该请求中携带有 Terminal—ID和Terminal一appli—ID 。步骤701: UICC查询自身存储的,与Termina1—ID和Terminal—appli—ID对 应的Ks—Local,则UICC将该Ks一Local的生存周期携带在查询响应中发送给终 端。该查询响应中还携带有UICCJD和UICC—appli—ID。
需要说明的是,如果UICC中未存储与TerminalJD和Termina1—appli—ID 对应的Ks—Local,则UICC会通知终端不存在Ks—Local,之后终端会采用实施 例 一 、或实施例二 、或实施例三所示的方法来获取Ks—Local 。步骤702:终端根据接收到的Ks一Local的生存周期,及终端自身的时间 机制,确定该Ks—Local未过期后,向NAF密钥中心请求该Ks一Local。需要说明的是,如果该Ks一Local已过期,则终端会采用实施例一、或实 施例二、或实施例三所示的方法来获取Ks一Local。只要终端确定该Ks—Local已过期,那么,终端向UICC发送删除旧的 KsJ^ocal以及发起建立新的Ks—Local的请求。删除旧的Ks—Local以及发起建 立新的Ks一Local两个i青求,可以作为一条消息发送,也可以分两条发送;或 者,终端只向UICC发送删除旧的Ks一Local的请求;或者终端只向UICC发送 建立新的Ks—Local的请求。步骤703:终端与NAF进行双向认证并建立HTTPS隧道。本步骤具体实现方法很多,属于现有技术,这里不再详述。步骤704 :终端通过建立好的HTTPS隧道,向NAF密钥中心请求 Ks—Local。该请求中携带有Termina1—ID、 Terminal—appli—ID、 UICC—ID及 UICC一appli」D。步骤705: NAF密钥中心查询到与请求中携带的信息对应的Ks—Local后, 在HTTPS隧道中,将该Ks—Local及其生存周期返回给终端。至此,终端与UICC就共享了 Ks—Local,并利用该Ks—Local进行安全通信。 在步骤701中,由于传输生存周期是未加密的,UICC在向终端发送 Ks一Local的生存周期时,攻击者可能非法修改该生存周期,因此,在步骤704 中,为了确保UICC与终端能够共享有效的Ks—Local, NAF密钥中心在查询 到该Ks—Local后,进一步对该Ks—Local的生存周期进行验证,判断该Ks—Local 是否过期。实施例五,UICC中存在Ks—Local且未过期的情况。图8是本发明终端获取本地接口密钥的实施例五的流程图,包括以下步
骤步骤800: 终端向UICC发起查询KsJLocal请求,该-清求中携带有TerminalJD和Terminal一appli—ID。步骤801: UICC查询自身存储的,与Termina1—ID和Termina1—appli—ID对应的Ks—Local,则UICC将自身UICC—ID和UICC—appli—ID携带在查询响应中发送给终端,以告知终端,UICC中存在终端查询的Ks一Local。需要说明的是,如果UICC中未存储与Terminal—ID和Terminal—appli—ID对应的Ks—Local,则UICC会通知终端不存在Ks—Local,之后终端会采用实施例 一 、或实施例二 、或实施例三所示的方法来获取Ks一Local 。 步骤802:终端与NAF进行双向认证并建立HTTPS隧道。 本步骤具体实现方法很多,属于现有技术,这里不再详述。 步骤803:终端在建立好的HTTPS隧道中,向NAF密钥中心请求Ks—Local。该请求中携带有Termina1—ID、 Terminal_appli—ID、 UICC—ID及UICC—appli—ID。步骤804~步骤805: NAF密钥中心查询到与接收到的Termina1—appli—ID 对应的Ks一Local,并确定该Ks—Local未过期后,NAF密钥密钥中心通过 HTTPSP逸道,将该Ks一Local及其生存周期返回给终端。需要说明的是,如果该Ks一Local已过期,则终端会采用实施例一、或实 施例二 、或实施例三所示的方法来获取Ks一Local 。至此,终端与UICC就共享了 Ks—Local,并利用该KsJLocal进行安全通信。从实施例四和实施例五可见,如果终端因关机等原因造成Ks一Local丢 失,而UICC内还存储有该Ks—Local且该Ks—Local未过期时,终端只需向NAF 密钥中心请求丢失的密钥即可,而不需要再次进行整个密钥协商过程,该方 法更进一步的简化了获取Ks—Local的流程,从而实现了本发明简单获取本地 接口密钥的方法。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,
均应包含在本发明的保护范围之内。
权利要求
1、一种生成本地接口密钥的方法,其特征在于,该方法包括以下步骤A、生成可变参数;B、根据生成的可变参数,及计算本地接口密钥的相关参数衍生本地接口密钥。
2、 根据权利要求1所述的方法,其特征在于,所述可变参数由终端生成, 所述本地接口密钥由用户集成电路卡UICC侧衍生,所述步骤B具体包括终端将所述可变参数发送至UICC侧;UICC侧根据所述可变参数及计算本地接口密钥的相关参I1衍生所述本地 接口密钥。
3、 根据权利要求1所述的方法,其特征在于,所述可变参数由终端生成, 所述本地接口密钥由网络侧衍生,所述步骤B具体包括终端将所述可变参数以及从UICC侧获取的密钥标识信息发送至网络侧; 网络侧根据所述可变参数、密钥标识信息及计算本地接口密钥的相关参数 衍生所述本地接口密钥。
4、 根据权利要求1所述的方法,其特征在于,所述可变参数由UICC侧 生成,所述本地接口密钥由UICC侧衍生,所述步骤B具体包括UICC侧根据所述可变参数及计算本地接口密钥的相关参数衍生所述本地 接口密钥。
5、 根据权利要求1所述的方法,其特征在于,所述可变参数由UICC侧 生成,所述本地接口密钥由网络侧衍生,所述步骤B具体包括终端将从UICC侧获取的密钥标识信息以及可变参数发送至网络侧; 网络侧根据所述可变参数、密钥标识信息及计算本地接口密钥的相关参数 衍生所述本地接口密钥。
6、 根据权利要求1所述的方法,其特征在于,所述可变参数由网络侧生 成,所述本地接口密钥由UICC侧衍生,所述步骤B具体包括 终端将从网络侧获取的所述可变参数发送至UICC侧,所述UICC侧根据 所述可变参数及计算本地接口密钥的相关参数衍生所述本地接口密钥。
7、 根据权利要求1所述的方法,其特征在于,所述可变参数由网络侧生 成,所述本地接口密钥由网络侧衍生,所述步骤B具体包括终端将从UICC侧获取的密钥标识信息发送至网络侧; 网络侧根据所述可变参数、密钥标识信息及计算本地接口密钥的相关参数 衍生所述本地接口密钥。
8、 才艮据权利要求7所述的方法,其特征在于所述网络侧衍生本地接口 密钥具体包括所述网络侧中的BSF根据Ks以及所述可变参数衍生NAF相关密钥,所 述Ks为UICC用户和BSF之间的共享密钥;根据所述NAF相关密钥及计算本地接口密钥Ks一local的相关参数衍生本 地接口密钥。
9、 根据权利要求7所述的方法,其特征在于所述网络侧衍生本地接口 密钥具体包括所述网络侧中的BSF根据Ks衍生NAF相关密钥,所述Ks为UICC用户 和BSF之间的共享密钥;根据所述NAF相关密钥、所述可变参数及计算本地接口密钥Ks—local的 相关参数衍生本地接口密钥。
10、 根据权利要求6、 7、 8或9所述的方法。其特征在于,所述可变参数 由所述网络侧中的通用自引导鉴权框架服务功能实体BSF或网络应用功能实体 NAF生成。
11、 根据权利要求IO所述的方法,其特征在于,若所述生成可变参数由 所述网络侧中的通用自引导鉴权框架服务功能实体BSF生成,所述网络侧衍生本地接口密钥具体包括所述网络侧中的网络应用功能实体NAF将从所述终端获得的密钥标识信 息发送至BSF; BSF根据Ks、获得的密钥标识信息及所述可变参数衍生NAF相关密钥, 并发送至NAF,所述Ks为UICC用户和BSF之间的共享密钥;NAF根据获得的NAF相关密钥及计算本地接口密钥的相关参数衍生所述 本地接口密钥。
12、根据权利要求10所述的方法。其特征在于,若所述可变参数由所述 网络侧中的NAF生成,所述网络侧衍生本地接口密钥的步骤具体包括所述网络侧中的NAF将从所述终端获得的密钥标识信息发送至所述网络 侧中的BSF;BSF根据Ks、获得的密钥标识信息及所述可变参数衍生NAF相关密钥, 并发送至NAF,所述Ks为UICC用户和BSF之间的共享密钥;NAF根据获得的NAF相关密钥、该可变参数及计算本地接口密钥Ks一local 的相关参数衍生所述本地接口密钥。
13、 根据权利要求1所述的方法,其特征在于,所述步骤A之前还包括 当终端未保存本地接口密钥时,查询UICC侧中是否存在有效的本地接口密钥,所述有效为UICC侧存在该本地接口密钥,且本地接口密钥的生命周期 未失效;若不存在,则执行步骤A;否则,进入步骤C;C终端通过网络侧中的NAF请求与当前应用对应的本地接口密钥。
14、 根据权利要求13所述的方法,其特征在于,所述步骤C具体包括 C1.所述终端向UICC侧查询所述本地接口密钥;C2.所述UICC侧查询该的本地接口密钥是否有效,若有效,则将所述本 地接口密钥的生存周期发送给终端;若无效,则通知终端后进入步骤A; C3.所述终端向所述网络侧的NAF请求该本地接口密钥; C4.所述网络侧的NA确定该本地接口密钥未过期后,将查询到的本地接 口密钥及其生存周期返回给终端。
15、 根据权利要求14所述的方法,其特征在于,步骤C3中所述终端请求 本地接口密钥之前,该方法还包括所述终端根据接收到的本地接口密钥的生 存周期,确定该本地接口密钥是否过期,若未过期,则继续执行本步骤中的请求本地接口密钥;若过期,则执行步骤A。
16、 冲艮据权利要求14所述的方法,其特征在于,步骤C4中,若所述网络 侧的NAF确定该本地接口密钥过期,则执行步骤A。
17、 根据权利要求l所述方法,其特征在于,步骤A中所述UICC侧为用 户身份模块UICC,或者UICC所属设备。
全文摘要
本发明公开了一种生成本地接口密钥的方法,该方法包括生成可变参数,并根据生成的可变参数,及计算本地接口密钥的相关参数衍生本地接口密钥。本发明方法简化了终端获取本地接口密钥的实现过程,节约了系统资源。同时,本发明结合可变参数以及有效的密钥信息衍生以获取本地接口密钥,保证了UICC与终端间通信的安全等级。
文档编号H04L29/06GK101102190SQ20061009842
公开日2008年1月9日 申请日期2006年7月4日 优先权日2006年7月4日
发明者曹淑华, 杨艳梅 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1