APP下载

面向分级文件共享的密钥管理方案研究

2020-07-14

计算机应用与软件 2020年7期
关键词:群组密钥辅助

李 莉 王 政

(北京电子科技学院 北京 100070)

0 引 言

天地一体化网络信息系统包含民用、国际、党政、军用等不同用户组成的用户域,具有用户量大且终端规模持续扩大、各用户域层级鲜明等特点。该网络环境中,不同用户域在业务类型、安全需求、网络资源状况等方面存在差异,而在密码业务中往往需要多个用户域之间进行文件资源的共享。如何在用户数量大、用户权限变动频繁、权限划分复杂的环境下,合理地使用密钥来保障各域用户安全高效地进行文件共享成为近年来多权限群组密钥管理领域研究的热点。

现有的多权限群组密钥管理方案主要分为集中式和分布式两类。集中式密钥管理方案依靠密钥分发中心KDC(Key Distribution Center)产生密钥并进行管理。针对天地一体化网络,仅依靠KDC对密钥进行生成、分发、更新等管理将难以应对巨大的计算和存储负担。分布式密钥管理方案中用户密钥由各用户协商产生,而群组密钥则通过每个服务组SG(Service Group)的簇头节点协商生成。此方案在权限划分复杂、节点变动频繁的天地一体化网络环境下会频繁地进行密钥协商,从而对网络和各类密钥节点造成巨大的通信压力和密钥更新压力。

根据上述问题和传统密钥管理方案存在的劣势,本文提出了一种集中式和分布式相结合的密钥树构建及更新方案,使用Shamir秘密共享算法对群组中辅助密钥进行分割,将分割后的影子密钥作为群组用户的用户密钥,使用单向散列函数对访问各级资源的用户进行访问控制。

1 相关研究

传统的单权限群组密钥管理方案,主要分为集中式和分布式两类。集中式密钥管理方案依赖于密钥分发中心KDC进行密钥的生成和更新管理;分布式密钥管理方案则依靠群组中簇头节点协商产生和更新群组密钥。

文献[1]是集中式管理方案,提出使用逻辑密钥树(Logical Key Hierarchy,LKH)的方式进行密钥管理,将KDC密钥更新开销从O(n)降低到了O(logn)。文献[2-4]属于分布式管理方案,密钥树构建和更新都基于二叉树和双方Diffie Hellman密钥交换协议来实现。文献[5]引入三叉树结构进行群组密钥的管理。文献[6]对Diffie Hellman协议进行了扩展,此方案下群组中的n个用户需要进行n轮协商得出最终的组密钥。文献[7] 引入椭圆曲线ECC算法进行群组密钥的生成,在单权限群组密钥树的密钥初始化阶段的协商轮数、消息通信量等性能方面较之前方案具有较大的提升。

文献[8]提出多权限群组密钥管理协议(Multi-group Key Management Scheme,MGKMS),该协议保证了前向安全性且消除了数据组DG(Data Group)之间用户重叠造成的冗余,但用户节点的权限变动会引发多个辅助密钥节点更新,从而带来较大的通信量和计算复杂度等问题。文献[9]提出了一种基于单项函数的群组密钥管理协议(One-way-Function-based Group Key Management Protocol,OFGKMP),其在文献[8]构建二叉密钥树的基础上提出为每个密钥节点分配ID,当群组中某一用户的权限变更时,群组中其他节点可以通过ID编号利用单向函数计算出新的密钥。该方案相较于文献[8]减少了更新时的通信和计算开销,但其密钥树中使用的辅助密钥过多,当用户节点增多时其密钥树深度会快速增加,从而增加了辅助密钥数量,造成巨大的存储负担,而且二叉密钥树相关辅助密钥节点和用户节点都需要参与密钥更新的计算,导致计算开销巨大。在批量更新方面,其采用在单位时间内先标记权限变动节点并搜集权限变动请求的方式,在预设时间结束后再统一进行密钥更新。可以预见的是,在预设时间内节点权限变动频繁的情况下,当时间结束后密码系统必会迎来通信和计算峰值,在短时间内造成巨大的计算和存储压力。文献[10]提出了一种基于多叉树的多权限群组密钥管理方案(MTGKM),针对文献[9]中的问题,对SG二叉密钥树进行了改进,扩充为多叉密钥树结构,解决了用户持有密钥数量多的问题,节省了存储开销。从存储开销上看,该方案中每个用户节点仍保存有从该点到会话密钥节点SK之间所有路径上的密钥,存储开销较之前方案有所降低但并不理想。从计算开销上看,每当组中某一用户的权限变动时,相当大范围的用户密钥会更新,这种情况在低访问权限的群组中更为明显,其计算开销相较于文献[9]并没有差别。文献[11]提出了一种基于ECC的面向天地一体化网络环境下物联网感知层的分层密钥管理方案,该方案中每个节点通过自己的私钥可以计算出子节点密钥从而达到分层访问控制的目的。文献[12]提出一个针对无证书认证的密钥协商协议的安全模型。文献[13]提出了一种基于椭圆曲线点乘运算的无证书认证的组密钥协商协议,该方案使用Huffman密钥树优化通信轮数,降低了计算量和通信量。文献[14]提出了一种基于CP-ABE(Ciphertext-Policy-Attribute-Based Encryption)的支持属性变更的群组密钥管理方案和一种基于CP-ABE的支持群组标识的群组密钥管理方案。这两种方案中所有通信消息都是基于群组密钥K来生成的,当群组中有成员变动时,K的更新将基于群组属性来完成,离开群组的用户将失去基于原群组固有属性因而无法进行资源访问,很好地保障了前后向安全性和通信消息的机密性。文献[15]提出了一种基于LKH树的大规模组播密钥管理方案,该方案将LKH树结构与Iolus相结合,虽然在存储开销上略微有所增加但解决了数据可靠传输的问题,提高了密钥更新效率,一定程度上降低了LKH树密钥更新时的计算开销。

