APP下载

安全高效的WSN多级密钥管理方案

2022-12-30殷智浩于本成殷志昆凌启东

计算机工程与设计 2022年12期
关键词:哈希密钥加密

殷智浩,于本成,2,周 楠,殷志昆,凌启东

(1.徐州工业职业技术学院 信息工程学院,江苏 徐州 221140;2.中国矿业大学 信息与控制工程学院,江苏 徐州 221116;3.江苏大学 计算机科学与通信工程,江苏 镇江 212013)

0 引 言

目前,由于无线传感器网络(wireless sensor network,WSN)对实时性的要求较高[1-3],若仅仅将传统的密钥分配、密钥协商、密钥刷新协议或者复杂的密码算法直接融入到传感器中是不可行的,因为大多数公钥体制密钥算法在WSN中并不适用[4,5]。因此,密钥分配和密钥刷新协商问题是当前WSN的研究热点和挑战。

多年来,国内外研究专家已经提出了各种有关密钥的安全方案。Kamal和Ahlawat[6]提出一种基于矩阵的改进密钥管理方案,该方案使用加密方法来增加存储空间,并使节点变得轻量级,并提高节点的连接性,但其并没有密钥刷新。Tamilarasi等[7]提出一种改进的基于非对称密钥的安全体系架构,抵抗了中间人攻击,提高了安全性,但其资源开销较大。Amodu等[8]提出一种无线传感器网络中基于位置的密钥分发机制。张文[9]提出一种分层分簇的组密钥管理方案(HCGKM),该方案通过构造特殊的组密钥多项式刷新密钥,但是其密钥刷新的加密密钥并未刷新,安全性不高。刘芬等[10]提出一种WSN中基于公钥体制的轻量级密钥管理方案(LWKM),但该方案不能抵抗中间人攻击,且密钥刷新阶段的加密密钥并未刷新,安全性不足。

因此,针对WSN中的密钥安全及其刷新效率问题,本文设计了一种基于节点层次的多级密钥管理方案。主要创新点包括:①设计了基于节点层次的分级密钥机制,根据节点层次分配低到高等级的密钥,其中低级密钥由高级密钥进一步生成;②设计了基于密钥使用频率的高效密钥刷新协商协议,在保证安全性的前提下提升了密钥刷新效率。

1 WSN安全性分析

1.1 WSN结构与特点

WSN结构如图1所示,其中包括3大要素:簇成员/传感器节点、簇头节点和管理节点/基站[11-13]。WSN是由大量传感器构成,构成的方式为自组织和多跳,它们互相协作地去感知、采集、处理并传输覆盖的信息,最后发送给网络所有者。传感器节点将采集的数据进行简单加工处理后,通过邻居节点逐跳地传送给簇头节点;簇头节点对接收到的数据进行加工处理后,最终传送给管理节点/基站。管理员通过管理节点/基站对整个WSN进行管理和控制,其中包括发布监测任务及收集监测数据、发布控制指令等[14]。

图1 WSN结构

1.2 WSN的安全问题

WSN的数据采集、数据传输过程以及物理位置都需要对无关人员严格保密。WSN的安全需求同传统网络一样,都需要解决数据机密性、数据完整性、数据新鲜性、密钥新鲜性、认证性以及不可否认性问题[15],详细描述见表1。

表1 WSN安全需求

2 WSN多级密钥管理方案设计

2.1 整体结构

一个WSN中,包含数量庞大的传感器节点以及其资源的限制性,导致密钥管理非常棘手。传感器节点之间相互传输数据,但并不是每个节点都需要和所有节点进行数据交互,每个节点的重要级别也是不同的,有些是必不可少的,有些是可有可无,因此,本文根据节点的重要层次进行划分,设计相应层次节点之间使用的密钥,层次数可根据真实的场景中调整。为了便于分析,这里将考虑三层划分,内层(第一层)安全级别最高,外层依次降低,所提方案结构如图2所示。

图2 所提方案结构

针对密钥安全及其密钥刷新效率问题,根据WSN节点重要级别属性设计了一种基于节点层次的多级密钥。根据层次分配低到高等级的密钥,保证只有高级密钥的节点方可获得同级或低级的节点间的数据访问权限。此外,在保证安全性的情况下基于不同密钥的使用频率设计了高效的密钥刷新协商协议。采用的主要符号及其定义见表2。

表2 主要符号及其定义

2.2 多级密钥设计

在设计的方案中,密钥种子都是由该WSN中的簇头分发,各个节点收到密钥种子后,使用基于哈希运算报文认证码(hash-based message authentication code,HMAC)的密钥推导函数(key derivation function,HKDF)生成一系列子密钥,三级分层密钥结构见表3。

如表3所示,第一级密钥种子为seed1,其生成的一系列子密钥用于第一层节点之间的通信。第二级密钥种子为seed2,其生成的一系列子密钥用于第二层节点之间以及第一层与第二层节点之间的通信。第三级密钥种子为seed3,其生成的一系列子密钥用于第三层节点之间以及与其它层节点之间的通信。高等级密钥可以生产低一层密钥,如下式所示

