



群组密钥管理(Group Key Management,GKM)是密钥管理中的重要研究内容,针对单播/组播安全通信在一群成员中实施密钥的生成、协商、分发、更新和撤销称为群组密钥管理 [72] 。群组密钥思想源于1982年INGEMARSSON的论文 [73] ,由群密钥管理协议(Group Key Management Protocol,GKMP)RFC2093和RFC2094给出定义 [74,75] 。群组密钥管理的主要内容包括密钥协商、加密/解密机制和密钥更新。群组密钥管理建立在密钥交互协议(Key Agreement Protocol,KAP)和密钥分发协议(Key Distribution Protocol,KDP)基础之上。由于KDP协议中节点能力较弱,密钥管理由密钥管理中心负责,不适合分布式的群组密钥管理,同此,下文主要讨论KAP类方案。
密钥交互协议是群组密钥管理的重要基础内容 [76,77] ,是为解决无可信中心支持的对等网络共享密钥生成的一种协议,该协议能为通信方建立安全保密信道 [78,79] 。在协议中,参与者身份是对等的、信道是公开的,在协议运行中所有参与者都必须提供密钥协商材料。由于密钥交互协议的网络模型特别符合无线分布式网络,因此随着无线网络的广泛应用,密钥交互协议得到了越来越多的重视。现有的密钥交互协议分为两方密钥交互协议和多方密钥交互协议。前者包括Diffie-Hellman Key Agreement [80] 、Station to Station Protocol [81] 、MTI Key Agreement [82] 、MQV Key Agreement [83] 、JKL Key Agreement [84] 、Smart's Key Agreement [ 85 ] 、 Scott's Key Agreement [ 86 ] 、 CK Key Agreement [87] 、MB Key Agreement [88] 、Joux Key Agreement [89] 、ZLK Key Agreement [90] 等。后者包括两种形式:一种是静态多方密钥交互协议,主要有ITW Group Key Agreement [73] 、BD Group Key Agreement [91] 、STW Group Key Agreement(GDH.1、GDH.2、GDH.3) [92] 、Octopus Protocol [93] 、Cube Protocol [93] 、BN Group Key Agreement [94] 、BC Group Key Agreement [95] 等;另一种是动态多方密钥交互协议,主要有 BCP Group Key Agreement [96] 、BCEP Group Key Agreement [97] 、NKW Group Key Agreement [98] 、KLL Group Key Agreement [83] 等。然而上述协议的网络模型都有一个前提,节点间的信道属性相同,支持同步机制,而且协商路径能够保证端到端可靠传输服务和较短延时。这些前提造成现有密钥交互协议在深空DTN应用的先天缺陷。
群组的动态性影响群组密钥的安全性 [99] 。当密钥的生存周期结束或发现密钥材料妥协,以及为了防止加入节点和退出节点的恶意行为时,群组密钥管理设计了4种群组密钥操作保护网络密钥的安全性,如图2-1所示。4种群组密钥操作的分类依据是能否形成物理连接和网络规模 [100] 。
图2-1 4种群组密钥操作
(1)密钥加入操作(Joining Rekeying Operation),简称加入操作,是指单个新成员加入网络,网络将加入前的密钥撤销,并重新为加入后的所有成员计算新密钥。
(2)密钥退出操作(Leaving Rekeying Operation),简称退出操作,是指单个成员退出网络,网络将退出前的密钥撤销,并重新为剩余成员计算新密钥。
(3)密钥合并操作(Merging Rekeying Operation),简称合并操作,是指两个网络合并为一个物理连接的网络,网络将合并前的密钥撤销,并重新为合并后的所有成员计算新密钥。
(4)密钥分裂操作(Splitting Rekeying Operation),简称分裂操作,是指一个网络分裂为两个物理不连接的网络,两个网络将分裂前的密钥撤销,并重新为分裂后的各自网络成员独立地计算新密钥。
4种群组密钥操作都会引发密钥更新,是动态群组密钥管理的重要内容。其中,密钥加入操作是密钥合并操作的特殊形式,密钥退出操作是密钥分裂操作的特殊形式,因为合并或加入的子网规模为1。
群组密钥管理的性能指标 [101,102] 分为效率指标和安全性指标两大类。
效率指标主要包括以下几个。
(1)交互轮数(Round),是指在密钥交互协议中,群组成员为协商共享密钥交互的次数。在网络通信延时较长的情况下,减少轮数能够降低密钥管理延时,是 KAP 性能的一个重要指标。通常降低交互轮数与网络规模之间的关联程度,甚至设计常数轮的密钥交互协议,对提高KAP效率具有重要的意义。
(2)计算开销(Computation Cost),是指在执行密钥管理中网络实体需要执行的计算总量。在分布式密钥管理中通常统计最费能源消耗的算法或算术操作的次数,如对称加密/解密算法、模指数运算、双线性对倍加/倍乘运算、门限协议执行的次数和规模、哈希函数等,如果成员的计算消耗不同,则以计算开销最大节点的开销作为方案的计算开销。在非分布式密钥管理方案中统计所有成员的计算总量。一般来说,较高计算复杂度的密钥协议具有较高的安全性,但同时也具有较长延时和较高能量消耗。计算开销不仅受限于能量水平,也依赖于硬件的能力。因此,在能量受限的网络中计算开销受到严格的限制。
(3)消息开销(Message Cost),是指协议执行过程中所传送消息的总次数。同轮数一样,消息开销越高对网络延时影响越大。但是消息不同于交互轮数,轮数通常指成员共同完成某项工作执行的交互步骤,多用于分布式密钥交互协议的共享密钥协商效率分析,而消息开销主要是指发送消息次数最大节点的消息开销,多用于密钥更新中,更新消息的发送次数越少,更新效率越高。
(4)带宽开销(Network Lord),是指在协议执行过程中单个成员传送的消息比特数的最大值。带宽开销与消息开销和密钥体积相关,带宽开销越大对带宽的要求越高,不仅增加网络负担,而且间接地增加传输延时。降低消息开销是提高带宽利用率的一个重要方法。
(5)更新规模(Rekeying Scale),也称1对N性质(1-affects-N),是指密钥更新过程所涉及的网络规模。在动态网络中,成员离开或加入可能引发其他节点参与执行密钥更新操作,密钥更新的范围可能涉及多个节点,最差的情况是密钥更新所涉及的网络规模为整个网络。在密钥更新中,加入或退出的成员称为更新成员,非加入和退出节点称为非更新节点,参与密钥更新的非更新节点的规模越大,消耗的网络资源越多,低密钥管理性能越低。因此,降低密钥更新规模是一个非常重要的问题。提高该指标性能,不仅能显著降低其他开销,提高网络资源利用率,而且支持网络的可扩展性和稳定性。
(6)存储开销(Storage Cost)。对于大型动态群组通信系统,其所需存储的密钥数量也是研究人员必须考虑的问题。在满足系统要求的同时,整个群组密钥管理系统使用的密钥数量必须尽量少。这是因为加密算法的安全性完全依赖于密钥,密钥量的增加增大了系统的不安全因素,而且也消耗网络的硬件资源,增加管理复杂度。
(7)同步机制(Synchronization Mechanism),是指保证协议的参与者在同一时刻或某个时间段内生成、协商、注册、更新或撤销密钥。每个密钥都有其生命周期,群组密钥管理需要群成员在较短的时间内同步协商共享密钥,减少安全通信延时。当密钥使用时间超过生命周期时,保证群成员能及时同步撤销密钥,防止该密钥加密信息的泄露。同步机制是地面无线网络密钥管理的一个非常重要的前提条件,能简化密钥管理方案设计复杂度。
(8)稳定性(Stability),或者称为协议的可提供性,即单个节点或部分节点的毁损并不影响密钥管理的可用性。协议执行过程中,协议能够发现哪些成员不能参与协议,即如果发生节点损坏或被攻击,协议能够将该成员排除,并能继续执行,直至完成。具有该性质的协议具有较好的稳定性,如门限密钥,能够容忍部分成员的妥协和损毁,少于门限值数量的节点损毁并不会阻止密钥协议的成功执行。稳定性有利于动态网络的密钥管理。
(9)可扩展性(Scalability),该指标主要考核动态网络中网络规模减小和扩张时的性能。该指标与更新规模具有密切相关性,具有较小更新规模的密钥管理方案具有较好的可扩展性。当网络发生合并或分裂时,网络性能不会因为规模变化剧烈而显著下降。可扩展性也指密钥管理在满足安全性的前提下,以较小网络资源消耗和较短延时完成密钥更新。可扩展性需要综合考虑网络的特殊应用背景。
根据攻击模型和攻击者能力,密钥管理的安全性指标主要包括两个方面:加密/解密协议的安全性和动态群组密钥更新的安全性。加密/解密协议的安全性主要包括以下几个指标。
(1)解密正确性(Correctness)。合法解密者使用正确的解密密钥能够对该解密密钥对应的加密密钥加密的密文正确解密;反之非法用户的非法解密密钥不能对该解密密钥对应的加密密钥加密的密文成功解密。解密正确性是加密/解密协议安全性的基本指标。
(2)被动安全(Passive Security)。由于无线通信信道暴露在空中,攻击者很容易截获被加密的信息,因此防止攻击者从公开信道中窃听数据和破解密文是被动安全研究的主要任务。被动安全防御的主要目的是防止攻击者通过信道公开的密文恢复明文或加密密钥。被动安全依赖加密密钥的强度,也是加密/解密协议安全性的基本指标。
(3)主动安全(Active Security)。防止恶意攻击者冒充合法用户的身份,以窃听、插入、删除、替换和重放信道上的数据等主动攻击方式破坏安全通信。根据攻击者的能力分为选择明文攻击(Chosen Plaintext Attack,CPA)、选择密文攻击(Chosen Ciphertext Attack, CCA)、自适应选择密文攻击(Adaptive Chosen Ciphertext Attack, CCA2)。其中CCA的安全性高于CPA,而CCA2的安全性高于CCA,因此证明 CCA2的安全性就等于间接证明 CCA 和 CPA 的安全性, CCA2是公钥密码学安全的最高安全属性。主动安全性是公开密钥加密/解密算法的核心安全性指标。
(4)内部攻击安全(Internal Attack security)。攻击者可以盗取或收买合法成员的私有数据,如用户长期密钥,并在此基础上做进一步的分析,他们被称为内部攻击者。显然内部攻击能力比被动攻击和主动攻击更强。内部攻击安全是密钥管理安全性的一个有益补充。
(5)合谋攻击安全(Collusion Attack security),是指网络中多个成员合作破解密文或密钥。例如,在动态网络中,当多个加入或退出成员利用妥协密钥材料合作攻击更新后或更新前的密文。合谋攻击也指使用门限密钥协议的密钥管理方案,当攻击者获取的密钥碎片超过规定阈值时,攻击者就能成功攻击该协议。如果攻击者是部分或全部合法成员,则合谋攻击是内部攻击的一种。
动态群组密钥更新的安全性指标 [103] ,用于衡量当节点状态、拓扑结构发生变化,群组密钥更新能够保证新密钥不会泄露给恶意攻击者,主要包括以下几个指标。
(1)群组密钥管理协议(Group Key Management Protocol,GKMP)的正确性。群组通信的安全性依赖于群组密钥管理的安全性,所以在设计群组密钥管理协议时,必须保证协议的正确性,即诚实成员执行协议完毕后,能够得到所要的正确结果。群组密钥管理协议的正确性是加密/解密协议安全性的进一步扩充,是群组密钥管理安全的基本指标。
(2)前向安全性(Forward Security,FS)。当节点离开网络后,网络更新群组密钥,并保证离开节点不能获取更新后的密钥。动态群组密钥管理中,前向安全性是必需的。
(3)后向安全性(Backward Security,BS)。当节点加入网络后,网络更新群组密钥,并保证加入节点不能获取更新前的密钥。动态群组密钥管理中,后向安全性是可选择的。
(4)密钥独立性(Key Independence,KI)。更新前的密钥与更新后的密钥不存在相关性,即保证攻击者不能从前一时刻的密钥推导出后一时刻的密钥。具有密钥独立性的群组密钥管理方案比不具有该性质的群组密钥管理方案的安全性更强。
前向安全性、后向安全性和密钥独立性组成动态群组密钥管理安全性最重要的3个方面。
目前,地面无线网络的密钥管理技术较为成熟,因此现有空间网络的密钥管理大多借鉴地面无线网络的密钥管理技术展开研究。
根据节点在密钥管理中的身份和承担的角色,地面无线网络密钥管理方案分为集中式密钥管理、非集中式密钥管理和分布式密钥管理。集中式密钥管理(Centralized Group Key Management,CGKM)方案的最主要特点是网络中存在能力明显优于其他成员的实体,如密钥管理中心或密钥分发中心(Key Generate Center,KGC),它们负责全网络成员的密钥生成、注册、组织、分配、更新和撤销等,承担全部或大部分密钥计算开销和存储开销,成员被动接收密钥材料,成员的所有信息对KMC或KGC都是可视的。集中式密钥管理根据KMC或KGC在密钥管理中存在的时间分为两种模式:在线式KMC,KMC在密钥管理中始终存在,KMC 能对成员的请求做出及时的反应;离线式KMC,KMC只承担密钥管理的初始化工作,当网络成员加入网络后,节点不能从 KMC 获取任何支持,因此离线式 KMC 的密钥管理能力是有限的,如图2-2所示。
图2-2 集中式密钥管理的两种模式
对偶密钥管理(Pairing Keys Key Management,PKKM)方案的原理是全网络成员预先从 KGC 获取共享的密钥加密密钥(Key Encryption Keys,KEK),节点利用该密钥和其一跳邻居节点协商会话密钥(Session Key,SK)。文献[73,74]提出一种基于群组密钥包(Group Key Packet,GKP)的对偶密钥管理方案,它包含KEK和SK,每个成员的KEK不同,网络成员加入前获得KEK,当有新成员加入网络时,KMC 使用加入成员的 KEK 加密更新的 SK,使用其他成员的KEK加密更新的SK,将其发送给网络内的所有成员;当有成员离开时,KMC使用留下成员的KEK加密更新的SK,该方案能够保证网络的前向和后向安全性,但是由于KMC和每个成员之间都必须建立安全信道,因此更新消息的开销为n。文献[104]提出了一种基于对偶密钥的组播密钥管理方案,KMC首先为每个成员选择一个随机数k,加密组播消息m,然后通过预先分配的KEK加密随机数k,接收者依次使用KEK和k解密得到m,组播消息的发起者为KMC,发送消息的开销为n。
文献[105,106]解决了群组密钥可扩展性问题,提出逻辑密钥树LKH方案。如图2-3所示,在LKH中,所有密钥在逻辑结构上映射为密钥树,树中节点对应密钥,树中叶子节点对应群成员,群成员具有从叶子节点到树根的路径上的 KEK,树中根节点是传输加密密钥(Traffic Encryption Key,TEK),每个成员存储log 2 (n+1)个密钥,密钥更新的消息数量从n减少为log 2 (n+1) 。当节点u 5 离开时,密钥服务器(Key Server,KS)更新密钥k 56 ,KS使用k 6 更新节点u 6 的k 56 , KS使用k 56 更新节点u 6 的TEK,KS使用k 1234 更新其余节点的TEK,发送的消息量为3个,小于群组密钥管理(Group Key Management Protocol,GKMP)的消息量。针对此方案的系列优化方案被提出:文献[106]建议了一个LKH的扩展方案,将密钥树从二叉树变为k叉树,通过提高树的节点度减少树的深度,性能分析结果显示节点度的大小为4时,达到最优。文献[107,108]提出了 LKH 的改进方案单向函数树(One-way Function Trees,OFT),将密钥更新的消息数量从2log 2 N减少为log 2 N,其中KEK的计算不是从KS中得到,而是群成员利用单向函数 f (.) 、 g (.)和左右孩子的 KEK 计算得到k i = f ( g ( k left ( i ) ),g ( k right ( i ) )) 。文献[109]中使用伪随机数发生器产生 KEK,进一步提高了计算效率。
图2-3 LKH方案
文献[110]提出了安全锁协议(Security Locks Protocol,SLP),当有节点离开网络时,KMC利用中国剩余定理(如图2-4所示)只需要一次广播协议就可以建立新KEK。如图2-5所示,安全锁协议算法减少了交互次数和消息量,增加了计算复杂度,具有单加密密钥多解密密钥的性质,但是存在单点失效问题。
图2-4 中国剩余定理
图2-5 安全锁协议算法
文献[104]建议了一个基于多播路由的群组密钥协议。KMC 和每个群成员共享一个 KEK,在发送数据前,源节点使用 KEK(s)加密一个TEK发送给KS,KS使用KEK(d)加密TEK发送给多播目的节点,目的节点解密得到TEK。该协议需要KS和多播地址中的每个目的节点通信,增加了网络负载。该协议建立在可靠端到端多播路由服务基础上。协议发起者是源节点,而KMC的作用是转发密钥材料。
文献[111,112]基于双线性对和门限密钥协议提出了一种单加密密钥多解密密钥加密/解密协议(One-encryption-key and Multi-decryption-key/Encryption Decryption Key Protocol,OMEDKP),其算法如图2-6所示。该协议具有单加密密钥多解密密钥性质,通过KMC为加密者分配部分数量的加密密钥碎片(Key Fragment,KF),为解密者分配不超过门限数量的解密密钥碎片,只有当收集的解密密钥碎片超过门限值数量时,解密者才可以成功解密。每个成员具有不同的身份标识,根据该标识KMC使用门限函数为成员计算密钥碎片,因此每次密钥更新都需要重新执行一次协议,为加密者和所有解密者分配新鲜的加密/解密密钥碎片。
文献[72]提出了一种集中式二维表密钥管理(Centralized Fla-table Key Management,CFKM)方案,如表2-2所示。该方案中,密钥层次结构被一个二维表结构所替代,该表包括一个 TEK 和2w 个 KEK ( w为成员数量),当群成员变化时,只需要更新节点所持有的部分KEK,TEK通过未妥协KEK加密发送,更新的KEK使用未妥协KEK和更新的TEK加密发送,数量为<2w,减少了KS所需要维护的KEK数量。然而,密钥更新过程需要较多的通信负载。
图2-6 OMEDP协议算法
表2-2 集中式二维表密钥管理
文献[113]提出了一种可扩展的群组密钥管理(Extended Group Key Management,EGKM)方案。在网络展开前,为每个节点预导入一个密钥集合,该集合作为KEK,由密钥服务器产生并分发群组密钥到邻居节点,然后逐跳进行群组密钥分发,使用节点间共享的 KEK来保证组密钥的安全传输,而节点间共享的 KEK 则通过共享密钥发现或路径密钥建立来得到。当有节点被俘虏时,剩余节点并不抛弃被俘虏节点的密钥k
i
,而是使用一个未被俘虏的密钥k
m
来进行更新,更新后的密钥
为一伪随机函数。此方案采用对称加密,节点计算量较小,且节点本地保存的密钥集合不需要占用太大的存储空间,在节点被俘虏时,对被俘虏的密钥进行更新,增强了方案可用性,但密钥服务器可能会成为通信瓶颈,且会造成单点失效问题。
文献[114]提出了一种随机密钥预分配管理(Random Preconfigure Key Management,RPKM)方案,每个节点加入网络前都根据网络规模 n 计算保持网络连通性的最小连接概率ρ=(log
2
n+c)/n (c 为常数,n为网络规模),从密钥服务器得到一个随机密钥集合,其规模k满足公式
。当两个节点需要安全通信时,检查是否共享同一密钥,如果没有,就利用拥有共享密钥的中间节点来建立安全信道,k的选择保证共享密钥的发现在1~3跳内。该方案适合能量要求严格、节点移动无规律的网络,但是由于密钥可能被多个成员共享,密钥更新需要预先知道密钥的位置,这样就与随机性矛盾,因此密钥更新是一个困难问题,且该方案需要离线式KGC支持。
文献[ 115 ]提出了一种基于身份标识的密钥管理系统( Key Management based on Identity,KMI)方案。该方案利用主体易识别且唯一的特征,如姓名或E-mail地址作为公钥和证书的生成材料,所以在认证之前不需要交换公钥,但需要一个集中式的 KGC 来产生系统的公钥以及用户的私钥。由于 KGC 知道所有用户的私钥,一旦被俘虏将造成整个系统的崩溃。基于双线性对的密钥管理方案的共享密钥协商无须成员交互,因此在延时要求苛刻的网络中得到广泛的应用,如DTN。
文献[116]提出了一种基于对称密钥体制提出一种基于多项式的密钥管理(Polynomial-based Key Management,PKM)方案,会话密钥GK k 可以由多个不同的密钥KEK i 计算得到,会话密钥GK k 作为方程的常系数,而解密密钥KEK i 作为方程 f (x)的根,具有单加密密钥多解密密钥的性质。但是该方案不满足前向和后向安全性。
文献[117]中提出了一种基于证书的组播密钥管理(Multicast Key Management based on Certificate,MKMC)方案。节点以离线方式获得服务资格证书,参与到组播组中。证书撤销动作由组播源完成,以证书撤销链表的方式记录,并周期性地广播给每个组成员。组成员与组播源之间通过节点的全球定位系统(Global Position System,GPS)位置信息构造最优逻辑路径,形成组播树。该树的父子成员节点间通过协商会话密钥来保证组播信息的机密性。该方案通过GPS位置信息构造最优组播逻辑树,有效地减少了组播信息的通信开销,但组播数据需要在每一跳进行加密和解密,计算开销和能量消耗较大。另外,撤销机制不具备可扩展性,GPS辅助设备也限制了其应用。
表2-3和表2-4给出了几种集中式密钥管理方案的安全性和效率对比。集中式方案成功实施的一个重要前提是,KMC 能够在密钥管理中和任何节点建立有效的端到端链接,节点的任何请求都能够被及时地送达到KMC,KMC的绝对安全性和较强能力简化了协议复杂度。KMC 是集中式密钥管理方案的核心,几乎所有的密钥管理任务都由KMC负责,因此KMC的能力一般比其他节点强,这也使得KMC的建立较为复杂和昂贵。由于KMC的重要性,它往往成为攻击者重点攻击的对象,是集中式密钥管理的安全瓶颈。为了避免KMC被攻击,以及减少网络成本,使用 KGC 提供密钥预分发的方案被提出。该方案需要节点预先配置大量的备选密钥,随机分配方式造成密钥更新的困难性,基于离线式KMC的密钥管理方案大多用于节点能力受限的场景,如节点的能力无法预先建立安全信道的场景,传感器网络因为节点能量水平不能支撑公开密钥算法建立安全信道。减少成员与KMC之间交互次数和防止单点失效问题是此类方案的研究核心。
表2-3 集中式密钥管理方案安全性的对比
说明:√表示支持,×表示不支持,null表示没有此项说明。
表2-4 集中式密钥管理的效率对比
续表
说明:n为网络规模,null表示没有此项说明。
针对集中式密钥管理中的单点失效问题和规模较大网络的密钥管理需求,非集中式密钥管理(Decentralized Group Key Management, DGKM)方案被提出。基于分层分簇技术,网络划分为多个层次,KMC在密钥管理中的作用被网络内部分节点承担,这些节点被称为簇头或域内领导者,它们承担区域内的密钥管理任务,当这些节点中出现损坏或退出时,重新选择新的簇头或域内领导者。方案的实施不仅需要支持多跳,而且需要成员合作。
文献[118]基于路由结构提出一种基于核心树多播路由的密钥管理(Scalable Multicast Key Distribute,SMKD)方案。核心路由树结构中包括多个核心节点、多个次级核心节点和一般节点,由核心路由节点产生TEK和SK,并将这些TEK和SK发布给次一级的路由节点或其他节点,这些经过核心节点授权的次一级的路由节点或其他节点可以授权新加入节点,并发送给它们本区域内的TEK和SK,但是TEK和SK的生成仍旧由核心路由节点负责,该方案没有给出前向安全性的解决方案。
文献[ 119 ]提出一种基于域的密钥管理( Inter Domain Key Management,IDKM)方案,该方案将网络分为3层结构:第一层为域密钥分发者(Domain Key Distributor,DKD),由单个实体负责密钥的生成;第二层为域内密钥管理者(Area Key Distributor,AKD),负责密钥发送和分配;第三层为普通节点。该方案存在单点失效问题。文献[120]也提出了类似结构,将网络分为3层,即群管理者、域内管理者和普通节点。其中,每个域内管理者不仅负责域内密钥管理,而且负责整个群的TEK生成,但是只有最高优先级的域内管理者具有此项能力。
文献[121]采用阶段更新的方式提出了一种密钥管理方案Kronos。密钥的更新过程是阶段性的,采用固定时间周期,而不是成员变化,该协议分为多个AKD,但是TEK不是由DKD生成的,而是由AKD独立生成的,为了保证每个AKD中的群组密钥都相同,每个AKD首先要保证相同的时钟周期具有相同的密钥材料。因为TEK生成方法为( R i+1 =E K ( R i ), K S : R 0 , K ) ,所以该方案不满足密钥独立性。
文献[122]提出了一种基于时间片的密钥管理(Time Slice Key Management,TSKM)方案。该方案将应用服务的完整时间段分为多个时间片,每个时间片使用不同的密钥,每个任务对应一个密钥种子,利用诸如MD5算法通过二叉树生成任务时间内每个时间片内的密钥,如图2-7所示。该方案不具有密钥独立性。
图2-7 基于时间片的密钥管理
文献[123]提出了一种基于战场环境的密钥管理方案,它将网络分为3层,第一层和第二层由较高移动能力和能量水平的节点担当簇头,第三层由普通节点组成星形网络,如图2-8所示,该方案使用基于身份的密钥协商协议,隐含身份认证过程,提高了协商效率,但只适合特定战场环境,不支持多跳,应用环境有限。
图2-8 基于战场环境的密钥管理方案
文献[124]提出了一种基于支撑树结构的群组密钥管理(Clustered Arbitrary Topology Generalisation of Diffie-Hellman,CAT-GDH)方案,根据传输范围将网络分为两层,如图2-9所示,每层都由多个簇构成,由簇节点组成第一层,簇头节点组成第二层,第一层使用伯梅斯特-德梅特(Burmester-Desmedt,BD)方案,第二层使用AT-GDH方案,协议效率为O(log 2 c),c为网络中簇的数量,虽然该方案使得密钥更新限定在局部范围内,同时降低树高度,但由于簇的规模和特定的信息相关,较大簇在群组密钥管理中需要耗费较多的时延,而且簇规模的不同,也导致其更新效率不同,进而破坏网络的均衡性。
图2-9 CAT-GDH方案
文献[ 125 ]提出了一种层次密钥管理方案( Hierarchical Key Management Scheme,HKMS),它将网络分为两层结构,第一层在两跳的范围内组建簇结构,第二层由簇头组成,由于跳数的限制,有限的簇规模使得网络中簇的数量较多,簇间安全通信需要多次密钥转换。
文献[126-128]设计了双层加密协议(Dual Encryption Protocol, DEP)。现有非集中式密钥管理方案中密钥的发布经过很多的中间节点,因此这也使得密钥的安全性是建立在大多数网络实体是可信基础上的,为此Dondeti设计了DEP。该协议也使用层次结构,由子群管理者(Sub Group Manager,SGM)管理每个子群,群中定义了3个KEK和1个DEK,SGM和群成员共享KEK1,KS和SGM中成员共享KEK2, KS和SGM共享KEK3。这样DEK的发布经过两种密钥的加密,防止了中间节点的解密,即使中间节点非可信,也可以保证传输的安全性。但是增加了密钥转换次数,中间节点也不能参与身份认证。
文献[129]提出了一种基于成员过滤的动态群组密钥管理方案。该方案首先对网络分簇,其次簇头根据簇成员的信息构造过滤函数,并将其组播发送给所有的簇成员,只有该组中的合法成员才能通过此函数计算出正确的组密钥。当有成员加入或退出簇时,簇头根据新的成员信息生成成员过滤函数,然后将新的成员过滤函数分发给组成员,从而保证群组密钥的前向和后向安全性。由于群组密钥由簇内生成,簇外成员变化不会对簇内群组密钥产生影响,使用过滤函数提高了传输效率,但是簇头负责分发群组密钥可能会引起单点失效。
表2-5给出了几种非集中式密钥管理方案的安全性和效率对比,非集中式密钥管理方案适合大规模无线网络应用,密钥更新规模与簇规模相关,簇规模的选择以应用场景的网络特性为基础。作为中间转发的域内管理者和簇头作用尤其重要,域内管理者和簇头损毁时,可以由其他节点替换,因此,该密钥管理方案具有一定的抵御攻击能力。但是,群管理者和簇内管理者之间的连接,以及簇内管理者和簇内成员之间的连接,都必须是端到端可靠连接,同步机制和较短的延时也是保证方案成功实施的不可或缺的前提条件。根据网络的特点建立分层分簇算法、减少密钥转换的次数和提高簇头的生存能力是此类方案的研究核心。
表2-5 非集中式密钥管理方案的安全性和效率对比
说明:√表示支持,×表示不支持,null表示没有此项说明。
分布式密钥管理(Distributed Key Management,DKM)方案为解决分布式网络共享密钥协商而提出。该类方案最大的特点是所有成员在密钥管理中的作用等价。密钥管理无须KMC的支持,也不具有簇头或域内领导者等特殊节点,每个成员都通过贡献部分密钥材料在公开信道上合作协商得到共享密钥。该类方案支持非诚实环境中无预先配置安全信道的密钥管理,密钥协商方式灵活,节点分担密钥管理任务解决了单点失效问题,能够容忍部分节点的损毁,适合分布式网络,尤其满足自组织网络的动态管理需求。但是该类方案大多使用公钥密钥机制,且需全体成员参与多次交互过程,消耗较多的网络资源。长延时和较高计算开销成为限制该协议应用的主要瓶颈,现有方案不适合大规模多跳网络的应用。
文献[67]首先提出将 DH 协议应用于群组的密钥协商协议。成员具有执行DH协议的能力,每个成员通过DH协议在公开信道交互共享密钥材料以计算共享密钥,协议交互轮数开销为n轮,每个成员都需要发送消息n-1次,计算开销为n次模指数运算,如图2-10所示。由于该方案无须预先建立安全信道,因此一经提出,就得到了广泛的关注。该协议为两方DH协议扩展到多方的群组密钥管理协议奠定了理论研究基础。
图2-10 DH协议流程
文献[92]中提出了一种将两方 DH 协议扩展到多方的群组密钥管理协议——基于DH的群组密钥管理(Group key management based on Diffie-Hellman,GDH)协议,文献[67]进一步优化了多方DH协议,提出GDH.1、GDH.2和GDH.3协议簇,将多方DH协议扩展为支持动态网络的群组密钥管理方案,并通过组织优化和组播通信方式降低通信开销和计算开销。随后出现了改进的多方 GDH 协议,如Hypercube、2 d -cube 和 Octopus 等,这些协议将网络节点安排在一个特殊的逻辑结构或拓扑结构上 [130] ,减少了群组密钥协商时的通信交互次数,但协议缺乏有效的密钥更新机制,可扩展性不强。
文献[131,132]提出一种基于平面树(Skinny Tree,STR,见图2-11)的组播密钥管理方案,网络成员组成一个平面树结构,每个成员都对应树上的一个叶子节点,非叶子节点为协商的组密钥k
i
,每个叶子节点都具有一个秘密值x
i
和一个盲密钥
,则层i-1的组密钥为k
i
和bk
i
,计算
每层逐次计算,最高层的密钥为
mod p 。由于该结构为线性结构,因此具有较高的计算开销和消息开销,位于最底层的成员需要执行n-1次模指数运算,发送n-1次消息。该协议支持动态成员的密钥更新,当有成员加入时,将其加入最高层次,只需要使用旧有的根节点密钥重新计算新的根节点的密钥,逻辑密钥树的高度增加1;当有成员离开时,其更新效率与离开成员的高度相关,高度越高,更新效率越高,最差情况为最底层的叶子节点,因此该协议对节点加入的性能表现较好。
文献[133,134]针对STR的缺陷,在LKH方案的基础上,通过DH协议将其修改为DH逻辑密钥树(Diffie-Hellman Logical Key Hierarchy, DH-LKH)密钥管理方案。网络成员通过DH协议协商共享组密钥,与 LKH 方案类似,该方案具有逻辑密钥树。DH-LKH 方案的群组密钥结构如图2-12所示。这是一棵二叉树,树中的叶子节点对应网络成员,非叶子节点为密钥加密密钥,树根节点对应会话密钥,密钥的建立过程从下到上,第 i 层的节点密钥由第i+1层对应的孩子节点的密钥产生。相对STR方案,该方案的计算开销为log 2 n次模指数运算,每个节点发送消息量为log 2 n 。成员加入或退出时,计算开销为log 2 n,消息开销为log 2 n 。
图2-11 Skinny Tree
图2-12 DH-LKH方案的群组密钥结构
文献[ 135 ]提出一种结合 STR 和 TGDH 的方案( user-center Tree-based Goup Diffie Hellman,uTGDH)协议,如图2-13所示,uTGDH在椭圆密码曲线公钥的基础上,借鉴 STR 方案较少的通信负载和TGDH较少的计算开销与存储开销,密钥树整体构建STR,子树构造为二叉树,在网络时延和通信负载之间取得平衡,效率依赖TGDH子树和STR子树的规模,由于uTGDH在整体拓扑结构设计上仍是STR,所以子树规模不同,更新效率非均衡,层数越低的节点承担的计算开销和存储开销较大。
图2-13 uTGDH的树结构
文献[91]提出了一种常数轮的密钥协商协议 BD 协议,如图2-14所示,BD 协议基于 DH 协议实现了密钥交互协议交互轮数与网络规模的无关性,交互轮数为常数级别。该协议只需要成员发送两次消息交互公开密钥材料,执行n+1次模指数运算,就能计算出共享密钥。但是BD协议需要同步机制支持。
图2-14 BD协议
文献[136]利用双线性对构造了一种三方共享密钥协议,3个成员A、B和C分别选择3个随机数a 、 b和c,它们通过公开信道发送消息aP 、 bP和cP,A、B和C分别计算公式e(aP,bP) c 、 e(bP, cP) a 和e(aP, cP) b ,则最终得到共享密钥key=e(P, P) abc 。由于双线性对能够使用更少的消息和交互轮数协商共享密钥,因此比基于DH协议的密钥管理方案具有更好的效率。文献[137]基于双线性对构造规模为3的分层分簇结构,将更新消息和计算量降低为log 3 n 。
文献[138,139]基于双线性对和同态密钥机制提出一种非对称群组密钥协商(Asymmetric Group Key Agreement,AGKA)协议,如图2-15所示,该协议执行完毕后,所有群成员得到一个公开加密密钥,每个群成员具有该公开加密密钥对应的解密密钥,且每个群成员的解密密钥不同。公钥通过私钥材料组成,每个成员的私钥也由各个成员的密钥材料组成,因此当成员加入或退出时,需要所有成员共同重新执行密钥协议。由于每个成员具有对自己提供密钥材料的秘密签名
,因此一旦有成员加入,密钥协议就需要重新执行。
图2-15 AGKA协议流程
由于分布式网络中缺少身份认证中心,因此结合身份认证的密钥管理方案被提出,主要包括以下几种。
文献[140]提出了一种“复活鸭子”(resurrecting ducking)方案。当网络初始化时,节点将第一个为其分发密钥的节点作为它的拥有者,并只接受拥有者的控制,这种控制一直保持到节点死亡,然后等下一个拥有者出现时节点复活,这样就形成了一种树状的密钥管理模式。该方案计算开销小,但通过物理上的接触来解决初始密钥的分发,限制了“复活鸭子”方案的应用,另外该方案缺乏灵活性,如果一个节点失灵,其所有的子孙节点都将无法进行安全通信。
文献[141]提出了一种完全自组织的密钥管理方案。在该方案中,允许用户产生自己的公私密钥对,并签发证书来完成认证。当两个节点需要建立信任关系时,就合并它们的本地证书库,从而形成一张证书图,并试图从该图中发现一条认证链路。如果发现一条认证链路,则认证成功,否则认证失败。自组织密钥管理方案不需要任何可信第三方,节点自己完成证书的颁发、更新等操作,但是密钥管理中节点的存储量和计算量较大,且只能从概率上保证节点间存在证书链。
文献[142]提出了一种部分分布式管理方案。该方案将电子认证(Certificate Authority,CA)证书的私钥分为n份,分给网络中的n个服务节点,每个服务节点可以使用获得的私钥份额来签发一个证书碎片,收集超过门限值数量的证书碎片才能得到一个有效证书。经过足够长的时间后,移动攻击者可以俘获不少于门限数的服务节点来重构CA证书的私钥,从而造成系统崩溃。为了有效防止这种情况的发生,服务节点可用先应式秘密分享更新机制来更新私钥份额而不更改 CA证书的私钥,从而增强系统的安全性。此方案安全性较高,但由于服务节点的数量有限,通用性不强。
文献[143]提出了一种完全分布式的方案。将CA证书的私钥份额分发给网络中的所有节点,增强了分布式服务的可用性,但是,所有节点都拥有CA证书私钥份额,这就增加了CA证书私钥暴露的风险,降低了系统的安全性。
文献[144]提出了一种复合式密钥管理方案。考虑到分布式的管理方案安全性较高,但其计算开销和通信开销大,而自组织的管理方案灵活,且无法保证认证成功率且缺少信任节点,不适合安全需求较高的网络。因此在网络中同时使用分布式CA和证书链,可以利用一种技术来弥补另一种技术的不足。网络中存在3种类型的节点:分布式CA 服务节点、证书链参与节点、普通用户节点。利用分布式 CA 来满足安全性要求,利用证书链来满足可用性要求。比起单独使用分布式CA或证书链的方案,性能得到较大提高。但缺乏有效的证书撤销机制,且恶意用户可能伪造大量的虚假证书破坏网络的安全。
文献[145]提出了一个分布式的群组密钥管理框架。该框架以RSA非对称密码体制和门限秘密共享体制为基础,由离线的控制节点初始化节点的密钥信息。在网络部署后,多于门限个数的节点可以在不暴露私有密钥碎片的情况下生成群组密钥,节点的公私密钥对用于群组密钥生成与分发过程的安全通信,采用门限秘密共享机制提高了群组密钥管理方案的可用性和扩展性,增强了系统的容侵性。但该方案在初始化阶段需要一个可信控制的节点参与且难以抵御拒绝服务攻击。
表2-6给出了几种分布式密钥管理方案的对比,分布式密钥管理方案是目前群组密钥管理的主要研究内容。分布式密钥管理方案无须特殊外部设备,无须密钥管理服务器支持和预制安全信道,密钥协商方式契合分布式网络自组织组网方式,支持网络成员的自由加入或退出,满足动态群组密钥管理的前向和后向安全性和密钥独立性需要,适合快速部署具有抗损毁的网络场景需求。由于共享密钥建立在公开信道基础上,目前大部分分布式密钥管理方案采用公钥密钥基础。因此,此类协议需要节点具有能够执行公钥的能力,增加了计算开销和消息开销,对网络资源提出了挑战,适合规模较小的分布式网络。目前,减少计算开销和消息开销是分布式密钥管理的主要研究内容,在安全性上,身份认证安全机制的建立和密钥独立性是其基础研究内容。
表2-6 分布式密钥管理方案对比