2 密钥管理方案

本文提出一种具有前向安全的密钥管理方案。按资源级别将用户划分成多个群组,使用辅助密钥和单项散列函数对访问各级别资源的用户进行访问控制,将群组划分多个用户区,使用Shamir秘密分享算法将辅助密钥分割成多个影子密钥,并将其分发给各区中的用户作为用户密钥。当某一用户退出群组而引发系统密钥更新时,受影响的范围将被限定在该用户所在的用户区而不是整个群组。当多个用户区的多个用户退出群组时,只有当群组中的辅助密钥面临泄漏的风险时才会引发整个群组进行密钥更新,否则更新范围仍将被限定在该用户所在用户区之中。

2.1 初始化树形密钥图

下面将资源划分为三个等级来对本方案进行说明。密钥图的构建初始化操作可以分为以下四步:

Step1按资源等级将用户划分为三个群组(G1,G2,G3)。其中:G1中的用户权限最高,可以访问G1、G2、G3的资源;G2中的用户权限次高,可以访问G2和G3的资源;G3中用户的权限最低,仅能访问本组的资源。

Step2可信的密钥分发中心KDC确定并产生如下信息:群组G1、G2和G3之间的资源等级访问策略α1→2、α2→3;单项函数算法Hash_X、Hash_Y,Hash_X用于密钥生成,Hash_Y用于密钥更新;G1的辅助密钥Key1;三个群组的初始会话密钥SKx,参数x表示群组编号,即产生SK1、SK2和SK3。

(1)

(2)

当运算完成后,上级辅助密钥节点保留下级辅助密钥的生成时间和更新次数信息。各级资源的初始会话密钥由辅助密钥加密存储于辅助密钥节点中。

Step4生成影子密钥。首先由辅助密钥节点产生随机数βx,其中参数x表示群组编号。 将辅助密钥Keyx和随机数βx一同进行Shamir(t,n)门限分割,分割算法的参数t的确定应视该群组实际状况确定。当群组中的用户转出操作频繁时,t应在计算条件允许的前提下尽量选取较大值。参数n应考虑该群组用户总数和Shamir门限计算量再确定,n值的上限不应大于该群组中用户总数与t-1之和。根据分割方案将群组中的用户均分为n-(t-1)个区,为每一个区分配一份影子密钥,分割后的影子密钥用符号Key′x-y表示,其中x表示群组编号,y表示群组中的区号。即每个区的用户共享一份影子密钥,将剩余的t-1份影子密钥存于该群组中的辅助密钥节点中。

初始化后的树形密钥图如图1所示。

图1 树形密钥图

2.2 资源访问方式

资源的访问方式分为两种:群组中的用户访问本组对应级别的资源,称为组内资源访问;群组内的用户访问低于本组级别的资源,称为组外资源访问。

2.2.1组内资源访问

(3)

式中:参数λx-y表示群组x中y区中用户所持有的随机数,由辅助密钥节点为各用户区分发,用来进行区密钥更新。

(4)

2.2.2组外资源访问

以G1中的第5区用户访问资源2为例。用户获得辅助密钥Key1的方式与组内资源访问获得Key1的方式相同,与之前相比区别在于:当用户获得辅助密钥Key1后会进行产生Key2的运算。计算方式为:

(5)

(6)

3 密钥更新方式