表3 三级分层密钥结构

seedi=HUKi+1(seedi+1)

(1)

这也表明了第一层的节点具有最高的安全级别。根据网络各个阶段密钥的使用频率,只有通信阶段时间最长,因此,本节设计的每个级别密钥包含一个认证密钥AK、一个刷新密钥UK和4个加密密钥EKi,j。 其中,认证密钥AK用于认证阶段,刷新密钥UK用于密钥刷新阶段,加密密钥EKi,j用于正常通信阶段。为了确保密钥的安全性,还需要定期刷新密钥。显然,本方案设计要求高层节点的成本要逐级高于低层节点的成本。

步骤1 簇头加载安全参数ζ,且定义2个具有相同生成元(p1和p)的加法群G0, 2个加法群的阶均为q。

HKDF(seedi)=AKi‖UKi‖EKi.1‖EKi.2‖EKi.3‖EKi.4

(2)

步骤3 {G0,p,p1,H,HKDF,E,D} 为簇头广播的公共参数。随后,分发seed1给S1,seed2分发给S2,seed3分发给S3。

步骤4 S1通过式(2)计算各级密钥。S2通过式(2)计算第二、第三级密钥。S3通过式(2)计算第三级密钥。

2.3 多级密钥刷新协议设计

在下面提到的协议算法中,子密钥的数目可以根据其传感器节点的真实资源限制进行设置。该协议包含两个方案:基础方案(即当前使用的通信加密子密钥EKi,j中的j=4时执行)和增强方案(即当前使用的通信加密子密钥EKi,j中的j=1或2或3执行)。所提多级密钥刷新协议的具体实施步骤如下:

步骤1 如果当前网络使用通信加密子密钥EKi,j中的j为1或2或3,则CT使用HAK1() 为CTRCT、REQsubK和IDCT生成HMAC(·)

HMAC(·)=HAK3(CTRCT‖REQsubK‖IDCT)

(3)

式中:REQsubK表示刷新子密钥时所需的请求对象。

然后,CT需把子密钥刷新请求报文MsgsubK广播给S1、S2、S3,且对计数器CTRCT进行递增操作。当EKi,j对应的j=4时,CT任意挑选一个新的随机数密钥种子seed1并通过式(1)计算出seed2和seed3,然后生成C1,C2,C3和HMAC(·), 如下所示

MsgsubK=MsgsubK(REQsubK‖HMAC(·))

(4)

HMAC(·)=HAK2(CTRCT‖REQK‖C1‖C2‖C3‖IDCT)

(5)

其中,REQK是刷新密钥时所需的请求对象。

然后,CT向S1,S2和S3发送整体密钥刷新请求报文MsgK,且对计数器CTRCT进行递增操作。需要注意的时,C1、C2,C3和MsgK生成方式如下

C1=EUK1(seed1)

(6)

C2=EUK2(seed2)

(7)

C3=EUK3(seed3)

(8)

MsgK=MsgK(REQK‖C1‖C2‖C3‖HMAC(·))

(9)

步骤2 当时接收到MsgsubK报文时,S1,S2和S3采用HAK3() 产生HMAC(·)*, 以便用于CTRCT、REQsubK和IDCT,然后比较分析HMAC(·)*和MsgsubK中的HMAC(·)。

所提多级密钥刷新协议的伪代码见表4。

表4 多级密钥刷新协议的伪代码

3 实验仿真与结果分析

为了验证所提方案的性能,采用MATLAB软件和NS2软件进行仿真。实验平台为Windows 10操作系统,CPU为英特尔I7处理器,8 GB内存,仿真环境为Matlab7.8。仿真环境主要参数见表5。

表5 仿真环境参数

3.1 性能分析

(1)连通性与可扩展性

本方案中每层节点之间都有相应级别的密钥,簇头与第一层节点、第一层节点之间、第一层与第二层节点之间,第二层节点之间、第二层与第三层节点之间、第三层节点之间都建立了认证阶段、密钥刷新阶段、正常通信阶段的密钥,因此,网络连通性近似等于1。本方案中,若有节点加入,只需簇头和其进行协商当前使用的子密钥即可。若有节点离开,簇头会执行基础型方案。因此,本方案满足WSN可扩展性。

(2)资源开销

传感器节点的资源开销是指通信开销、存储开销和计算开销。本方案中,密钥刷新阶段的通信复杂度与节点个数的规模无关,只需簇头进行广播刷新,因此,通信复杂度为O(1)。

本方案中,簇头需要保存每个节点的身份标识ID、公钥PKsensori以及每层的子密钥,则其存储复杂度是O(N)。 第n层的节点需要保存n+1层及以上的子密钥,则其存储复杂度为O(N)。

在本方案中,簇头的计算开销主要分为两种情况,基础方案中是整体更换所有子密钥,需要加密3次,哈希3次;增强方案中是更换当前通信子密钥,需要哈希一次。假设一共分为m层,第n层节点的计算开销也分为两种,基础方案中是整个更换所有子密钥,需要计算解密一次,哈希m-n+1次;增强方案中是更换当前通信子密钥,每层只需哈希一次。可以看出,基础方案中的计算开销要比第一种小的很多。

