具体实施方式
在结合附图对具体实施例进行说明之前,首先对本文中出现的部分概念进行解释,以便理解。
通信设备:特指通信网络中需要进行基于身份标识加密技术的的安全通信(下文中简称安全通信)的设备,包括但不限于手机、固定电话以及可视为特殊的通信设备的AS(应用服务器)等;
通信对方:与一个通信设备进行安全通信的另一通信设备,进行安全通信的双方互为彼此的通信对方;
通信设备的特征信息:通信设备所具有的在通信网络中唯一的标识信息,包括但不限于手机号码、终端设备标识等;
管理设备:在本发明中称为密钥管理中心(Key ManagementCenter,即KMC),主要负责为其下属的各通信设备提供用于生成所述各通信设备的通信对方的公钥以及与其通信对方之间的会话密钥所需的算法、相关参数及其它相关信息,并基于其下属的通信设备的特征信息来为其生成并管理私钥;
域:同一运营商或服务提供商在一个域内通常拥有一个上述管理设备,而各个运营商或服务提供商在同一域内则拥有各自的管理设备。下文中,假设北京、上海为两个不同的所述域,则,***(一运营商)将拥有分别用于管理上述两域的两个管理设备,而在北京这个域内,除***外,可能还有中国电信、***甚至新浪(sina,一服务提供商)的管理设备;
不同的管理设备:包括但不限于以下情形,同一运营商(或服务提供商)所拥有的用于负责不同域的管理设备(如,***用于负责北京、上海的两个管理设备);属于不同运营商(或不同服务提供商,又或一个属于一运营商而另一个属于一服务提供商)的两个管理设备。通常,一个通信设备只属于一个管理设备,即,一个通信设备的归属管理设备通常只有一个;
网络服务器:根据本发明的具体实施例,管理设备通过访问HSS(归属用户服务器,Home Subscriber Server)或通过BSF(自举服务功能,Bootstrapping Service Function)服务器来访问HSS,以完成诸如管理设备与通信设备间的双向认证、私钥的安全传输等任务,本文中,将不同实施例中的HSS或HSS与BSF所组成的整体称为网络服务器。
在此后的说明中将陆续对文中出现的其它概念进行解释。
图2为根据本发明的一个具体实施方式的用于实现基于身份标识加密技术的安全通信的通信网络示意图。所示通信网络包括:不同的管理设备第一管理设备3和第二管理设备4(不致混淆地,以下分别简称KMC3和KMC4)、网络服务器5、6以及多个通信设备(为简明起见,仅示出其中属于KMC3的第一通信设备1和属于KMC4的第二通信设备2,并在以下分别简称UE1和UE2)。其中,所示KMC3、KMC4均包括本发明之第四方面提供的第一安全辅助装置30,以实现本发明之第一方面提供的方法;所示UE1、UE2均包括本发明之第五方面提供的安全通信装置10,以实现本发明第二方面提供的方法;所示网络服务器5、6均包括本发明之第六方面提供的第二安全辅助装置50,以实现本发明第三方面提供的方法。
以UE1为例,要与UE2进行安全通信,其需要知道与UE2所属的KMC4相对应的(换言之,由KMC4生成并提供的)安全通信相关信息,其中包括用于与UE2的特征信息相结合以生成UE2的公钥的算法及参数(以及用于后续生成会话密钥的算法及参数),尤其包括KMC4的主公钥;此外,UE1还要知道自己的私钥。同样,对UE2而言,其需要知道由KMC3生成并提供的安全通信相关信息,此外,还要知道UE2自己的私钥。以下,将与管理设备相对应的安全通信相关信息简称为管理设备的安全通信相关信息。
在图2所示的通信网络中,UE1与UE2中的任一方(如,UE1)可以直接利用与UE2相对应的公钥(以下将与通信设备相对应的公钥简称为该通信设备的公钥)以及其它参数(将在下文中详细解释)来对属于其间安全通信的待发送数据进行加密并发送给UE2,而UE2则依靠由其所属的KMC4处获得的与UE2自身相对应的私钥(以下将与通信设备相对应的私钥简称为该通信设备的私钥),进而利用其私钥来对UE1用UE2的公钥加密的数据进行解密。以下,将这种直接应用公私密钥对来对数据进行加解密的方式称为第一加解密方式,该方式基于非对称密钥算法。
可选地,UE1也可基于自己的私钥、UE2的公钥以及其它参数来生成属于其间安全通信的会话密钥,再用所述会话密钥对属于所述安全通信的待发送数据进行加密;相应地,UE2基于自己的私钥、UE1的公钥以及其它参数来得到属于其间安全通信的会话密钥,再用所述会话密钥对来自UE1的加密数据进行解密,以得到原始数据。以下,将这种基于公私密钥对协商得到会话密钥并将其用于对数据进行加解密的方式称为第二加解密方式,该方式基于对称密钥算法。
其中,与公私密钥对不同地,会话密钥属于对称密钥,也即,UE1用来加密(或解密)数据的会话密钥与UE2用来解密(或加密)数据的会话密钥在理论上是相同的。
本领域技术人员可以理解,对于第一/第二加解密方式,通信设备在进行安全通信之前,需要向其所属的管理设备(归属管理设备)进行签约和第一次注册,所述签约可以通过带外方式(如,传真或经由其它专用信道)进行。
以下结合本发明的各方面及其附图对本发明的各个实施例进行详细描述,以利于对上述内容的更好的理解。
图3示出了根据本发明的一个具体实施方式的在通信网络的管理设备中用于辅助进行基于身份标识加密技术的安全通信的方法流程图,而图4a、图4b分别为图3所示步骤S10与步骤S20的根据本发明的一个具体实施方式的详细流程图。以下结合图3、图4a、图4b并参照图2(以图2所示的UE1与UE2之间的安全通信为例,并主要针对KMC3一侧)对本发明的第一方面进行说明。该方法起始于步骤S100。
在步骤S100中,KMC3接收来自UE1的安全信息请求消息,其中包含UE1要进行安全通信的UE2所属的KMC4的管理设备相关信息。根据本发明的不同实施例,所述管理设备相关信息可以是KMC4的地址信息,供KMC3直接用于与KMC4的交互;所述管理设备相关信息也可以是KMC4的特征信息(如,KMC4的设备标识等)甚至是UE2的特征信息,此时,KMC3在与KMC4进行交互之前,需根据KMC4的特征信息/UE2的特征信息来在KMC3自身或在外置的其它存储设备中预存的映射信息中查询KMC4的地址信息。
在此,需对通信设备与管理设备之间的关系进行解释。本文中所称的通信设备所属的管理设备也即该通信设备的归属管理设备,当通信设备从其归属管理设备所在的域(也称该通信设备的归属域)移动到一个被访问域中(如,由归属域北京移动到被访问域上海)时,虽然考虑到管理设备覆盖范围或网络配置等因素,该通信设备与其在北京的归属管理设备之间的通信可能需要(并非必需)位于上海的一个管理设备来转发,但是,该通信设备与其位于北京的所述归属管理设备之间的归属关系并未发生变化,该通信设备仍需要其归属管理设备来辅助其获得与其通信对方所属的管理设备相对应的安全通信相关信息。以图2所示网络为例,当UE1由其归属域(KMC3所在的域)移动到被访问域(KMC4所在的域)时,要与UE2进行安全通信,UE1仍需经由KMC3来获得与KMC4相对应的安全通信相关信息,而其与KMC3之间的通信可能需由KMC4来转发。特别地,当UE2为一服务器级别的通信设备时,UE1与KMC3之间的通信还可由UE2来转发。通信双方的归属管理设备属于不同运营商/服务提供商的情形依此类推。
在步骤S100中接收到来自UE1的安全信息请求消息后,进到步骤S101。
在步骤S101中,KMC3从该安全信息请求消息中提取KMC4的管理设备相关信息,不失一般性地,假设其为KMC4的地址信息,接着,该方法进到一个可选步骤S102。
在步骤S102中,KMC3判断其自身(或一个外置的存储设备)是否有预存的有效的KMC4的安全通信相关信息。其中,所述预存的有效的KMC4的安全通信相关信息属于KMC3之前根据其下属的通信设备的安全信息请求消息向KMC4查询而获得的一组或多组安全通信相关信息,通常,每组安全通信相关信息都有KMC4提供的相应有效期。
如果KMC3在步骤S102中判断出有预存的有效的KMC4的安全通信相关信息,该方法将进到步骤S103,在步骤S103中,KMC3将预存的有效的KMC4的安全通信相关信息作为所述为UE1获得的KMC4的安全通信相关信息。其中,如果有多组预存的有效的KMC4的安全通信相关信息,则从中选择一组,如,随机选择。
如果KMC3在步骤S102中判断出,所有预存的KMC4的安全通信相关信息全部过期(无效),或者没有预存的KMC4的安全通信相关信息(如,KMC3从未从KMC4处取得过安全通信相关信息,或者KMC3从不保存从KMC4处获得的KMC4的安全通信相关信息),该方法将进到步骤S103’,在步骤S103’中,KMC3将根据KMC4的地址信息向KMC4查询其安全通信相关信息,其中,所述步骤S103’通过以下未示于附图中的子步骤来实现:
S103′1:KMC3生成一个新的安全信息请求消息,用于向KMC4查询KMC4的安全通信相关信息(包括KMC4的主公钥);
S103′2:KMC3将生成的所述新的安全信息请求消息发送至步骤S101中提取的地址信息所指向的管理设备,即KMC4。KMC4接收到来自KMC3的新的安全信息请求消息后,将生成安全信息响应消息,其中包含KMC4的一组或多组安全通信相关信息(及各组安全通信相关信息的有效期),而后经由其与KMC3之间的安全信道发往KMC3;
S103′3:KMC3接收来自KMC4的安全信息响应消息,其中包含KMC4的所述一组或多组安全通信相关信息;
S103′4:KMC3由来自KMC4的安全信息响应消息中提取KMC4的所述一组或多组安全通信相关信息。
至此,KMC3已经为UE1获得了KMC4的安全通信相关信息,步骤S103/S103′完成后,均进到步骤S104。
在步骤S104中,KMC3将其为UE1获得的KMC4的安全通信相关信息通知给UE1,如果来自KMC4的安全信息响应消息中包含KMC4的多组安全通信相关信息时,KMC3通知给UE1的可以是其中的一组或者多组。如果通知给UE1的是KMC4的多组安全通信相关信息,则当下次UE1要与KMC4下属的通信设备进行安全通信时,可从所述多组安全通信相关信息中选择一组仍属有效的安全通信相关信息来用于所述安全通信。
根据本发明的一个具体实施例,一个管理设备的安全通信相关信息典型地包括如下内容:
-生成元(generator element)P,阿贝尔群 是由点P生成的r阶循环子群,以<P>来构建密码体制;
-该管理设备的主公钥(master public key)sP;
-适用的双线性映射关系(bilinear map)^t;
-公共安全参数的有效期;
-HH,为RO模型的Hash函数;
-该管理设备所属的域标识。
管理设备可基于国际标准组织(IEEE及ISO/IEC等)定义的算法等来生成上述各公共安全参数,对于其中如主公钥sP、各公共安全参数的有效期等参数而言,不同的管理设备的上述参数通常不同,而对如生成元P、适用的双线性映射关系^t、HH(RO模型的Hash函数)等参数,不同的管理设备的上述参数可以相同。
除此以外,管理设备自己还要保管一个主密钥s并绝对保密,该主密钥s可以是一个随机数,用于与P结合以生成该管理设备的主公钥,不同的管理设备的主密钥通常不同。
步骤S104具体可通过其以下未示于图中的子步骤来实现:
S1041:KMC3生成新的安全信息响应消息,其中包含KMC4的安全通信相关信息;
S1042:KMC3发送其生成的所述新的安全信息响应消息至UE1。
至此,KMC3完成了将KMC4的安全通信相关信息提供给UE1的操作(步骤S10)。于是进到步骤S11。
根据本发明的一个具体实施例,步骤S11包括如图4b所示的子步骤并始于步骤S110。
在步骤S110中,KMC3接收来自UE1的私钥请求消息,其中包含UE1的特征信息(如,手机号、终端设备标识等,以下假设UE1为一手机,其特征信息为手机号),用于请求KMC3为其提供私钥。进到步骤S111。
在步骤S111中,KMC3由所述私钥请求消息中提取UE1的手机号,并进到一个优选步骤S112。
在步骤S112中,KMC3判断其自身或一外置存储设备是否预存有与UE1的有效私钥。所述预存的私钥属于KMC3此前为UE1的其它安全通信根据UE1的请求生成的一个或多个私钥,优选地,KMC3为所述一个或多个私钥分别赋予相应有效期。
如果KMC3在步骤S112中判断出有预存的UE1的有效私钥,该方法将进到步骤S113,在步骤S113中,KMC3将预存的UE1的有效的私钥作为为UE1获得的私钥。其中,如果有多个预存的UE1的有效私钥,则从中选择一组,如,随机选择。
特别地,当UE1中存有若干有效的自身的私钥时,KMC3可通过指示其使用其中的某一个私钥,而为了降低KMC3的负荷,UE1也可在上一个私钥的有效期届满后,自动选用有效的另一私钥用于所述安全通信。
如果KMC3在步骤S112中判断出所有预存的UE1的私钥全部过期(无效),或者没有预存的UE1的私钥,该方法将进到步骤S113’,在步骤S113’中,KMC3将根据UE1的特征信息为其生成私钥,所述私钥的生成所需的具体算法和其它参数可依照相关国际标准。
至此,KMC3已经为UE1获得了私钥,步骤S113/S113′完成后,均进到步骤S114。
在步骤S114中,优选地,考虑到私钥的私密性,KMC3利用UE1已知的安全策略,对所述私钥进行加密,以生成经加密的私钥(所述UE1已知的安全策略有多种情形,将会在下文中分别得到论述);
而在其后的步骤S115中,KMC3将所述经加密的私钥发送至UE1。应当理解,KMC3还可以通过带外方式(如,传真或其间的其它专用信道)将所述私钥安全地通知UE1。
本领域的普通技术人员可以理解,所述步骤S10、S11之间没有严格的先后顺序,甚至可以相互交叉。譬如,当所述安全信息请求消息中包含UE1的特征信息时,所述安全信息请求消息即能够起到私钥请求消息的作用,则KMC3只需接收安全信息请求消息即可开始为UE1获得KMC4的安全通信相关信息以及UE1的私钥,相应地,图4a与图4b所示的相应步骤也将可同步进行。
本领域的普通技术人员还可以理解,当UE1处于一个被访问域中时(如,移动到一个图中未示出的KMCx所属的域,如重庆),则其与KMC3之间的通信可能需要KMCx来转发(甚至需要多个KMC的级联转发),以下将不再特别针对该种情形进行说明。
以上描述了本发明的较为简单的具体实施方式,其中,UE1与KMC3之间相互信任。在实际应用中,优选地,为安全起见,KMC3要对UE1进行身份认证,更优选地,所述身份认证的步骤在KMC3为UE1获得KMC4的安全通信相关信息和/或UE1的私钥之前执行。同样,UE1也要对KMC3进行身份认证(特别对于3G网络),则KMC3还需辅助UE1对KMC3进行认证。以下针对目前的两种网络架构,对KMC3与UE1之间的认证机制分别讨论如下:
图5a为根据本发明的一个具体实施方式的由HSS独立充当网络服务器的通信网络示意图。其中,图2所示的UE1所属的网络服务器5仅由一个归属用户服务器5a(以下简称HSS5a)即可实现,应当理解,图中所示仅对应一种具体情形,UE1与UE2也可属于同一HSS。
UE1与KMC3之间的身份认证具体流程如下(未在流程图中示出):
-KMC3接收到安全信息请求消息(或私钥请求消息)后,查看自己是否存有UE1相对应的有效的五元组认证矢量(AuthenticationVector,包括:RAND,CK,IK,AUTN,RES)或三元组认证矢量(包括:RAND、Kc、RES)。其中,CK(Cipher Key)、Kc主要用于加密(如,对获得的UE1的私钥进行加密)而IK(Integrity Key)主要用于完整性检查。如果KMC3存有与UE1相对应的五元组或三元组认证矢量,则从中选择一组认证矢量;如果没有,则KMC3将向HSS5a获得认证矢量(请参考基于3GPP TS33.102、3GPP TS33.103以及3GPP TS33.105的Diameter and MAP协议),HSS5a会根据终端(UE1)的能力生成五元组或三元组认证矢量,然后返回给KMC3,其中,五元组认证矢量包含通信设备认证信息(譬如,RAND、RES)、管理设备认证信息(譬如,RAND、AUTN)以及UE1已知的安全策略(譬如,CK);
1.KMC3发送(RAND、AUTN)给UE1,自己保留该五元组中的其余元素即(CK、IK、RES);
2.UE1根据RAND以与HSS5a相同的方式生成五元组(RAND,CK,IK,AUTN,RES);
3.UE1比较自己生成的AUTN和KMC3发来的AUTN是否相同,若相同,则表示KMC3通过UE1的认证;
4.UE1将自己生成的RES发送给KMC3;
5.KMC3接收到来自UE1的RES后,用于与其保存的此前由HSS5a发来的五元组中的RES进行比较,若二者相同则表示UE1通过KMC3的认证;
对于三元组的情形(如,在2G网络中),基于由HSS5a处获得的三元组认证矢量,KMC3执行以下操作:
1.KMC3发送三元组中的RAND给UE1,自己保留该三元组中的其余元素即(Kc、RES);
2.UE1根据RAND以与HSS5a相同的方式生成三元组(RAND、Kc、RES);
3.UE1将自己生成的三元组中的RES发送给KMC3;
4.KMC3接收到来自UE1的RES后,将其与其保存的此前由HSS5a发来的三元组中的RES进行比较,若二者相同则表示UE1通过KMC3的认证;
由此不难看出2G网络的基于三元组的认证方案的局限性,由于UE1无法认证KMC3而只支持KMC3(网络端)对UE1(终端)的单向认证。
图5b为第二种网络架构的示意图。UE2所属的网络服务器仍由一个归属用户服务器5b(以下简称HSS5b)单独实现,而UE1所属的网络服务器则由归属用户服务器5c(以下简称HSS5c)和自举服务功能服务器5d(以下简称BSF5d)共同实现,具体身份认证流程(基于GBA,GenericBootstrapping Architecture)如下:
KMC3接到来自UE1的安全信息请求消息(或私钥请求消息)后,首先查看其与UE1之间的前次认证成功的认证结果是否还有效:
如果前次认证成功的认证结果有效(有效期内,默认该UE1仍是可信的),则可为UE1获得私钥和KMC4的安全通信相关信息;
如果前次认证成功的认证结果已经无效,则KMC3将通知UE1:需要再进行身份认证。尔后,UE1将向BSF5d发送认证请求消息,BSF5d则查看自己是否存有与UE1相对应的有效的五元组或三元组认证矢量,如有,则从中选择一组认证矢量;如果没有,则BSF5d需要向HSS5c请求认证矢量,HSS5c会根据UE1的能力生成五元组或三元组认证矢量,然后返回给BSF5d。
对于五元组认证矢量的情形,UE1与KMC3之间的认证包括以下过程:
1.BSF5d发送(RAND、AUTN)以及BSF5d身份信息给UE1,自己保留该五元组中的其余元素即(CK、IK、RES);
2.UE1根据RAND以与HSS5c相同的方式生成一个五元组,然后比较自己生成的AUTN与BSF5d发来的AUTN是否相等,如相等则表示BSF5d通过了UE1的认证,亦即KMC3通过所述认证(KMC3事先已在BSF5d处进行了注册或签约,BSF5d由此授权KMC3或认证KMC3);
3.BSF5d通过UE1的认证后,UE1将自己生成的五元组中的RES发送给BSF5d;
4.BSF5d收到来自UE1的RES后,将其与其保存的此前由HSS5a发来的五元组中的RES进行比较,若相等则表示UE1通过了BSF5d的认证;
5.至此,BSF5d/KMC3通过了UE1的认证,UE1也通过了BSF5d的认证,以下还须由KMC3来认证UE1;
6.UE1根据Ks=(CK‖IK)(即,对CK与IK进行串联)得到Ks,再根据Ks生成密钥Ks_NAF,接着,根据Ks_NAF生成属于KMC3与UE1之间的认证密钥和会话密钥(该认证密钥将基于HTTP digest AKA来实现UE1与KMC3之间的认证,而该会话密钥则用于UE1与KMC3之间的安全通信,如,对UE1的私钥进行加密以备安全传输)。UE1将该认证密钥使用HTTP digest AKA消息(作为认证请求消息)发送给KMC3,所述HTTPdigest AKA消息中还包括如BSF5d的身份信息等其它信息;
7.需要指出的是,BSF5d会以与UE1同样的方式生成Ks_NAF,于是,KMC3在收到UE1的认证请求消息后,根据UE1提供的BSF5d的身份信息向指定的BSF(BSF5d)去获得Ks_NAF、与UE1相关的其它信息、密钥有效期等信息;
8.KMC3从BSF5d处获得上述信息后,基于HTTP Digest AKA协议来认证UE1,认证通过后,再获取KMC3与UE1之间的会话密钥,所述会话密钥可用于对为UE1获得的私钥进行加密。
对于三元组认证矢量的情形,UE1与KMC3之间的认证包括以下过程:
1.BSF5d发送(RAND)以及BSF5d的身份信息给UE1,自己则保留相应的(Kc、RES);
2.UE1根据RAND以与HSS5c相同的方式生成一个三元组,并将自己生成的RES发送给BSF5d;
3.BSF5d接收到来自UE1的RES后,将其与其保存的此前由HSS5c发来的RES进行比较,若相等,则表示UE1通过了BSF5d的认证;
与图5a所示网络架构类似地,基于图5b所示网络架构的2G网络在基于三元组进行认证时同样存在局限性,即UE1无法认证KMC3或BSF5d(网络端)。接下来,将由KMC3来对UE1进行认证:
4.UE1根据Ks(=Kc‖Kc‖RAND)得到Ks,再根据Ks生成密钥Ks_NAF,接着,根据Ks_NAF生成属于KMC3与UE1之间的认证密钥和会话密钥(该认证密钥将基于HTTP digest AKA来实现UE1与KMC3之间的认证,而该会话密钥则用于UE1与KMC3之间的安全通信,如,私钥安全传输)。UE1将该认证密钥使用HTTP digest AKA消息(作为认证请求消息)发送给KMC3,所述HTTP digest AKA消息中还包括如BSF5d的身份信息等其它信息;
5.需要指出的是,BSF5d会以与UE1同样的方式生成Ks_NAF,于是,KMC3在收到UE1的认证请求消息后,根据UE1提供的BSF5d的身份信息向指定的BSF(BSF5d)去获取Ks_NAF、与UE1相关的其它信息、密钥有效期等信息;
6.KMC3从BSF5d处获得上述信息后,基于HTTP Digest AKA协议认证UE1,认证通过后,便可获取其与UE1之间的会话密钥,再所述会话密钥将可用于对KMC3为UE1获得的私钥进行加密。
前已述及,通信设备中有一种特殊的类型,如应用服务器,对于应用服务器这种通信设备,其与其归属管理设备之间的认证可以基于专网、VPN(虚拟个人网,采用IPSec技术)、TLS(传输层安全协议)或上述用于普通终端与其归属管理设备之间的认证方式。
管理设备与通信设备之间无论任何一方未能通过对方的认证,其间的所述安全通信相关信息/私钥请求(或提供)过程即告终止。
以上详细说明了KMC3与UE1之间的认证过程。对于KMC4为UE2提供私钥、KMC3的安全通信相关信息以及KMC4与UE2之间的身份认证,均可参考以上针对UE1与KMC3所做之描述。
可以理解,KMC3也会接收到来自KMC4的新的安全信息请求消息(由KMC4生成),用于为UE2获得KMC3的安全信息请求消息(尤其是KMC3的主公钥)。
接收到来自KMC4的所述新的安全信息请求消息后,KMC3将相应地生成包含KMC3的安全通信相关信息的安全信息响应消息并将其通过KMC3与KMC4之间的安全信道(如,VPN或独立连接的专网)发送至该KMC4。
此外,KMC3还周期性/非周期性地将自己的安全通信相关信息通知给其下属的各个通信设备(包括UE1),所述安全通信相关信息典型地包括以下各项:
-生成元P,贝尔群 是由点P生成的r阶循环子群,以<P>来构建密码体制;
-KMC3的主公钥s3P
-适用的双线性映射关系^t;
-其公共安全参数的有效期;
-HH,为RO模型的Hash函数;
-KMC3所属域的标识。
KMC3自己还要保留自己的主密钥s3,并绝对保密,用于与P结合生成其主公钥s3P,以及在遵循标准的算法下生成KMC3的各个下属通信设备的私钥。
其中,脚标3表示相应参数对应于KMC3,类似地,下文中各参数中出现的脚标4表示其对应于KMC4。
可以理解,当生成元P、适用的双线性映射关系^t、HH在KMC3、KMC4处相同,且KMC3广播给其下属各通信设备的KMC3的安全通信相关信息的内容足够充分(譬如,包括生成元P、KMC3的主公钥s3P、适用的双线性映射关系^t、HH、KMC3的所属域标识等)时,KMC3为UE1提供的KMC4的安全通信相关信息可以仅包含KMC4的主公钥s4P及其有效期(以及KMC4所属域的域标识),对于UE1与UE2之间安全通信所需的其它安全参数,UE1可利用KMC3为其提供的KMC3的安全通信相关信息来获得。
图6为根据本发明的一个具体实施方式的在通信网络的通信设备中用于进行基于身份标识密码技术的安全通信的方法流程图,而图7a、7b则分别示出了图6所示方法的步骤S20和步骤S21的详细流程。其中,所述通信设备包括但不限于普通的通信终端如手机、固定电话、以及可以看作特殊的通信终端的应用服务器。
在步骤S200中,UE1生成安全信息请求消息,其中包含KMC4的管理设备相关信息。前已述及,KMC4的管理设备相关信息可以是KMC4的地址信息、也可以是KMC4的特征信息,甚至是UE2的特征信息。要使用KMC4的地址信息或特征信息作为所述消息中的管理设备相关信息,UE1通常需要由UE2来为其提供KMC4的所述地址信息或所述特征信息,而当UE2为一个服务器性质的通信设备(如,AS)时,UE2的特征信息也需由UE2提供给UE1,而当UE2为一普通终端(如,手机)时,UE1可以不需UE2提供而得知UE2的特征信息。可以理解,UE1也需在UE2需要时(UE2使用KMC3的地址信息或特征信息作为发给KMC4的安全信息请求消息中的KMC3的管理设备相关信息;或UE2使用UE1的特征信息作为发给KMC4的安全信息请求消息中的KMC3的管理设备相关信息,而UE1为服务器性质的通信设备如AS)为其提供KMC3的管理设备相关信息。
生成所述安全信息请求消息后,该方法进到步骤S201,在步骤S201中,UE1将其生成的所述安全信息请求消息发送给KMC3,以请求KMC3为其提供KMC4的安全通信相关信息(包括KMC4的主公钥)。此后,如上文中对本发明的第一方面所做描述,KMC3将为UE1获得KMC4的安全通信相关信息,并将其放入新的安全信息响应消息中发给UE1。
于是,在步骤S202中,UE1将接收来自KMC3的所述新的安全信息响应消息,并在步骤S203中由其中提取出KMC4的安全通信相关信息。
此外,UE1还要在步骤S21中获得其私钥,具体地,步骤S21始于子步骤S210,其中,UE1生成包含自己特征信息的私钥请求消息。进到步骤S211。
在步骤S211中,UE1将在步骤S210中生成的所述私钥请求消息发送至KMC3,以请求KMC3为其提供私钥。如上文中结合本发明第一方面所描述的,KMC3将根据UE1的特征信息为其获得私钥,并利用UE1已知的安全策略加密后发送给UE1。
于是,在步骤S212中,UE1将接收来自KMC3的经加密(如,用CK加密或用KMC3与UE1之间的会话密钥)的私钥,并在接着的步骤S213中对该经加密的私钥进行解密,以得到经解密的私钥。所述CK/KMC3与UE1之间的会话密钥的获得过程请参看以上对KMC3与UE1之间认证过程的描述。
至此,UE1获得了其私钥和KMC4的安全通信相关信息。接下来,对UE1与UE2之间的安全通信进行介绍。
前已述及,UE1与UE2之间的安全通信既可以采用第一加解密方式,亦可采用第二加解密方式,以下分别对这两种加解密方式进行说明:
UE1与UE2采用第一加解密方式进行安全通信
不失一般性地,假设第一加解密方式下KMC3为UE1提供的KMC4的安全通信相关信息包括:
-生成元(generator element)P,贝尔群 是由点P生成的r阶循环子群,以<P>来构建密码体制;
-KMC4的主公钥(master public key)s4P
-适用的双线性映射关系(bilinear map)^t;
-KMC4的相应公共安全参数的有效期;
-HH,为RO模型的Hash函数;
特别地,还包括:HH′,亦为RO模型的Hash函数。根据本发明的一个具体实施例,各KMC处生成的HH’可以相同。
对于上述各个参数、函数,既可认为其全部属于KMC3为UE1(如,通过与KMC4的交互)获得的KMC4的安全通信相关信息,也可认为其中有一部分来自KMC3通过与KMC4的交互或在本地进行查询为UE1所获得的KMC4的安全通信相关信息(包括但不限于s4P及其有效期;对于其余参数、函数,由于其在KMC4处与在KMC3处相同,可认为所述其余参数、函数来自KMC3提供给UE1的KMC3的安全通信相关信息。
UE1根据UE2的特征信息以及上述信息中与生成UE2的公钥相关的算法、参数(下称UE2的公钥相关信息),来生成UE2的公钥,以用于对属于所述安全通信的待发送数据(以下简称待发送数据)进行加密。其中,所述UE2的公钥相关信息可以为UE1预存且尚在有效期内的公钥相关信息,也可为在步骤S10中由KMC3处新近获得的公钥相关信息。对于前一种情形,UE1通常需要来自KMC3的用于指示UE1使用预存的哪组算法以及参数来用于生成UE2的公钥的指示信息。
生成UE2的公钥后,UE1再利用所生成的公钥(以及其它参数)来对待发送数据进行加密,以得到经公钥加密的数据。
根据本发明的一个具体实施例,UE1中第一加解密方式下的待发送数据处理可采用以下方案:
a.UE1事先知晓或被UE2告知UE2的某种特征信息,不失一般性地假设其为手机号,示为ID2,于是,得到b=HH(ID2);
b.在满足X∈RZr *的前提下,得到一个随机数X,进而计算出U=XP;
其中,Zr为一阿贝尔群,表示给定椭圆曲线E(Fq),点P在椭圆曲线上即P4∈E(Fq),P的阶数为r,对于给定点R∈<P>,X∈[0,r-1],使得xP=R;
r为一素数,其意义是:在椭圆曲线密码体制中,一般在E(Fq)上选取P=(x,y)作为公共基点,要求这个公共基点的阶r为一个素数阶,并使r足够大。
c.计算otp2=HH′(^t(bP,s4P)X),其中,s4P为KMC4的主公钥,属于KMC3为UE1提供的KMC4的安全通信相关信息,bP与UE2的公钥(PUB2)相关(PUB2=bP+s4P);
d.待发送数据示为msg,计算V=msg XOR otp2;
e.UE1将下列信息发送给UE2:U,V。
当上述信息到达一个同样配置有所述安全通信装置10的UE2后,UE2执行以下操作:
-经由安全的信道由UE2所属的KMC4处获得UE2的私钥(示为PRIV2),具体过程可参考UE1获得私钥的描述;
-UE2得到自己的私钥后,执行以下操作:
计算DD=^t(PRIV2,U),^t属于由KMC4为其获得的KMC3的安全通信相关信息;
计算otp2=HH′(DD),HH′由KMC3此前告知;
利用式msg=V XOR otp2得到msg也即经解密的数据。
考虑通信的双向性,UE2发往UE1的属于安全通信的待发送数据的处理以及在UE1处对加密数据的解密处理均与上述过程类似,为简明起见不再赘述。
优选地,为安全起见,UE1还需辅助KMC3来对UE1进行身份认证,并对KMC3进行身份认证,具体认证过程请参照上文中结合图5a与图5b对本发明之第一方面所作的相关说明。
上述即为通信双方直接利用公私密钥对进行安全通信的一个具体实例,本领域技术人员能够理解,该方案可能并非最优选的,且存在一些问题,诸如,容易导致管理设备处理效率较低等。
为此,本发明提供了另一种更为优选的方式,详见如下:
UE1与UE2采用第二加解密方式进行安全通信
采用该加解密方式进行安全通信的核心在于,UE1与UE2之间需要协商生成会话密钥(SessionKey)并将其用于对待发送数据的加密和对相应加密数据的解密。
具体地,UE1生成会话密钥相关信息(包括AKA),并告知通信对方即UE2。其中,根据本发明的一个具体实施例,所述会话密钥相关信息包括UE1的特征信息以及参数AKA等。其中,AKA可依据下式生成:
AKA=X(bP+s4P),
其中,X为UE1生成的随机数,满足X∈RZr *,(bP+s4P)为UE2的公钥,bP与UE2的基于特征信息的公钥相关(因UE2的公钥PUB2=bP+s4P,b=HH(ID2))。
UE2同样会为UE1生成并提供相应的会话密钥相关信息,根据本发明的一个具体实施例,其提供给UE1的会话密钥相关信息包括:UE2的特征信息以及参数BKA等。其中,BKA的生成可依据下式:
BKA=Y(aP+s3P),
其中,Y为UE2生成的随机数,且满足Y∈RZr *,(aP+s3P)为UE1的公钥。aP与UE1的基于特征信息的公钥相关(因UE1的公钥PUB1=aP+s3P,a=HH(ID1))。
此时,为生成会话密钥,通信双方还需要各自的私钥,于是,UE1与UE2分别向KMC3、KMC4请求各自的私钥,优选地,上述各通信设备与KMC3之间执行身份认证(为简明起见,对具体过程不再赘述)并通过后,得到各自的私钥。UE1的私钥示为PRIV1。
UE1处的会话密钥生成可依据下式:
SessionKey1=^t(BKA,PRIV1)X,
其中,BKA为UE2为UE1提供的会话密钥相关信息。此后,SessionKey1将被UE1用于在该安全通信中对待发送数据进行加密,以及对来自UE2的属于该安全通信的加密数据进行解密。
相应地,UE2同样获得了自己的私钥PRIV2,从而生成会话密钥,具体可依据下式:
SessionKey2=^t(AKA,PRIV2)Y,
其中,AKA为UE1向UE2提供的会话密钥相关信息,此后,SessionKey2将被UE2用于在该安全通信中对待发送数据进行加密,以及对来自UE1的属于该安全通信的加密数据进行解密。
理论上,SessionKey1=SessionKey2。
以下,参照上述对本发明的第一、第二部分的描述来对本发明的第三方面进行说明。
前已述及,对于图5a所示情形,UE1所属网络服务器仅由一个HSS5a即可实现,HSS5a在此情形下实现的功能主要是为KMC3提供与UE1之间进行身份认证所需的信息(通信设备认证信息、管理设备认证信息),以及UE1已知的安全策略(以五元组认证矢量为例,包括CK)。
而对于图5b所示之情形,UE1所属的网络服务器包括HSS5c以及BSF5d,如将二者看作一个整体的网络服务器,其在本例中所实现的功能是(仍以五元组认证矢量为例):代替KMC3来辅助UE1对KMC3进行认证,实际上,UE1认证的是BSF5d,由于BSF5d授权KMC3,因此可以认为对BSF5d进行认证等于对KMC3进行认证。此外,BSF5d还对UE1进行认证。
本例中,BSF5d要为KMC3提供如Ks_NAF、与UE1相关的其它信息、密钥有效期等信息,KMC3再以HTTP Digest AKA协议认证UE1。
图8示出了根据本发明的一个具体实施方式的在通信网络的管理设备中用于辅助进行基于身份标识加密技术的安全通信的第一安全辅助装置框图,以下结合图8并参照图2对本发明的第四方面进行说明。所示第一安全辅助装置30包括:第一提供装置300、第二提供装置301、第三提供装置302、通信设备认证装置303、第一辅助认证装置304以及第四提供装置305。具体地,第一提供装置300包括第一接收装置3000、第一提取装置3001、第一获得装置3002、第一通知装置3003以及第一判断装置3004;第二提供装置301包括第二接收装置3010、第二提取装置3011、第二获得装置3012、第二通知装置3013;通信设备认证装置303包括图中未示出的第一获取装置3030、认证装置3031;第一辅助认证装置304包括图中未示出的第二获取装置3040以及受控辅助认证装置3041。更具体地,所述第二通知装置3013包括加密装置30130和第一发送装置30131。
以下结合装置框图并以图2所示的UE1与UE2之间的安全通信为例,并主要针对KMC3一侧进行描述。第一接收装置3000接收来自UE1的安全信息请求消息,其中包含UE1要进行安全通信的UE2所属的KMC4的管理设备相关信息。根据本发明的不同实施例,所述管理设备相关信息可以是KMC4的地址信息,供KMC3直接用于与KMC4的交互;所述管理设备相关信息也可以是KMC4的特征信息(如,KMC4的设备标识等)甚至是UE2的特征信息,此时,KMC3在与KMC4进行交互之前,还需根据KMC4的特征信息/UE2的特征信息来在KMC3自身或在外置的其它存储设备中预存的映射信息中查询KMC4的地址信息。
第一接收装置3000接收到的安全信息请求消息被转至第一提取装置3001处,再由第一提取装置3001从该请求消息中提取KMC4的管理设备相关信息,不失一般性地,假设其为KMC4的地址信息,此后,由一个可选的第一判断装置3004来执行这样的判断:KMC3自身(或一个外置的存储设备)是否有预存的有效的KMC4的安全通信相关信息。其中,所述预存的有效的KMC4的安全通信相关信息属于KMC3之前根据其下属的通信设备的安全信息请求消息向KMC4查询而获得的一组或多组安全通信相关信息,通常,每组安全通信相关信息都有由KMC4提供的相应有效期。
如果第一判断装置3004判断出有预存的有效的KMC4的安全通信相关信息,其判断结果通知给第一获得装置3002后,第一获得装置3002将预存的有效的KMC4的安全通信相关信息作为为UE1获得的KMC4的安全通信相关信息。其中,如果有多组预存的有效的KMC4的安全通信相关信息,则从中选择一组,如,随机选择。
如果第一判断装置3004判断出,所有预存的KMC4的安全通信相关信息全部过期(无效),或者没有预存的KMC4的安全通信相关信息(如,KMC3从未从KMC4处取得过安全通信相关信息,或者KMC3从不保存从KMC4处获得的KMC4的安全通信相关信息),则当第一判断装置3004将其得到的此判断结果告知第一获得装置3002后,第一获得装置3002将根据此前提取出的KMC4的地址信息向KMC4查询其安全通信相关信息,其中,所述查询过程通过以下操作来实现(简明起见,第一获得装置3002的各子装置未示于图8中):
-查询生成装置生成一个新的安全信息请求消息,用于向KMC4查询KMC4的安全通信相关信息;
-查询发送装置将生成的所述新的安全信息请求消息发送至此前提取的地址信息所指向的管理设备即KMC4。KMC4接收到来自KMC3的新的安全信息请求消息后,将生成安全信息响应消息,其中包含KMC4的一组或多组安全通信相关信息(及其各自的有效期),而后经由其与KMC3之间的安全信道(如,VPN或其间的专网)发往KMC3;
-查询接收装置接收来自KMC4的安全信息响应消息,其中包含KMC4的一组或多组安全通信相关信息;
-查询提取装置由来自KMC4的安全信息响应消息中提取KMC4的所述一组或多组安全通信相关信息。
至此,第一获得装置3002已经为UE1获得了KMC4的安全通信相关信息,并将其提供给第一通知装置3003。
此后,第一通知装置3003将第一获得装置3002为KMC3获得的KMC4的安全通信相关信息通知给UE1,如果来自KMC4的安全信息响应消息中包含KMC4的多组安全通信相关信息,KMC3通知给UE1的可以是其中的一组或者多组。如果通知给UE1的是KMC4的多组安全通信相关信息,则当下次UE1要与KMC4下属的通信设备进行安全通信时,可基于KMC3的指示或自行从所述多组安全通信相关信息中选择一组来用于所述安全通信。
第一通知装置3003中的各子装置(未示于图中)的具体操作过程如下:
-通知生成装置生成新的安全信息响应消息,其中包含KMC4的安全通信相关信息;
-通知发送装置将通知生成装置生成的所述新的安全信息响应消息至UE1。
至此,第一提供装置300完成了将KMC4的安全通信相关信息提供给UE1的操作。
以下描述第二提供装置301的操作流程。
根据本发明的一个具体实施例,第二接收装置3010接收来自UE1的私钥请求消息,其中包含UE1的特征信息(如,手机号、终端设备标识等,以下假设UE1为一手机,其特征信息为手机号),用于请求KMC3为其提供私钥。于是,第二接收装置3010将其接收到的所述私钥请求消息提供给第二提取装置3011。
接着,第二提取装置3011由所述私钥请求消息中提取UE1的手机号,并提供给第二提供装置301的一个可选的第二判断装置(未示出)。第二判断装置将判断KMC3自身或一外置存储设备是否预存有UE1的有效私钥。所述预存的私钥属于KMC3此前根据UE1的请求为UE1的其它安全通信生成的一个或多个私钥,优选地,所述一个或多个私钥分别对应KMC3赋予的有效期。
如果第二判断装置判断出有预存的UE1的有效私钥,则当其将其判断结果提供给第二获得装置3012后,第二获得装置3012会将所述预存的UE1的有效私钥作为所述为UE1获得的私钥。其中,如果有多个预存的UE1的有效私钥,则从中选择一组,如,随机选择。
特别地,当UE1中存有若干有效的自身的私钥时,KMC3可指示UE1使用其中的某一个私钥,而为了降低KMC3的负荷,UE1也可在上一个私钥的有效期届满后,自动选用有效的另一私钥用于所述安全通信。
如果第二判断装置判断出所有预存的UE1的私钥全部过期(无效),或者没有预存的UE1的私钥,则当其将其所得的所述判断结果提供给第二获得装置3012后,第二获得装置3012将根据UE1的特征信息为其生成私钥,所述私钥的生成所需的具体算法、参数可依照相关国际标准。
至此,第二获得装置3012已为UE1获得了私钥,其将获得的私钥传给第二通知装置3013。
优选地,考虑到私钥的私密性,由第二通知装置3013中的加密装置30130利用UE1已知的安全策略对所获得的所述私钥进行加密,以生成经加密的私钥并提供给第一发送装置30131。
而后,第一发送装置30131将所述经加密的私钥发送至UE1。应当理解,KMC3还可以通过带外方式(如,传真或其间的其它专用信道)将所述私钥通知UE1。
本领域的普通技术人员可以理解,所述第一提供装置300与第二提供装置301所分别执行的操作之间没有严格的先后顺序,甚至可以相互交叉。譬如,当所述安全信息请求消息中包含UE1的特征信息时,所述安全信息请求消息即能够起到私钥请求消息的作用,则,所述第一接收装置3000可以完成第二接收装置3010的操作(于是第二接收装置3010可省);第一提取装置3001可以完成第二提取装置3011的操作(于是第二提取装置3011可省)等等。本领域普通技术人员可在本文的教导下基于实际情况灵活地对实现第一提供装置300、第二提供装置301的装置(模块)进行配置。
以上描述了本发明的较为简单的具体实施方式,其中,UE1与KMC3之间相互信任。在实际应用中,优选地,为安全起见,KMC3中的通信设备认证装置303(包括图中未示出的第一获取装置3030认证装置3031)要对UE1进行身份认证,更优选地,所述通信设备认证装置303执行的通信设备身份认证在KMC3为UE1获得KMC4的安全通信相关信息和/或UE1的私钥之前完成。同样,UE1也要对KMC3进行身份认证(特别对于3G网络),则KMC3还需经由其第一辅助认证装置304(包括图中未示出的第二获取装置3040和受控辅助认证装置3041)来辅助UE1对KMC3进行认证。以下针对目前的两种网络架构,对KMC3与UE1之间的认证机制分别讨论如下:
参看图5a,在该种网络架构下,UE1与KMC3之间的身份认证具体过程如下:
-KMC3接收到安全信息请求消息(或私钥请求消息)后,查看自己是否存有UE1相对应的有效的五元组认证矢量(AuthenticationVector,包括:RAND,CK,IK,AUTN,RES)或三元组认证矢量(包括:RAND、Kc、RES)。其中,CK(Cipher Key)、Kc主要用于加密而IK(Integrity Key)主要用于完整性检查。如果有,则从中选择一组认证矢量;如果没有,则KMC3将向HSS5a获得认证矢量(请参考基于3GPP TS33.102、3GPP TS33.103以及3GPP TS33.105的Diameter andMAP协议),HSS5a会根据终端(UE1)的能力生成五元组或三元组认证矢量,然后返回给KMC3,其中,五元组认证矢量包含通信设备认证信息、管理设备认证信息以及UE1已知的安全策略(CK)。因此,所述五元组的获取由第一获取装置3030、第二获取装置3040以及一个未示出的安全策略获取装置共同完成,本领域普通技术人员理解,上述三个装置可以相互独立,也可为一体,即,由一个装置来独立完成上述三个装置的信息获取功能,并分别提供给需要这些信息的装置。
KMC3发送(RAND、AUTN)给UE1,自己保留该五元组中的其余元素即(CK、IK、RES);
1.UE1根据RAND以与HSS5a相同的方式生成相同的五元组(RAND,CK,IK,AUTN,RES);
2.UE1比较自己生成的AUTN和KMC3发来的AUTN是否相同,若相同则表示KMC3通过UE1的认证;
3.UE1将自己生成的RES发送给KMC3;
4.KMC3接收到来自UE1的RES后,将其与其保存的此前由HSS5a发来的五元组中的RES进行比较,若二者相同则表示UE1通过KMC3的认证;
对于三元组的情形(如,在2G网络中),基于由HSS5a处获得的三元组认证矢量,KMC3执行以下操作:
1.KMC3发送三元组中的RAND给终端,自己保留该三元组中的其余元素即(Kc、RES);
2.UE1根据RAND以与HSS5b相同的方式生成相同的三元组(RAND、Kc、RES);
3.UE1将自己生成的三元组中的RES发送给KMC3;
4.KMC3接收到来自UE1的RES后,将其与此前保存的由HSS5a发来的三元组中的RES进行比较,若二者相同则表示UE1通过KMC3的认证;
由此不难看出2G网络的基于三元组的认证方案的局限性,由于UE1无法认证KMC3而只支持KMC3(网络端)对UE1(终端)的单向认证。
图5b所示网络架构下的KMC3与UE1之间的具体身份认证流程(基于GBA,Generic Bootstrapping Architecture)如下:
KMC3接到来自UE1的安全信息请求消息(或私钥请求消息)后,首先查看其与UE1之间的前次认证成功的认证结果是否还有效:
如果前次认证成功的认证结果有效(有效期内,默认该IE1仍是可信的),则可为其获得私钥和KMC4的安全通信相关信息;
如果前次认证成功的认证结果已经无效,则KMC3将通知UE1:需要再进行身份认证。尔后,UE1将向BSF5d发送认证请求消息,BSF5d则查看自己是否存有与UE1相对应的有效的五元组或三元组认证矢量,如有,则从中选择一组认证矢量;如果没有,则BSF5d需要向HSS5c请求认证矢量,HSS5c会根据UE1的能力生成五元组或三元组认证矢量,然后返回给BSF5d。
对于五元组认证矢量的情形,UE1与KMC3之间的认证包括以下过程:
1.BSF5d发送(RAND、AUTN)以及BSF5d身份信息给第一通信设备1,自己保留该五元组中的其余元素即(CK、IK、RES);
2.UE1根据RAND以与HSS5c相同的方式生成一个五元组,然后比较自己生成的AUTN与BSF5d发来的AUTN是否相等,如相等则表示BSF5d通过了UE1的认证,亦即KMC3通过所述认证(KMC3事先已在BSF5d处进行了注册或签约,BSF5d由此授权KMC3或认证KMC3);
3.BSF5d通过UE1的认证后,UE1将自己生成的五元组中的RES发送给BSF5d;
4.BSF5d收到来自UE1的RES后,将其与其保存的此前由HSS5c发来的五元组中的RES进行比较,若相等则表示UE1通过了BSF5d的认证;
5.至此,BSF5d/KMC3通过了UE1的认证,UE1也通过了BSF5d的认证,以下还须由KMC3来认证UE1;
6.UE1根据Ks(=CK‖IK)(即,对CK与IK进行串联)得到Ks,再根据Ks生成密钥Ks_NAF,接着,根据Ks_NAF生成属于KMC3与UE1之间的认证密钥和会话密钥(该认证密钥将基于HTTP digest AKA来实现UE1与KMC3之间的认证,而该会话密钥则用于UE1与KMC3之间的安全通信,如,私钥安全传输)。UE1将该认证密钥使用HTTP digest AKA消息(作为认证请求消息)发送给KMC3,所述HTTP digest AKA消息中还包括如BSF5d的身份信息等其它信息;
7.需要指出的是,BSF5d会以与UE1同样的方式生成Ks_NAF,于是,KMC3在收到UE1的认证请求消息后,根据UE1提供的BSF5d的身份信息向指定的BSF(BSF5d)去获得Ks_NAF、与UE1相关的其它信息、密钥有效期等信息;
8.KMC3从BSF5d处获得上述信息后,基于HTTP Digest AKA协议来认证UE1,认证通过后,再获取KMC3与UE1之间的会话密钥,所述会话密钥可用于对为UE1获得的私钥进行加密。
对于三元组认证矢量的情形,UE1与KMC3之间的认证包括以下过程:
1.BSF5d发送(RAND)以及BSF5d的身份信息给UE1,自己则保留相应的(Kc、RES);
2.UE1根据RAND以与HSS5c相同的方式生成一个三元组,并将自己生成的RES发送给BSF5d;
3.BSF5d接收到来自UE1的RES后,将其与此前保存的由HSS5c发来的RES进行比较,若相等,则表示UE1通过了BSF5d的认证;
与图5a所示网络架构类似地,基于图5b所示网络架构的2G网络在基于三元组进行认证时同样存在局限性,即UE1无法认证KMC3或BSF5d(网络端)。接下来,将由KMC3来对UE1进行认证:
4.UE1根据Ks(=Kc‖Kc‖RAND)得到Ks,再根据Ks生成密钥Ks_NAF,接着,根据Ks_NAF生成属于KMC3与UE1之间的认证密钥和会话密钥(该认证密钥将基于HTTP digest AKA来实现UE1与KMC3之间的认证,而该会话密钥则用于UE1与KMC3之间的安全通信,如,私钥安全传输)。UE1将该认证密钥使用HTTP digest AKA消息(作为认证请求消息)发送给KMC3,所述HTTP digest AKA消息中还包括如BSF5d的身份信息等其它信息;
5.需要指出的是,BSF5d会以与UE1同样的方式生成Ks_NAF,于是,KMC3在收到UE1的认证请求消息后,根据UE1提供的BSF5d的身份信息向指定的BSF(BSF5d)去获取Ks_NAF、与UE1相关的其它信息、密钥有效期等信息;
6.KMC3从BSF5d处获得上述信息后,基于HTTP Digest AKA协议认证UE1,认证通过后,便可获取其与UE1之间的会话密钥,所述会话密钥将可用于对KMC3为UE1获得的私钥进行加密。
前已述及,通信设备中有一种特殊的类型,如应用服务器,对于应用服务器这种通信设备,其与管理设备之间的认证可以基于专网、VPN(虚拟个人网,采用IPSec技术)、TLS(传输层安全协议)或上述用于普通终端的认证方式。
管理设备与通信设备之间无论任何一方未能通过对方的认证,其间的所述安全通信相关信息/私钥请求(或提供)过程即告终止。
以上详细说明了KMC3与UE1之间的认证过程。对于KMC4为UE2提供私钥、KMC3的安全通信相关信息以及KMC4与UE2之间的身份认证,均可参考以上针对UE1与KMC3所做之描述。
可以理解,KMC4同样会向KMC3发送新的安全信息请求消息(由KMC4生成),于是,KMC3通过第四提供装置305来接收来自KMC4的所述新的安全信息请求消息,并生成包含KMC3的安全通信相关信息(包括但不限于KMC3的主公钥s3P及其有效期)的安全信息响应消息,再通过KMC3与KMC4之间的安全信道(如,VPN或专网)将所述安全信息响应消息发送至KMC4。
此外,KMC3还周期性地非周期性通过第三提供装置302将自己的安全通信相关信息通知给其下属的各个通信设备,所述安全通信相关信息典型地包括以下各项:
-生成元(generator element)P,贝尔群
是由点P生成的r阶循环子群,以<P>来构建密码体制;
-KMC3的主公钥(master public key)s3P
-适用的双线性映射关系^t;
-其公共安全参数的有效期;
-HH,为RO模型的Hash函数;
-KMC3所属域的标识。
可以理解,当生成元P、适用的双线性映射关系^t、HH等参数/函数在各KMC处均相同,且KMC3提供给其下属各通信设备的KMC3的安全通信相关信息的内容足够充分(譬如,与其提供给UE1的KMC4的安全通信相关信息组合后足以支持UE1与UE2之间的安全通信)时,KMC3为UE1提供的KMC4的安全通信相关信息可以仅包含上文中所示的典型的安全通信相关信息的部分(如,可仅包括KMC4的主公钥s4P及其有效期,以及KMC4所属域的标识),对于UE1与UE2之间安全通信所需的其它参数/函数(如,HH、^t等),UE1可使用KMC3的安全通信相关信息中的相应参数/函数(应为其在KMC3、KMC4处相同)。
图9为根据本发明的一个具体实施方式的在通信网络的通信设备中用于进行基于身份标识加密技术的安全通信的安全通信装置框图。其中,所述通信设备包括但不限于普通的通信终端如手机、固定电话、以及可以看作特殊的通信终端的应用服务器。所示安全通信装置10包括第三获得装置100、第四获得装置101、第五获得装置102、管理设备认证装置103、第二辅助认证装置104、第六获得装置105、第三通知装置106、公钥生成装置107、第三生成装置108、第四通知装置108’、第七获得装置109以及会话密钥生成装置109’。其中,所述第三获得装置100包括第一生成装置1000、第二发送装置1001、第三接收装置1002以及第三提取装置1003;所述第四获得装置101包括第二生成装置1010、第三发送装置1011、第四接收装置1012、解密装置1013。本领域技术人员应能理解,所示各装置包括下述各实施例中可能出现的各个装置,但是对于某一特定具体实施例,其不一定会用到图中所示的所有装置。
第一生成装置1000生成安全信息请求消息,其中包含KMC4的管理设备相关信息。前已述及,KMC4的管理设备相关信息可以是KMC4的地址信息、也可以是KMC4的特征信息,甚至是UE2的特征信息。要使用KMC4的地址信息或特征信息作为所述消息中的管理设备相关信息,UE1通常需要由UE2来为其提供KMC4的所述地址信息或所述特征信息(UE1通过第六获得装置105来获得),而当UE2为一个服务器性质的通信设备(如,AS)时,UE2的特征信息也需由UE2提供给UE1(UE1通过第五获得装置102来获得),而当UE2为一普通终端(如,手机)时,UE1可以不需UE2提供而得知UE2的特征信息。可以理解,UE1也需在UE2需要时(UE2使用KMC3的地址信息或特征信息作为发给KMC4的安全信息请求消息中的KMC3的管理设备相关信息;或UE2使用UE1的特征信息作为发给KMC4的安全信息请求消息中的KMC3的管理设备相关信息,而UE1为服务器性质的通信设备如AS)利用其第三通知装置106来为UE2提供KMC3的相应的管理设备相关信息。
第一生成装置1000生成的安全信息请求消息将由第二发送装置1001发送给KMC3,以请求KMC3为其提供KMC4的安全通信相关信息。此后,如上文中对本发明的第一方面所做描述,KMC3将为UE1获得KMC4的安全通信相关信息,并将其放入新的安全信息响应消息中发给UE1。
第三接收装置1002将接收来自KMC3的所述新的安全信息响应消息,并将其交由第三提取装置1003来从中提取出KMC4的安全通信相关信息。
UE1还经由其第五获得装置102来获得KMC3周期性/非周期性通知的KMC3的安全通信相关信息,通常KMC3为UE1提供的KMC3、KMC4的安全通信相关信息的组合应为较为全面的安全通信相关信息(譬如,如上文中所示的一组典型的安全通信相关信息)。
此外,UE1还要通过其第四获得装置101来获得其私钥以用于其与UE2之间的安全通信,具体地,由第二生成装置1010生成包含UE1的特征信息的私钥请求消息,并提供给第三发送装置1011,由第三发送装置1011将其发送至KMC3,以请求KMC3为其提供私钥。如上文所描述的,KMC3将根据UE1的特征信息为其获得私钥,并优选地利用UE1已知的安全策略加密后发送给UE1。
于是,第四接收装置1012将接收来自KMC3的经加密(如,用CK加密)的私钥,并提供给解密装置1013,后者对该经加密的私钥进行解密,以得到经解密的私钥。
至此,UE1获得了其私钥和KMC4的安全通信相关信息。接下来,对UE1与UE2之间的安全通信进行介绍。
前已述及,UE1与UE2之间的安全通信既可以采用第一加解密方式,亦可采用第二加解密方式,以下分别对这两种加解密方式进行说明:
UE1与UE2采用第一加解密方式进行安全通信
不失一般性地,假设第一加解密方式下KMC3为UE1提供的KMC4的安全通信相关信息(由第三获得装置100获得)包括:
-生成元(generator element)P,贝尔群<P>={P,2P,3P,...,rP}E(Fq)是由点P生成的r阶循环子群,以<P>来构建密码体制;
-KMC4的主公钥s4P;
-适用的双线性映射关系^t;
-KMC4的相应公共安全参数的有效期;
-HH,为RO模型的Hash函数;
特别地,还包括:HH′,其亦为RO模型的Hash函数。根据本发明的一个具体实施例,各KMC处生成的HH’可以相同。
公钥生成装置107根据上述信息中与KMC4相对应的公钥相关信息以及UE2的特征信息,生成UE2的公钥,以用于对待发送数据(以下简称待发送数据)进行加密。其中,所述公钥相关信息可以为UE1预存且尚在有效期内的公钥相关信息,也可为第三获得装置100由KMC3处新近获得的公钥相关信息。对于前一种情形,UE1通常需要来自KMC3的用于指示UE1使用预存的哪组算法以及参数来用于生成公钥的指示信息。
生成公钥后,UE1再利用所生成的公钥(以及其它参数)来对待发送数据进行加密,以得到经公钥加密的数据。
根据本发明的一个具体实施例,基于第一加解密方式,UE1中的待发送数据处理可采用以下方案:
a.UE1事先知晓或被UE2告知UE2的某种特征信息,不失一般性地假设其为手机号,示为ID2,于是,得到b=HH(ID2);
b.在满足X∈RZr*的前提下,得到一个随机数X,进而计算出U=XP,P属于KMC3为其提供的KMC4的安全通信相关信息;
其中,Zr为一阿贝尔群,表示给定椭圆曲线E(Fq),点P在椭圆曲线上即P∈E(Fq),P的阶数为r,对于给定点R∈<P>,X∈[0,r-1],使得XP=R;
r为一素数,其意义是:在椭圆曲线密码体制中,一般在E(Fq)上选取P=(x,y)作为公共基点,要求这个公共基点的阶r为一个素数阶,并使r足够大。
c.计算otp2=HH′(^t(bP,s4P)X),其中,s4P为KMC4的主公钥(属于KMC3为UE1提供的KMC4的安全通信相关信息),bP与UE2的公钥(PUB2)相关(PUB2=bP+s4P);
d.待发送数据示为msg,计算V=msg XOR otp2;
e.UE1将下列信息发送给UE2:U,V。
当上述信息到达一个同样配置有所述安全通信装置10的UE2后,UE2执行以下操作:
通过其第四获得装置101经由安全的信道由UE2所属的KMC4处获得UE2的私钥(示为PRIV2),具体过程可参考UE1获得私钥的描述;
UE2得到自己的私钥后,执行以下操作:
计算DD=^t(PRIV2,U),^t属于由KMC4为其获得的KMC3的安全通信相关信息;
计算otp2=HH′(DD),HH′由KMC3此前告知;
利用式msg=V XOR otp2得到msg也即经解密的数据。
考虑通信的双向性,UE2发往UE1的属于安全通信的待发送数据的处理以及在UE1处对加密数据的解密处理均与上述过程类似,为简明起见不再赘述。
优选地,为安全起见,UE1还需辅助KMC3来对UE1进行身份认证,并对KMC3进行身份认证,具体认证过程请参照上文中结合图5a与图5b对本发明所作的相关说明。
上述即为通信双方直接利用公私密钥对进行安全通信的一个具体实例,本领域技术人员能够理解,该方案可能并非最优选的且存在一些问题,诸如,容易导致管理设备处理效率较低等。
为此,本发明提供了另一种更为优选的方式,详见如下:
UE1与UE2采用第二加解密方式进行安全通信
采用该加解密方式进行安全通信的核心在于,UE1与UE2之间需要协商生成会话密钥(SessionKey)并将其用于对待发送数据的加密和对相应加密数据的解密。
具体地,UE1的第三生成装置108生成会话密钥相关信息,并经由第四通知装置108’告知其通信对方即UE2(由UE2的第七获得装置109获得)。其中,根据本发明的一个具体实施例,UE1提供给UE2的会话密钥相关信息包括UE1的特征信息以及参数AKA等。其中,AKA可依据下式生成:
AKA=X(bP+s4P),
其中,X为UE1生成的随机数,满足X∈RZr *,(bP+s4P)为UE2的公钥,bP与UE2的基于特征信息的公钥相关(因UE2的公钥PUB2=bP+s4P,b=HH(ID2))。
UE2同样会为UE1生成并提供相应的会话密钥相关信息(由UE2的第四通知装置108’通知给UE1,并由UE1的第七获得装置109获得),根据本发明的一个具体实施例,其提供给UE1的会话密钥相关信息包括:UE2的特征信息以及参数BKA等。其中,BKA的生成可依据下式:
BKA=Y(aP+s3P),
其中,Y为UE2生成的随机数,且满足Y∈RZr *,(aP+s3P)为UE1的公钥。aP与UE1的基于特征信息的公钥相关(因UE1的公钥PUB1=aP+s3P,a=HH(ID1))。
此时,为生成会话密钥,通信双方还需要各自的私钥,于是,UE1与UE2分别通过第四获得装置101向KMC3、KMC4请求各自的私钥,优选地,上述各通信设备通过管理设备认证装置103和第二辅助认证装置104与KMC3之间执行身份认证(为简明起见,对具体过程不再赘述)并通过后,得到各自的私钥。
UE1处的会话密钥生成装置109’中的会话密钥生成可依据下式:
SessionKey1=^t(BKA,PRIV1)X,
其中,SessionKey1将被UE1用于在该安全通信中对待发送数据进行加密,以及对来自UE2的属于该安全通信的加密数据进行解密。
相应地,UE2同样获得了自己的私钥PRIV2,从而生成会话密钥,具体可依据下式:
SessionKey2=^t(AKA,PRIV2)Y,
其中,SessionKey2将被UE2用于在该安全通信中对待发送数据进行加密,以及对来自UE1的属于该安全通信的加密数据进行解密。
理论上,SessionKey1=SessionKey2,也即,UE1与UE2在第二加解密方式下利用对称密钥进行安全通信。
以下,将结合图10对本发明的第六方面进行描述,上文中对本发明的第四、第五方面所作说明在此作为参考。
图10为根据本发明的一个具体实施方式的在网络服务器中用于辅助进行基于身份标识加密技术的安全通信的第二安全辅助装置框图。所示第二安全辅助装置50包括:第五提供装置500、第六提供装置501以及第七提供装置502。
对于图5a所示情形,UE1所属网络服务器5仅由一个HSS5a即可实现,相应地,上述各装置均应配置于HSS5a处。具体地,以五元组认证矢量为例:
第五提供装置500将为KMC3提供UE1的五元组中的通信设备认证信息(如,RES),以便KMC3对UE1进行认证。
第六提供装置501将为KMC3提供UE1的五元组中的管理设备认证信息(如,AUTN),以便KMC3辅助UE1对KMC3进行认证。
第七提供装置502将为KMC3提供UE1的五元组中的UE1已知(至少为可知晓的)安全策略,以便KMC3将为UE1获得的私钥以及KMC4的安全通信相关信息进行加密。
而对于图5b所示之情形,UE1所属的网络服务器5包括HSS5c以及BSF5d,如将二者看作一个整体的网络服务器,其在本例中所实现的功能是(仍以五元组认证矢量为例):通过其上未示出的第三辅助认证装置来代替KMC3来辅助UE1对KMC3进行认证,实际上,UE1认证的是BSF5d,由于BSF5d授权KMC3,因此可以认为对BSF5d进行认证等于对KMC3进行认证。此外,其上一个未示出的第二认证装置(优选地,位于BSF5d)将对UE1进行认证。本例中,BSF5d还要为KMC3提供如Ks_NAF、与UE1相关的其它信息、密钥有效期等信息,KMC3再以HTTP DigestAKA协议认证UE1。
以上对本发明的实施例进行了描述,但是本发明并不局限于特定的***、设备和具体协议、算法等,本领域内技术人员可以在所附权利要求的范围内做出各种变形或修改。