按密钥更新涉及的范围来看,本文提出的密钥更新方案分为两种情况:区密钥更新和群密钥更新。区密钥更新指群组中的某个区中的所有用户进行密钥更新。群密钥更新指群组中所有用户重新进行初始化操作。当树形密钥图初始化后,无论是群密钥更新还是区密钥更新都由相关节点进行参数更新计算,而不再依赖KDC。

用户在多权限群组中的通信情况分为三种:用户权限撤销、用户权限提升和用户权限变更。

3.1 用户权限撤销

当用户节点退出群组时需要进行用户权限撤销操作。用户权限被撤销,会引发区密钥更新,更新时仅该节点所在区中所有用户需要进行密钥更新,同群组中其他用户区中的用户不受影响。每当用户进行权限撤销操作时,对应的用户区就需要进行一次区密钥更新。更新方式为:当权限被撤销用户离开原所属的用户区后,由辅助密钥节点以组播的方式向该区分发随机数λx-y。用户区中合法用户接收到新的随机数后,用户可以通过新的随机数生成新的会话密钥,从而进行资源访问。

3.2 用户权限提升

当新用户加入某个区时,会进行用户权限提升操作。当新用户加入群组的某个用户区时,辅助密钥节点负责将本用户区所拥有的影子密钥传递给新用户节点。此操作由于不会产生会话密钥泄漏的风险因此不会触发区或群密钥更新机制,只需将该区中用户所拥有的影子密钥传递给新用户即可。

3.3 用户权限变更

当某一用户节点在权限不等的两个群组间转移时,会进行用户节点权限变更操作。发生此种情况后,需要对转出区进行区密钥更新操作,更新方法和用户节点权限撤销时触发的区密钥更新方式相同。对于转入区则只需要将转入区所持有的影子密钥传递给新用户节点一份即可。

4 方案分析

4.1 安全性分析

本文从用户权限撤销、用户权限提升和用户权限变更三个角度来进行安全性分析。

当用户权限撤销时,被撤销权限节点所在的用户区会进行随机数的更新,撤销节点无法获取更新后的参数λx-y,从而无法获得新的会话密钥,保证了密钥管理方案的前向安全性。

当用户节点权限得到提升,即新用户加入群组时,由于新用户之前无法获取群组会话密钥,因此在考虑前项安全性的前提下不存在会话密钥泄漏的风险。

当用户节点权限变更,即某一节点从高权限群组转移到低权限群组中时,可以看成该用户节点先进行权限撤销再进行权限提升两个操作。转出区会对该节点进行原权限撤销,其会话密钥更新方式和用户节点权限撤销的情况相同。转入区等级权限低于转出区,不需要进行密钥更新故而不存在安全性问题。

4.2 性能分析

密钥管理方案的计算、通信和存储开销是衡量一个密钥管理方案的主要性能指标,本节从这三个方面进行分析,并与文献[10]、文献[15]方案进行比较。

为了充分体现本方案在海量密钥环境下的优越性,将本文方案和文献[10]、文献[15]提出的树形密钥图置为满树,在用户数和资源数相同的前提下进行两方案的对比。设共有N类资源,两个方案的密钥图在涉及多叉树结构的部分都假定为M叉树,单个密钥长度为Lk。

4.2.1存储开销

MTGKM方案[10]中会话密钥节点的存储开销为N·Lk,DG中辅助密钥节点的存储开销为(N-1)·Lk,SG中辅助密钥节点的存储开销为(N+N·M)·Lk,用户密钥节点的存储开销为M2·f(N)·Lk,其中:

(7)

MTGKM方案的总存储开销为上述各部分节点的存储开销之和。

文献[15]方案应用场景为单一资源的群组密钥管理,该方案没有改变传统LKH树的密钥存储模式,叶子节点仍储存从自身到对应根节点路径上所有节点的密钥。叶子节点存储开销为3·M2·Lk,LKH树辅助密钥存储开销为2·M·Lk,GSI部分存储开销为M·Lk,GSA部分即密钥树根节点密钥存储开销为1。该方案对应资源时总存储开销为(3·M2+3·M+1)·Lk。

本文方案与MTGKM方案的存储开销对比如表1所示。

表1 存储开销对比

在假定单个密钥长度为Lk=1的情况下,逐步增加用户数量来对比两方案存储开销。当单群组用户数量为100时,存储损耗、节点数目随资源种类增加而变化的情况如图2、图3所示。

图2 存储开销测试

图3 树形密钥图

在单一资源环境下即N=1时,三种方案对比如图4所示。

图4 单资源存储开销对比

4.2.2通信开销