(3)性能比较

使用NS-2软件进行仿真,节点部署分布区域为400m×400m,采用无线通道、路由选择采用LEACH协议、MAC层协议使用IEEE 802.15.4,加解密过程中使用AES-128算法,HMAC执行过程中则使用SHA-256算法。通过Keil MDK5编写本方案所需代码并用调试器ST-LINK V2烧写到ARM Cortex-M3开发板中,分析了不同时钟频率设置时本方案加解密的执行效率,如图3所示。

图3 执行效率分析

从通信开销、存储开销和计算开销3个方面与HCGKM和LWKM进行实验对比,如图4~图6和表6所示,其中E为加密,D为解密,h为哈希,L为节点数量。

图4 通信开销对比

从图4和表6可看出,本方案的通信开销最低,因为只需要簇头广播1个数据包,LWKM方案中需要广播2个数据包,HCGKM方案需要发送4个数据包。因此,本方案在WSN中通信成本远低于其它方案。

从图5、图6和表6可看出,与LWKM方案相比,本方案存储开销略高,但是本方案将密钥种子生产了一系列子密钥,定期刷新通信子密钥,密钥刷新阶段并没有密钥参与到通信数据包中,只有一个与密钥无关的哈希值,减少了密钥刷新阶段中密钥的泄露风险。与HCGKM相比,本方案和LWKM方案在存储开销方面较有优势。在密钥结构方面,本方案使用了3种子密钥,其中正常通信子密钥为4个,这是因为正常通信阶段占整个节点通信时间是最长的,其次就是密钥刷新阶段和认证阶段,如果仅仅设有一个对称的通信加密密钥,那么在密钥刷新阶段就需要刷新认证密钥和密钥刷新密钥,导致认证密钥和密钥刷新密钥的使用浪费,因此,设置更多的正常通信加密子密钥是合理也是高效的。而在LWKM方案和HCGKM方案中,未设有认证密钥,并且LWKM方案的密钥刷新密钥始终为1个,不做刷新。若密钥刷新密钥被非法获取,则所有更换的新密钥也会被非法获取,降低了安全性。平均时延对比如图7所示。

图5 簇头节点的密钥存储开销对比

图6 簇内节点的密钥存储开销对比

表6 性能对比

图7 平均时延对比

从图7和表6可看出,与LWKM方案相比,本文基础方案每个节点的执行协议的平均时延略高一些,均在6 ms以下。但是增强方案比其具有更低的时延,均在2 ms以下,相比LWKM方案的平均时延降低了约56%。HCGKM方案中的计算开销与节点数量L有关,因此,本文设置其L=10,并与其对比,可以看出,HCGKM方案在节点规模较大时,其每个节点的执行协议的平均时延呈线性增长。本文中执行一次基础方案加上3次增强方案相当于执行4次其它方案,也就是说本方案的平均计算开销为 (3E+D+12h)/4。 若节点数量规模过大,本方案的计算开销将远低于HCGKM方案。尽管LWKM方案也降低了通信开销,但是其采用椭圆曲线上的点加运算与点乘运算,不仅计算时间有所增加,而且在密钥刷新阶段时没有满足WSN安全需求,无法抵抗中间人攻击,未满足数据完整性,也未能抵抗重放攻击。因此,本方案的计算开销在不失安全性的情况下比其它方案更有优势。

3.2 安全性分析

对所提方案进行以下方面的分析:

(1)机密性。在方案系统初始化中,各个节点都有相应的公钥私钥,并且在认证阶段、通信阶段、密钥刷新阶段都有着相应的密钥,其中密钥刷新阶段的密钥种子并未暴露出来。因此,攻击者无法通过密文得知敏感或隐私信息。

(2)完整性与认证性。所设计方案使用基于密钥的哈希函数来实现报文的完整性,从而抵抗了网络中的恶意篡改。此外,利用HK() 函数结合计数器CTRx和身份IDx,使得黑客无法假冒合法的报文信息。

综上所述,本方案具有一定的优势,尤其是增强方案,可降低密钥刷新阶段的密钥泄露风险,具有很高的安全性,能够适应大规模尤其是半开放式半封闭式环境中的网络。

4 结束语

针对WSN中密钥安全及其密钥刷新效率问题,本文设计了一种基于节点层次的多级密钥,依据层次分配低到高等级的密钥,保证了只有高级密钥的节点方可获得同级或低级的节点间的数据访问权限。此外,本文在保证安全性的情况下基于不同密钥的使用频率设计了高效的密钥刷新协商协议。在未来的研究工作中,将针对网络层中的Sybil攻击、虚假路由信息攻击、Wormholes攻击等安全问题进行下一步研究。

猜你喜欢

哈希密钥加密
一种新型离散忆阻混沌系统及其图像加密应用
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
密码系统中密钥的状态与保护*
文件哈希值处理一条龙
TPM 2.0密钥迁移协议研究
加密与解密
DES 对称加密和解密算法的安全性应用