智能配电网中具有隐私保护的数据安全认证方案*

2015-02-21 07:50李晋国
电子技术应用 2015年12期
关键词:子树屏蔽配电网

徐 琳,温 蜜,李晋国

(上海电力学院 计算机科学与技术学院,上海 200090)

0 引言

智能电网,又称为知识型电网或者现代电网,是将现代先进的传感与测量技术、信息通信技术、控制技术和原有的输配电基础设施高度集成而形成的新型电网。现代智能电网需要实现电网的可靠、安全、经济、高效以及环境友好型运行,因而受到了越来越多的关注。智能配电网作为电力“发、输、调、变、配、用”的重要环节之一,是电网对用户信息进行监测以达到智能化调配的主要平台[1]。众所周知,人为监视和控制每个用户的用电信息和电网设备状态是不现实的。由于传感器具有成本低、自组织性、自愈能力强等特点,已被广泛应用到智能配电网的用电信息自动采集系统中。无线传感器网络就成为了智能配电网中最主要的用户端数据采集方式。而正因为诸如无线传感器网络等大量智能采集终端的广泛应用和接入,使智能配电网中数据的完整性、保密性、抗攻击性以及隐私保护等面临着许多新的挑战[2,3]。

目前,国内外对无线传感器网络数据传输的完整性、保密性、抗攻击性等问题进行了一定的研究,提出了各种不同的广播认证协议。文献[4-6]提出了μTESLA广播认证协议并对其进行了一系列的改进。文献[7]提出一种RSA算法,因其高保密性被人们运用到智能电网领域。文献[8-9]采用了一种基于Merkle树的广播认证协议。文献[10]提出了将Merkle树认证协议运用到智能电网的方案。这些认证协议都没有在安全认证的情况下考虑智能配电网中的用户数据需要有效的隐私保护的需求。而用户用电信息、用电规律等隐私的泄露将导致入室盗窃等危害人们生活安全的事件发生。因此,本文对智能配电网中具有隐私保护的数据安全认证协议做了进一步研究,提出了三种解决方案。

1 基本方案——带屏蔽参数的数据传输

传感器节点根据工作模式设置,其对用电信息的采集频率可以达到几分钟一次。这些用户隐私的泄露必将给用户的生活安全带来极大的困扰。针对这一问题,本文通过在采集的数据上加屏蔽参数后传输来保护真实的采集数据。

假设某一个无线网络区域包含n个用户,每个用户的传感器节点都同时给中心节点发送数据包,且没有丢包情况。每个用户对应一个传感器节点,网络中的传感器节点 ID记为 S1,S2,…,Sn。具体实现步骤如下:

第一步:随机生成一组数据(R1,R2…Rn)作为屏蔽参数,并且保证Ri=0。将这些Ri值随机分发到n个节点中。

第二步:当传感器节点Si采集到数据Ki时就自动加上屏蔽参数Ri作为传输数据,此时发送节点发送的数据包为{Ki+Ri},如图 1所示。

图1 带屏蔽参数的数据传输

此方案大大增加了数据传输的安全性,实现了节点信息的保护。但是当恶意攻击者伪造或者篡改节点数据,接收者也会正常接收信息,从而影响了数据的准确性。 因此,在该方法的基础上,本文又增加了Merkle树认证协议,通过该协议来对传输数据的安全性、完整性进行认证。

2 增强方案——带屏蔽参数的数据认证

传统的Merkle树协议能有效地抵抗多种网络攻击,是运用较多的一种传感器网络安全传输协议。但它只能检测接收的数据是否被更改,而没有办法在数据传输的过程中对其进行保护。因此将数据屏蔽与认证协议结合起来,既可以保护数据不被非法用户监听到,又可以认证其准确性和完整性。

2.1 利用屏蔽参数构建Merkle树

第一步:假设一个区域内的节点个数为8,节点ID记为 S1,S2,…,S8,同上一方案,随机选择 8个和为 0的数R1、R2…R8,作为节点的屏蔽参数。同时,选择一个单向Hash函数,为8个发送节点分别计算 Mi=H(Ri),(i=1,2,…,n)。

第二步:将n个Mi作为叶子节点构建一个Merkle树(如图2),其中父节点的值是由两个子节点联合后通过 Hash函数计算而来,即 Mij=H(Mi|Mj)。

第三步:基站向所有节点广播Merkle树根节点的M18值以及每个节点通向Merkle树根节点的所有兄弟节点的值。如图2中S1收到的初始化参数包为根节点M18以及兄弟节点{M1,M2,M34,M58}。

图2 八个发送节点组成的Merkle参数分布树

2.2 节点数据的采集、发送及验证