在处于用户数量大、用户权限变动频繁的环境时,初始化构建密钥图时的通信量可以忽略不计,密钥管理方案的通信开销主要体现在密钥更新方面。而密钥更新时其通信开销主要由传送密钥产生,下面就从密钥更新时传递的密钥量上来进行两个方案的对比。

MTGKM方案[10]密钥更新时采用广播节点标号来向其他节点传递更新信息。当一个节点加入群组时,先由KDC分配创建新节点并分配新标号和用户密钥,再向全群组广播新节点的标号信息,该情况下通信量为3·Lk。当一个节点退出群组时由KDC广播其标号,该情况下通信量为Lk。单节点的权限变更操作可以看成先进行权限撤销再进行权限提升操作,该情况下通信量应为上述两种情况之和,即4·Lk。当多节点权限改变时,根据其密钥图结构,总通信量应为单节点权限变更通信量与该权限操作的节点数量之积。

文献[15]方案为了降低密钥更新的影响范围而划分子网,从而将范围限定在单个子网中。由于子网密钥结构为LKH,当一个用户节点离开时,子网内的通信开销为Lk。当用户加入时,子网通信开销为3·Lk。用户权限转移时总开销为上述两种操作之和即4·Lk。由于没有改变LKH树结构,该方案与MTGKM方案在通信量开销上相同。

本文方案的密钥更新分为两种情况:区密钥更新和群密钥更新。单个节点的权限变动只可能引发区密钥更新,其更新范围被限定在受影响的区中。只有转出区需要进行密钥更新,此情况下权限变动的节点在转出或退出区之前通过组播告知区中其他用户需要进行密钥更新,此过程产生的通信量为Lk。辅助密钥节点产生一个新的随机数λx-y并组播给相关用户区的合法用户,用户密钥节点通知其进行密钥更新,此情况下通信量为Lk。当进行群密钥更新时,该群组需要先进行Shamir门限运算恢复出辅助密钥,此过程的通信量为t·Lk。之后,更新完毕后的辅助密钥和会话密钥将重新下发给群中各区,此时通信量取决于该区所在群组的等级和该群组的分区数,该情况下通信量为N·Lk+(t-1)·Lk。

通过上述比较不难看出,本文密钥管理方案进行区密钥更新的通信总量为2·Lk,少于MTGKM方案的单节点通信总量4·Lk。本文方案进行群密钥更新时通信总量为(2·t+N-1)·Lk,此种更新方式下产生的密钥通信量一般大于4·Lk,但从触发群密钥更新的条件上看,其发生群密钥更新的频率将远远小于区密钥更新。如果按节点移除概率进行分区可以进一步降低群密钥更新发生的概率。综合来看,在用户数量多、用户权限变动频繁的环境下,本文方案较MTGKM方案具有一定的通信优势。

4.2.3计算开销

计算开销主要体现在密钥更新时需要进行密钥更新节点的范围上。从用户节点的权限变动上来看,产生计算开销的情况有两种:新节点加入群组和原节点退出群组。

MTGKM方案中为了考虑后向安全性提出当新节点加入时也要进行密钥更新,因此在新用户加入的情况下该方案与本文方案没有可比性。仅考虑保障前向安全性时,节点退出群组时MTGKM方案中辅助密钥需要更新的密钥数应为2·n+2,参数n为权限撤销节点的资源等级,用户密钥需要更新的密钥数为群组中所有节点。本文方案在同等情况下需要更新的节点数仅为某一区中所有节点数与该权限被撤销节点的资源等级之和,对比之下可发现本文方案在更新计算量上小于MTGKM方案。

文献[15]方案将整个群组划分为多个子网,当密钥需要更新时,将更新影响范围从整个群组缩减到单个子网之中,在子网中所需更新节点的数量为1+M/x,其中x为群组划分的子网数。可以看到,文献[15]计算量上将远小于MTGKM方案,其将密钥更新影响范围缩减至小群组中的思想与本文相似,但本文采用Shamir门限方案对小群组进行密钥分配,设定的阈值在降低了小群组中密钥更新频率的同时也将密钥更新范围进一步缩减,因而本文方案优于文献[15]方案。

5 结 语

本文在天地一体化网络背景下讨论了分级文件共享业务中存在的密钥管理问题,提出了一个多权限群组的分级密钥管理方案。在保障密钥安全性不变的同时降低了群组密钥更新的频率,缩减了密钥更新的范围,降低了系统整体的存储、计算和通信开销,提升了系统的性能。

猜你喜欢

群组密钥辅助
老年人行动辅助车
幻中邂逅之金色密钥
幻中邂逅之金色密钥
群组推荐系统:现状与展望
Android密钥库简析
例谈何时构造辅助圆解题
一种新的动态批密钥更新算法