电力物联网中基于多跳网络的密钥管理方案
2020-05-06杨凡凡肖诗意
杨凡凡,肖诗意,2
(1.国网安徽省电力有限公司安庆供电公司,安徽 安庆 246003;2.湖北工业大学 电气与电子工程学院,武汉 430068)
0 引言
电力物联网通过安装大量感知设备、智能终端等形成感知末梢网络,将信息空间和物理空间紧密耦合,组成二元异构复合系统[1]。这些感知末梢网络处于信息物理耦合界面,使原本相对封闭、专业、安全的电力工控系统不断开放,生产控制网和管理网常态化双向信息交互,生产端、研发端、管理端、消费端都可以访问底层系统,使得利用感知末梢节点脆弱性进行信息窃听、病毒和木马注入等安全威胁变得更加严峻[2]。输电线路在线监测设备的接入是电力物联网建设中的重要组成部分,主要用于提升解决电网输电线路应对冰灾、暴风、雪灾等大规模自然灾害以及人为破坏的能力。为了减少输电设备事故,实现输电线路的可靠在线监测,线路信息采集系统应用输电线状态检测传感器的过程中应安全可靠[3]。输电线路在线监测系统中的密钥管理机制是路由协议、能量管理、安全定位、数据融合等协议的基础之一,也是保证输电线路多维感知、信息采集安全和实现可靠监测的重要保障[4]。
文献[5]提出了减轻密钥管理所需计算和通信负荷的分层密钥分配方法,论述了密钥的生成、更新、销毁与分配等内容,但该方案安全性分析较少。文献[6]针对AMI(高级量测体系)中WSNs(“多跳”无线传感器网络)的网络安全,提出了一种基于AMI 中不同信息传输方式而设计的ECC(椭圆曲线密码)密钥管理方案。该方案论述了多播通信网络密钥的建立、分发和更新过程,单播通信链路密钥和椭圆曲线的选取等过程。文献[7]提出了一种基于改进NSSK 协议的密钥管理方案,分析该方案的抗中间人攻击性、前向和后向安全性、抗重放攻击性、密钥安全性、抗伪造攻击性、运算和传输时间开销。文献[8]介绍了一种在PKI(公钥基础设施)密钥管理基础上,对密钥初始认证、更新和生成等环节做优化,但该方法运算量较大。文献[9]介绍了一种基于组身份机制实现大量参与成员的密钥分配和管理系统,但算法实现较为繁琐。文献[10]提出了一种采用基于椭圆形曲线算法的公钥,它能满足各智能体间的对称密钥交换,对称密钥采用Needham-Schroeder认证方法。文献[11]提出了一种基于二进制树的广播和多播通信的可扩展密钥管理方法,实现电力装备的密钥共享。
本文结合输电线路通信特点,针对WSNs 的安全,提出了一种电力物联网中基于多跳网络的输电线路在线监测密钥管理方案,并对其安全性和性能进行分析。
1 输电线路多维感知网络架构
为了避免输电线路各类传感器传输监测信息时丢失信息,在无线传输网络中采用多跳组网方案,使网络具备更远的信息传输距离,实现连接传感网基站功能。可以将每个杆塔看成一个WSNs的分簇,通过多跳方式传输信息,实现全过程信息采集[12]。
在电力物联网的各种应用中,部署了大量的WSNs 节点,来监控环境、设备等各种对象。但是因为WSNs 的计算能力有限、能量低、存储空间小以及开发的通信信道等,故而面临各种攻击,一旦敌人攻破信息安全系统,就会通过窃听、篡改信息或者远程控制来实现对电力系统的干扰和攻击[13]。因此,无线传感器网络需要进行信息安全保护。其中,有些安全保护算法关注于密钥管理的局部。Banihashemian 等设计LDK算法。该算法采用混合网络架构,即网络中包含两种节点:
(1)锚节点具有较高能力(高能量、高计算能力、大存储空间等),可以调控通信半径来控制通信范围。锚节点凭借其能力,在网络中充当簇头,来生成和管理。
(2)普通节点是组成网络的主要成员。LDK协议利用混合WSN 建立层次化传感网,锚节点作为每个簇的簇头,对整个簇进行管理。
一旦簇形成,锚节点通过不同的位置信息产生一系列密钥。同时,邻居节点通过交换密钥信息生成节点间公共密钥,建立安全通信链路。但是,由于LDK 协议在建立密钥系统过程中需要发送大量的信息进行公共密钥发现等,会消耗大量能量;同时,由于初期数据包交互属于明文,敌方能够通过偷听数据交换包获取部分密钥信息,这样就带来安全隐患[14]。
本文采用了性能较好的分簇的WSNs,并设计了一种新的层次化的密钥协议HMKMP。和以往的工作有所不同,本文的解决方案不需要混合的网络模型,即不需要特殊的高能量节点就能完成整个密钥系统的部署和运行,这使得HMKMP 更适合WSNs 的要求,具有更好的可行性。
HMKMP 协议采用分簇的网络架构。首先,在簇的形成过程中,计算出簇头到每个簇成员的跳数,并用数据存活时间TTL 控制簇的规模,同时减少消息传播,TTL 是数据包在无线传感器网络中可以转发的最大跳数。这里,利用TTL 及一定数量的随机数作为密钥系统的基础参数。在密钥生成和部署中,处于不同的跳范围内的节点可以获得不同的密钥。另外,当簇头进行重选时,由于新的簇头引起跳数的变化,因此将重新进行密钥的分配。为了保证WSNs 的安全并考虑网络的生存周期,本文将依据一定的条件,参照LEACH 等分簇算法对簇进行重新组织,并重新更新密钥系统,依据新的跳数生成新的密钥来替换过时密钥。
HMKMP 具有以下的优势:
(1)密钥系统局域化。HMKMP 利用层次化WSNs 架构,对网络建立多个分簇,使得密钥系统局域化。因此,即使节点被敌方捕获和解密,也不会威胁到整个网络。
(2)能量损耗低。HMKMP 协议在簇的形成过程中计算跳数,不需要额外传输信息,因此减少了能耗损失。
(3)与LDK 等协议不同,HMKMP 协议采用了普通的WSNs 架构,不需要特殊节点加入,因此具有更好的可用性。
2 网络模型
在输电设备的多维感知中,可以用每个杆塔传感器集合为单元,形成以杆塔为综合结点的多跳传输模式的线性延长网络架构[15]。对其拓扑一般化,可以看成如图1 所示的网络架构。由于WSNs 这些特点的存在,导致节点能量资源、带宽和运算性能等资源都受限,考虑WSNs 是能量敏感的网络,本文采用层次化的网络架构[16]。
图1 多跳传输通信架构
设无线传感器网络G,由簇组成,即G=C1∪C2∪…∪Cm,且Ci∩Cj=∅,i≠j,其中Ci代表某个网络中的一个分簇,由簇头CH(或CHi)及成员节点组成。在每一个簇里面,簇头CH 负责收集并处理从簇内其他成员节点获取的信息,然后将处理的结果转发给BS(基站)[17]。通常,在一个簇里面,成员节点要经过多个分簇将信息传送给簇头,即设对任意成员节点∈Ci,与簇头CH进行通信要经过多跳,如图2 所示。
本文假设m 个无线传感器节点随机、均匀地部署在某个区域,该传感器网络具有以下性质:
(1)无线传感器网络为静态网络,节点部署后不再移动。
(2)网络中的每个节点具有唯一的身份ID。
(3)基站建在范围外的某个固定地方,具有强大的能量和计算能力。
(4)所有传感器节点是同构的,即具有相同的运算能力和初始能量等。
(5)如果一个节点被敌方捕获,所有节点的信息将暴露失密,包括密钥等。
图2 分簇架构的无线传感器网络
(6)每个传感器属于且只能属于一个簇。
3 HMKMP 密钥管理方案
3.1 选举簇头
为了增加能效及方便管理,本文采用分簇协议建立层次化网络架构。分簇协议一般会把WSNs 节点集划分为多个子集,每个子集为一个簇,其中一个簇头节点负责每个簇全局路由,其他节点通过簇头来发送和接收数据[18]。首先,依据簇头选举算法,节点可以自己决定是否申请成为一个候选簇头CH。然后,该节点向网络里面广播选举消息,其他节点会根据自身情况加入某个簇中。
3.2 簇的形成
簇头一旦确定,簇头节点将广播一个beacon信息号召其他节点加入簇。每个接到消息的节点根据一定的算法(如距离、能量等)加入相关的簇,并进行标记并失去加入另一个簇的权利,保证不存在任何一个节点同时加入两个或两个以上的簇中,本质上属于成员端控制。当簇头CH 发布beacon 信息的时候,该信息通过初始密钥K 进行加密,内容包含簇头节点的ID;同时,通过TTL来限制簇的大小,同时减少消息的传播,依据TTL 的值,算出跳数。依据TTL 不同的值,生成系列不同的随机数数据集N,每个随机数数据集的元素数量根据L 的不同而不同,如当TTL=3时,传感器将获得4 个(TTL+1)随机数,即N={n1,n2,n3,n4},如图3 所示,为保持连通性和增加公共密钥,本文产生Z+1 个随机变量。随着TTL 逐渐减小到0,beacon 信息将被删除。
图3 簇头的不同跳范围(TTL=3)
因此,如上所述,根据不同的TTL,节点会收到不同的随机数数据集,如式(1)所示。同时,处于不同跳数范围的节点将因此生成不同的密钥。
3.3 密钥生成阶段
设vj为成员节点,vj≠CH,vj∈Ci。当beacon消息发送到成员节点后,成员节点选择加入簇Ci,计算TTL 并通过ACK 消息把IDvj和TTLvj发送给感兴趣的簇,获取簇头到该节点的跳数。
在beacon 消息依次传输给不同跳的节点时,接到消息的成员节点vj用初始密钥解密beacon消息并获得簇头IDCH 及随机数数据集Ni。基于这些数据,节点vj通过哈希函数可以计算出候选密钥序列,依据随机数据集生成自身的密钥集合Ki:
这里,f()为单向哈希函数,其中kI为初始密钥,在整个网络部署之前,每个传感节点将预置一个初始密钥,用来保护分簇形成阶段的通信安全;ni为随机数集合N 的第i 个随机数,自动生成。各节点最初密钥产生的过程如图4 所示。
图4 初始密钥产生过程
各个节点完成密钥生成之后,首先销毁公共初始密钥KI,然后根据节点所在跳范围,不同节点vj密钥存储情况如表1 所示。
表1 不同跳范围节点密钥存储情况(TTL=3)
由表1 可见,同一簇里面相邻跳的节点具有相同的密钥,从簇的外围向内层逐层扩展,单向递增,通常处于外围节点的密钥集合是内层节点密钥的子集。
3.4 公共密钥发现
为了保证节点间正常通信,每个成员节点必须与相邻节点建立安全链接。因此,相邻节点必须由公共密钥实现消息的正常加解密。根据密钥生成算法,由于处于相同跳范围里面的节点会收到相同的beacon 消息,因此会产生相同的候选密钥,也就是说,地理上相邻的同一分簇的节点具有部分相同的候选密钥,如图5 所示。
图5 簇头节点的随机数集合分配(TTL=3)
如果一个节点能收到消息(IDCH,Ni,TTLi)ki,也就说明这个节点同时会收到消息(IDCH,Nj,TTLj)kj,这里,TTLi>TTLj(i<j)。因为在物理上,第j 跳范围是覆盖第i 跳范围的,因此邻近簇头的节点具有比远离簇头节点更多的密钥。设任意成员节点vj产生的密钥列表为Lj,则:
根据密钥生成原则,设任意簇内两个节点vi和vj(i<j),其公用密钥集合为S 即可得到:
由于簇头采集所有节点的信息,因此簇头必须有能力解密所有来自成员节点的消息。但是,如果每个成员都汇报自己的密钥,将大大增加网络的负担。由于随机数集合是由簇头发送出去的,簇头可以通过计算来获取其他所有节点的密钥。另一方面,由于密钥是通过跳数控制的,故同一个簇里面的节点可以互联。根据式(5),本文可以获取任意两个节点vi和vj间的路由密钥。
由式(5)可知,簇内任何节点之间都可以进行有效通信。根据随机数据集合的特点,由于随机数总是比TTL 多1,因此任意两个簇内节点至少可以有一个公共密钥(注:最后一个随机数作为簇密钥)。
3.5 簇密钥
簇密钥主要用于保护簇头节点CH 与簇内成员节点进行通信,同时也用于下轮新密钥的产生。由于在最初发送随机数据集合时,发送了TTL+1 个随机数,集合中最后一个随机数分配到簇内每一个节点,可以用于簇密钥的产生,如图6 所示。
图6 HMKMP 的簇密钥
3.6 密钥再生
为了延长整个网络生命周期,须在一定周期内更换簇头,以平衡网络节点的能量消耗。同时,为了防止因长时间使用同种密钥增加泄密概率,也需要更新密钥。当簇头CH 接收到一定数量的加密信息后(不超过22k/3,k 代表密钥长度),密钥将不再安全。因此,需要定期重新分簇,以增加网络安全和平衡能耗,延长网络生命周期。
在重选簇头的过程中,依照初始化阶段进行密钥更新,重新建立新簇,当节点宣布自己为簇头后,将重新召集新的分簇成员并计算跳数。
如图7 所示,当新的簇头确定后,簇头和成员节点的相对位置和跳数都发生了变化,随机数集合也发生了变化,从而会生成新的密钥及密钥系统。
图7 重新选择簇头
4 性能及安全性分析
4.1 性能分析
为了评估HMKMP 性能,本文利用Visual C++和MATLAB 对HMKMP 进行模拟,并对照相关工作进行性能评估。本文模拟网络中有100 个节点,根据HMKMP 协议要求,利用ECDG(多跳分簇协议)作为网络架构。模拟参数如表2 所示。
路由协议是影响节点能源损耗最重要的的因素之一[19]。首先,本文比较一下HMKMP 和LDK的能耗情况。图8 给出了HMKMP 和LDK 在密钥架构上的能耗比较。从图8 中可以看到,对于LDK 协议,随着跳数的增加,密钥形成时传输的消息也相应增多,亦即能量消耗增多。从曲线的平滑度上看,对于锚节点,由于其具有更多的能力(如高能量、可调发射范围等),因此可以通过增强能量水平来形成分簇及密钥。
表2 模拟参数
但是,LDK 协议需要传输更多的消息来产生密钥,对于HMKMP 协议来说,随着跳数的增加,也需要増加信息转发的数量来形成分簇和产生密钥。但是,由于部分密钥参数包含在ACK 消息中,HMKMP 需要较少的信息就可以完成。如图8所示,HMKMP 协议仅需要LDK 能量的50%即能形成密钥系统。但是,由于噪音和衰减问题,当跳数超过5 时,能耗就显得比较明显。
图8 不同跳数的能量消耗比
因此,在网络运行的数据传输阶段,簇内成员要将自己的密钥信息发送给簇头节点,然后簇头节点将收到的密钥加以处理。为了减少节点能量的消耗,在进行远距离数据传输时一般采用多跳的方式。
在相同的仿真环境下,HMKMP 和LDK 的连通性比较如图9 所示。可以观察到更多的跳数(能量水平)会降低网络的连通度。由于LDK 协议支持同一个簇,这使得所有成员节点有可能相互沟通。然而,随着跳数的增加,覆盖率变大,由于噪音、衰减和涉及的节点指数级的增加,这使得它难以转发分组。当跳数超过3 时,QoS 小于90%。对于HMKMP,它也面临着同样的问题,但其连通度优于LDK。处于同一个锚节点范围内的节点可能处于不同的分簇中,当能量水平增加时,不确定性也增加,从而降低了网络连接度。
图9 HMKMP 与LDK 的网络连通性比较
图10 显示了在不同的TTL 下所得到的不同的理想密钥状况。对于HMKMP 协议,可以通过调整TTL 的值来平衡簇的大小。图10 表明,TTL的值可以影响网络中簇的密度和簇头的数量。本文取TTL 的值分别为3,4,5 时,簇头将是30%,20%,10%左右。从图10 还可以得出这样的结论:随着TTL 的增加,公共密钥的数量也在增加。
图10 节点的预期密钥数量
4.2 安全性分析
与已有相关研究相比,HMKMP 通过局域化密钥管理,实现了网络运行状态下的安全保护;同时利用动态密钥管理方式实现了密钥的更新。由于采用了层次化的网络架构,因此可以实现类似LEACH 模式下与网络节点之间沟通的一跳模式,也可以实现大规模的、多跳分簇的安全密钥管理。在分簇形成阶段,簇头通过计算到各个成员节点的跳数,获取不同跳分区的距离,同时利用beacon 消息进行随机数据集合的广播。成员节点在接收到相关消息时,利用跳数和随机数作为参数,通过单向哈希函数生成密钥。根据不同跳数,每个簇被划分为多个安全带,如图7 所示。处于不同安全带里面的节点会获得不同的密钥,同时,又保证了相邻节点具有足够量的公共密钥,保证了网络的连通性和通信的有效性。
簇头邻近的节点具有更多的密钥,而距离簇头越远,拥有的密钥越少。也就是说,对近端节点的信息远端节点可能无法解密,这种半单向的传输方式一方面进一步保护了信息传输安全,另一方面也减少了消息的传输。因此HMKMP 协议更适合于信息采集类的无线传感器网络。这种半单向的安全模式有效阻止了偷窥攻击、选择转发攻击、DoS 攻击以及洪泛攻击等,具体见表3。
表3 密钥安全性分析
为保证整个簇的通信,簇头利用每个随机数据集合的末位随机数作为簇密钥的种子与簇内所有节点共享(包括簇头)。基于簇头的多轮选择以及跳数和随机数据集合的再分配,可以实现密钥的更新。与LDK 协议相比,HMKMP 协议减少了对特殊节点的依赖,全部节点为普通节点,使得HMKMP 协议更具有可行性。同时,HMKMP 协议利用簇的建立过程实现密钥系统的同步建立,减少了额外的能量消耗,使得该协议在能耗上更轻量级。
另外,在连通性上,由于HMKMP 具有不同跳范围的覆盖性,即当第j 和第k(j<k≤TTL)跳范围的节点都接到beacon 消息时,根据二项分布,连通的可行性为:
根据式(6),本文可以通过增加TTL 的值来増加连通性,即增加两个节点间的公共密钥数量。
5 结语
本文提出了一个基于层次化WSNs 架构的密钥管理协议HMKMP,以提高多跳网络的安全性和生存期限。不同于以往的研究成果,本文采用了层次化网络的拓扑架构,但不针对混合节点的网络。与其他分簇的安全解决方案不同,HMKMP将密钥管理局域化;在不同的一跳范围内在分簇中生成新的密钥。此外,基于再分簇机制下重新生成密钥,本方案具有能耗低、可行性高的特点。同时,HMKMP 可以调整TTL 控制簇大小和公共密钥支撑节点的连通性。