第一步:节点采集相应的数据Ki,采集完成后会自动加上该节点所对应的屏蔽参数Ri。

第二步:每个发送节点携带一个证书Parai,证书包含这个节点的初始化参数以及该节点到根节点路径上所有兄弟节点的M值,例如S1节点所发数据包为Para1={M1,M2,M34,M58},当其发送消息时就将该证书附在消息的后面发送给与其通信的接收节点,即发送{(Ki+Ri)||Parai}。

第三步:接收节点接收到发送节点的证书后,经过一系列Hash计算,将计算结果与预先存储的根节点的M值进行比较,如果一致,则通过认证。例如,控制中心的聚集节点接收到Para1后,计算H(H(H(H(M1)|M2)|M34)|M58)是否等于M18,如果相等则认证通过,否则丢弃该数据包。

第四步:控制中心的接收节点收到所有发送节点的数据后将所有数据求和,即为该区域的监测数据的总和。

该方法的不足是只能对某一个区域的数据进行求和与认证,当节点数目大量增加以后,数据传输所需要的计算与通信开销都会大大增加,因此本文又提出了带屏蔽参数的多级Merkle树方案。

3 扩展方案——带屏蔽参数的多级Merkle树认证方案

此方案将整个数据采集区域分成多个子区域,每个子区域都含有一定数量的节点,簇头即为每个子区域的聚集结点。首先采用带屏蔽参数的Merkle树协议在每个子区域都构建一个Merkle子树,并将数据传到簇头。然后每个区域的簇头作为叶子节点构成一个新的Merkle树,将数据传给二级总的聚集结点。如图3所示为多级Merkle树结构图。下面介绍具体实现方法。

3.1 一级Merkle子树初始化参数的分配及认证过程

第一步:Merkle树的生成与增强方案中带认证的数据屏蔽传输方案相同,每一个子树都生成一组屏蔽参数r1、r2…rn。初始化时一级聚集节点向每一个节点发送该节点的屏蔽参数的值以及该节点到Merkle树根节点的所有兄弟节点的值,即为认证证书。每个发送节点发送消息时都携带自己的认证证书,例如r1向接收节点发送消息时所加证书为{m1,m2,m34,m58}。

图3 多级Merkle树

第二步:一级聚集节点接收到r1的数据包时就会对其进行认证,认证方法与增强方案中Merkle树的认证方法相同,如果认证通过则存储该数据。最后求该子树所在区域的所有节点数据的总和,即为所需要的数据。

3.2 二级Merkle树初始化参数分配及认证过程

第一步:每一个子区域的簇头节点作为叶子节点再生成一个带屏蔽参数的 Merkle树,如图3中R1、R2…R8即为簇头节点的屏蔽参数,初始化过程与一级Merkle子树相同。

第二步:当一级的簇头节点都接收到有用数据后再通过带屏蔽参数的Merkle树认证方法将数据发送到二级总聚集节点。

一级聚集节点与二级聚集节点一般都是由可靠的服务器担任,因此可以将由节点组成的一级Merkle子树存储到一级聚集节点上,将由簇头组成的二级Merkle树存储到二级聚集节点上。聚集节点在接收到数据以后减去每个节点所对应的屏蔽参数就可以计算出每个节点的原始数据。这样既采集到了局部区域的有用数据,也采集到了总的有用数据。在整个二级Merkle树认证过程中,如果有n个子树,就有 n+1组屏蔽参数,大大提高了整个系统的安全性。

图4为多级传输的屏蔽参数分配方案。在带屏蔽参数的多级Merkle树协议中,当有新用户加入时,只需要更新该用户所在小区域的子树认证系统即可,不影响其他部分,这使该方案的可扩展性得到增强。

图4 带屏蔽参数的多级数据传输方案

4 性能分析

4.1 安全性分析

本节从节点抗俘获能力、抗DOS攻击能力、有无隐私保护功能、能否立即认证以及能否随机广播等方面,将μTESLA方案、传统Merkle树协议以及RSA算法与本文提出的三种方案进行了比较。通过表1可以看到,μTESLA协议认证有延迟,抗DOS攻击能力差,传统的Merkle树没有隐私保护功能。

4.2 通信开销分析

在基本的Merkle树协议中,Merkle树是通过叶子节点之间进行一系列Hash计算生成的,每一个节点值都是由Hash算法输出所得。假设一个基本的Merkle树有n个叶子节点,Hash算法均采用MD5算法,则每一个节点随机屏蔽参数的Hash值以及各兄弟节点的值均为128 bit。

初始化时中心节点分发给叶子节点的是该节点的认证证书和该节点的屏蔽参数,只是增加了中心节点的计算开销,通信开销比信息采集时多了一个根节点的值。本节主要针对两级Merkle树方案进行分析。在传统的Merkle树协议中,用户发送数据包给接收节点,该数据包包含整个Merkle树中发送节点到根节点的所有兄弟节点的值。而本文带屏蔽参数的多级Merkle树认证方案将节点分区域,通信时只需要发送子树的认证包。在RSA协议中,每个节点都需要发送RSA签名到接收节点,传统的RSA密钥长度为1 024 bit。本文通过MATLAB对三种方案的通信开销进行了仿真分析,如图5所示。

由图5可知,在节点数目较小时,3种方案的通信开销相差不大,但超过500以后,本文带屏蔽参数的多级Merkle树的认证方案的开销会趋于平缓且比传统Merkle树节省开销,而RSA协议的通信开销还在呈线性增加。因此在大量节点网络中,本协议具有一定的实用性。

表1 安全性分析

图5 通信开销对比图

4.3 计算开销分析

这里通过计算时间的长短来分析计算开销的大小。通过文献[6]可知执行一次Hash函数的时间为0.000 092 ms,执行一次 RSA签名验证需要 0.1 ms,而执行整个RSA协议则需要2.25 ms。在基本Merkle树协议中,n个节点的Merkle树,在验证时就需要进行n/4-1次Hash计算。在本文带屏蔽参数的多级Merkle树认证方案中,两级验证只需要计算子树中的根节点的值,其开销比传统Merkle树小。而RSA协议执行一次的时间就是Hash时间的一万倍,因此其计算开销远远大于传统Merkle树方案与本文带屏蔽参数的多级Merkle树认证方案。

通过上述分析可以看到,本文带屏蔽参数的多级Merkle树认证协议无论是通信开销还是计算开销都小于传统Merkle树方案与RSA方案,并且集合了Merkle树协议和带屏蔽参数的认证协议,具有通信和计算开销小、安全性和保密性高等优点,符合智能电网信息采集系统的要求。虽然本方案不能随机广播,但是其高性能足够让用户在智能配电网信息采集系统中选择它。

5 结论

本文提出了一种具有隐私保护的数据认证方案。该方案采用的是带屏蔽参数的Merkle树认证协议,既可以认证接收数据的可靠性和完整性,又可以对数据进行保护,从而有效解决了智能配电网信息采集系统中的信息安全问题。同时本文将基本协议优化为多级带屏蔽参数的Merkle树协议,有效解决了大量节点认证时存储和通信开销太大的问题,更符合智能电网的安全性认证要求。分析结果也表明,本协议在性能与开销方面都具有一定的优越性。

[1]刘振亚.智能电网技术[M].北京:中国电力出版社,2010.

[2]刘雪艳,张强,李战明.智能电网信息安全研究综述[J].电力信息与通信技术,2014,12(4):56-60.

[3]LIU D,NING P,ZHU S,et al.Practical broadcast authentication in sensor networks[C].In Proc.MobiQuitous,Washington DC,2005:118-132.

[4]PERRIG A,CANETTI R,TYGAR J D,et al.The TESLA broadcast authentication protocol[J].RSA CryptoBytes,2002,5(2):2-13.

[5]LIU D,NING P.Multi-level μTESLA:Broadcast authentication for distributed sensor networks[J].ACM Transactions in Embedded Computing Systems(TECS),2004,3(4):1-36.

[6]沈玉龙,裴庆祺,马建峰.MMμTESLA:多基站传感器网络广播认证协议[J].计算机学报,2007,30(4):539-546.

[7]Introduction to NISTIR 7628 Guidelines for Smart Grid Cyber Security[S].Nat.Inst.of Standards and Technology,Gaithersburg,MD,USA,2010.

[8]蒋毅,史浩山,赵洪钢.基于分级 Merkle树的无线传感器网络广播认证策略[J].系统仿真学报,2007,19(24):5700-5704.

[9]Li Hongwei,Lu Rongxing,Zhou Liang,et al.An efficient merkle-tree-based authentication scheme for smart grid[J].IEEE Systems Journal,2014,8(2):655-663.

[10]LI Q,CAO G.Multicast authentication in the smart grid with one-time signature[J].IEEE Trans.Smart Grid,2011,2(4):686-696.

猜你喜欢
子树屏蔽配电网
一种新的快速挖掘频繁子树算法
把生活调成“屏蔽模式”
广义书本图的BC-子树计数及渐近密度特性分析*
朋友圈被屏蔽,十二星座怎么看
书本图的BC-子树计数及渐进密度特性分析∗
关于城市10kV配电网自动化实施的探讨
如何屏蔽
基于覆盖模式的频繁子树挖掘方法
几乎最佳屏蔽二进序列偶构造方法
基于IEC61850的配电网数据传输保护机制