基于Merkle哈希树的无线躯体传感器网络安全认证方案

张皓 李杨波 马飞
摘 要: 针对无线躯体传感器网络(WBSN)数据传输的安全性,提出一种融合Merkle哈希树和网络编码的轻量级认证方案。首先,将传感器网络构建成Merkle哈希树结构,只对根节点进行数字签名;然后,在哈希树中选择一个最优层进行网络编码,形成恢复数据包,并将数据包、签名和恢复包发送给接收器;最后,接收器通过密钥对根节点签名进行验证,若存在节点丢失,则根据恢复数据包重建哈希树,从而对数据进行认证。实验结果表明,该方案能够实现对数据的安全认证,且需要较少的网络开销,满足WBSN的性能需求。
关键词: 无线躯体传感器网络; 安全认证; Merkle哈希树; 网络编码
中图分类号: TN915.08?34; TP393 文献标识码: A 文章编号: 1004?373X(2017)03?0065?06
Merkle Hash tree based security authentication scheme for WBSN
ZHANG Hao1, LI Yangbo1, MA Fei2
(1. Department of Computer Science and Technology, Henan Institute of Technology, Xinxiang 453000, China;
2. School of Computer Science, Wuhan University, Wuhan 430072, China)
Abstract: Aiming at the data transmission security of the wireless body sensor network (WBSN), a lightweight authentication scheme based on Merkle Hash tree and network coding is proposed. The sensor network was constructed as the Merkle Hash tree structure for digital signature only for the root node. An optimal layer in the Hash tree is chosen to conduct the network coding, form the recover data packet, and send the data packet, signature and recovery packet to the receiver. The root node signature was verified by the receiver via the key. If the node is missing, the Hash tree will be reconstructed according to the recover data packet to authenticate the data. The experimental results show that the scheme can realize the data security authentication, needs less network overhead, and meets the performance requirement of WBSN.
Keywords: wireless body sensor network; security authentication; Merkle Hash tree; network coding
0 引 言
移動医疗是由可穿戴无线感应节点组成,与手持设备配合使用,使病人在家就能够实现健康监测和治疗,能够大幅削减医疗保健开销。其中,无线躯体传感器网络(Wireless Body Sensor Network,WBSN)起着关键作用,WBSN是基于无线传感器网络(WSN),由采集人体生理参数的穿戴式传感器组成[1]。然而,可穿戴医疗监测设备要融入到医疗保健系统的前提是这些设备产生的数据具有可信性[2]。
文献[3]提出基于公钥算法的实体认证协议,由传感器节点执行RSA或ECC公钥算法的加密和验证签名,由能源充足的基站执行解密和签名完成认证过程。然而应用公钥算法使得协议本身就让节点能量消耗较大。文献[4]通过哈希(Hash)函数运算,并对数据内容进行数字签名。然而,数字签名计算量较大,通常要比对称密钥操作高出两到三个数量级。文献[5]提出一种适用于无线传感器网络基于分簇的Merkle哈希树实体认证协议(CMAS),利用Merkle哈希树的思想,结合网络分簇技术,避免采用公开密钥算法实施数字签名计算量大的问题。
本文提出一种用于无线躯体传感器网络的新型认证方案,结合Merkle哈希树和网络编码技术,发送器根据数据项的哈希表生成哈希树,并只对根节点进行数字签名。接收器沿着认证路径通过反复Hash运算认证数据,直到根节点抵达为止。由于数据包丢失,沿着认证路径的节点可能无法抵达接收器。为此,发送器应用网络编码插入恢复数据包帮助接收器重建认证路径。穿戴式设备仅需要进行不频繁的数据签名(一小时一次),减少了能量消耗,在丢包情况下仍可以认证大部分数据。该方案的主要目标是认证接收到的数据包,即使在数据集发送丢失较多数据包的情况下。
1 系统模型
为了使无线躯体传感器网络应用到人体健康领域,考虑如图1所示的远程健康服务系统基本架构,由不同的设备和多个接入点组成。在家的病人可以通过穿戴无线传感器装置来读他的血压、心电图等。这些数据将周期性地传送到基站(智能手机或PDA),并可以上传到互联网上的卫生服务云端[6]。授权的医生和护士可以直接访问数据库,对病人进行诊断和监测。
在这个过程中,数据的安全性尤为重要,其主要存在两种威胁[7]:
(1) 外部攻击,攻击者可以通过窃听消息,然后伪装成另一个实体,向网络中注入虚假数据;
(2) 内部攻击,合法的用户试图通过他们的手机终端篡改生理数据,或者凭借他们的身份信息登录到云端删除或修改数据文档。为此,本文提出一种基于Merkle哈希树和网络编码的数据认证方案,确保人体医疗数据的安全性。
1.1 哈希树
哈希树可以用来验证数据集,利用Hash计算数据项集上的消息摘要,通过连接操作构建一个树结构来包含整个数据集[8]。一个高度为[h]的哈希树如图2所示,其中[H(i,j)]表示第[i]层第[j]个树节点,最底层为相应数据项的Hash运算,例如,Hash([Dj])中,[Dj]是第[j]个数据项,Hash()为一个弹性冲突Hash函数。每个树内部节点通过Hash运算连接它的子节点,由于Hash函数的单向性,每个节点可以验证它的子节点,包括所包含的数据项。
如果在树的根节点设置一个数字签名,则可以验证所有的数据项。假设数据项和签名的根节点被可靠传输,接收者可以根据这些数据重建树,利用发送方的公钥来验证签名,同时验证所有数据项[9]。
1.2 网络编码
网络编码可以将节点发送数据包进行线性组合来提高网络吞吐量,使接收者可以快速分离信息和重建。
本文在数据包层应用网络编码,每个编码数据包(恢复包)[X]和一组[n]个系数[g1,g2,…,gn]相关:[X=][i=1ngiMi,]其中[M1,M2,…,Mn]为原始数据包。为了成功恢复所有数据,接收者需要所有原始数据包和恢复数据包。
2 提出的安全认证方案
本文方案按照树高度和恢复开销来配置传感器装置,随着感应数据项的增加,在数据项上构建一个哈希树,并且使用传感器的私钥对根节点进行数字签名。同时,发送器设备构建恢复数据包,与恢复开销数目相同。然后,将这些数据项、恢复数据包、签名根作为可用数据进行传输,而树的内部哈希节点是从不传输的。
既然在树中所有数据认证都是基于接收到的签名进行,故假定接收器(基站或者存档式数据库)能可靠地接收签名根节点,也就是使用了可靠的传输协议。然而,数据项与恢复数据包一样,都是非可靠地传输,这就可能会导致丢包。由于数据项被接收,则树可以通过接收器进行重建。在高度[h]的树上(层次由底部向顶部计数),[i]层有[N(i)=2h-i+1]个节点,其中有[l]个被接收到。在此层上有[R(i)]个数据恢复包,其中[k]个被接收到。如果[l+k≥N(i)],则接收器能够完全重建树[i]层,并最终把在树中[i]以上的所有层次(通过连续的拼接和哈希)都恢复[10]。因此,一个数据项的可认证性不再需要接收全部的数据项,而只需要在[i]层具备重建认证路径的能力。
本文方案中,穿戴式传感设备的操作过程如图3所示。
发送器设备操作的详细流程如下:
(1) 引导程序:假定接收器能够访问传感器的公钥。用于编码的线性相关系数采用确定性算法[11]预先计算,两个通信部分在引导阶段进行通信,其中允许的恢复成本为[R(i),]并在树[i]层应用网络编码。
(2) 数据取样、树的构建和数字签名:传感器按照采样频率对数据取样,每一个数据项可能包含若干拼接的样本。哈希树都是并行构建的,数据项一次哈希产生相应树的叶子;然后进行传递和删除,以此节约内存。随着胞叶子成为可用叶子,则它们通过哈希产生父级,之后被丢弃。任何时刻,缓存在传感器设备内存中的内部树节点都不会超过[h]个,同时,树总会保持进行部分構建来降低内存的消耗。对于具有4 096个数据叶子和8 191个内部哈希节点高度为[h=12]的树,发送器根本不必要进行缓冲,但是任何时候都要存储1个数据叶子和12个哈希节点[12]。当计算根节点时,它就会利用可靠的协议进行签字并传输,其中,内部哈希节点不会被传输。
(3) 网络编码:编码是作为累积操作来执行,传感设备为允许恢复数据包[R(i)]维持一个运行的缓冲器。当树节点被累积到恢复数据包中的一部分时,它才能被舍弃掉。当准备好恢复的数据包后,将会被传输。需要注意的是,恢复数据包会在发送器的内存中存储,所以数量不能太多。
接收器设备操作的详细流程如下:
(1) 数据包接收、签名认证和树的重构:接收的数据包会在数据集中进行映射,发送器的公钥用于认证根节点上的签名。从底部往上进行树的重建,树中一些节点将会由于丢失的数据项而缺失。
(2) 网络编码:在[i]层,接收的恢复数据包用于尝试恢复丢失节点。如果在这个层次上所有节点都是可用的,则可以重建更高层次的树。否则,更高层次树中也将会有丢失的节点。
(3) 数据认证:具备到根节点都有完整认证路径的数据项可以通过认证;否则,认证失败。
3 网络编码的最优配置
当恢复数据包[R(i)]在层[i]上发送,同时[R(j)]在树的更高层次[j]([j>i])上发送时,在接收器部分,如果在层[i]上丢失节点的数量比[R(i)]少,所有丢失节点都能够恢复。这样,更高层次就能够完全重建,那么层[j]的恢复数据包就会无用浪费。另外一方面,如果层[i]的丢失节点数目超过了[R(i),]则层次[i]的网络编码就不能恢复任何节点,也将被丢弃。所以,不管哪种情况,其中的一个数据包总会被废弃掉。为了节约资源,本文只考虑对树的一个层次进行网络编码,并提出一种框架来确定所要编码的最优层次[i],达到最大的认证概率。
3.1 认证概率
首先计算接收器能够认证接收数据项[D]的认证概率[Pver。]本文中,设定数据包接收概率为[p](相反地,数据丢失的概率为[1-p]),网络编码成本(恢复数据包数目)为[R],编码的树层为[i]。设定的目标是为了找到具有最大[Pver]的层[i]。模型做了如下简化假设:
(1) 每个数据项和恢复信息都是作为单独的包进行传递的。
(2) 每个包都具有独立同分布(IID)的成功接收概率[p]。
(3) 树的根节点传输是可信赖的,不受制于丢包情况。
(4) 用于恢复的网络编码仅用在树的单个层次上。
认证概率[Pver]对任意的数据包[D]进行计算,过程如图4所示。
定义1:一个树的节点[H(i,j)]当且仅当满足下列条件之一,才可用作为接收器:
(1) 重建成功:对层次[i=1](一个叶子节点),子级数据项[Di]被成功接收,或对[i=2,3,…,h](一个内部树节点,除了根节点之外),子树中的数据项位于[H(i,j),]即从[D(2i,j)]到[D(2i,j-2i+1)]的数据项都被成功接收。
(2) 恢复成功:如果在层次[i]应用了编码,那么层次[i]节点重建的总数(从子级开始)和接收到的恢复数据包数目之和至少等于层次[i]上的节点总数[N(i)=2h-i+1](确保层次[i]所有节点和其上层的节点都能成为接收器)。
定义2:高度为[h]的树在指定层次[i]上具有数据恢复包[R(i)],则接收数据项[D]能被接收器认证的概率是下列两个事件交集的概率:
(1) 子树层次[i]上所有其他数据项([D]是其中一部分)被接收。
(2) 所有在层次[i]的其他节点都可以成为接收器,通过在对应子树中接收的所有数据项,或通过使用接收到的恢复包来恢复层次[i]上任意丢失的节点。
上面定义的两个事件都是独立的,使用这种方法,能够计算出在树中一个接收数据项[D]能得到认证的概率[Pver]:
[Pver=P{D所在的子树接收到的所有其他数据项}×P{层次i上所有其他节点都可用}]
其中[P{ }]表示括号内事件发生的概率。由于[p]表示某个数据包成功接收的概率,而且在层次[i]上任何节点的子树都有[2i-1]个叶子,因此可得:
[P{D所在的子树接收到的所有其他数据项}=p2i-1≡ξ]
在树的层次[i]上有[N(i)=2h-i+1]个节点。为了恢复[D],无论是从接收数据包直接重建还是通过恢复,在这个层次上余下的[N(i)-1]个节点是否能成为接收器是至关重要的。根据接收数据包,层次[i]上任意单一节点的重建概率为[ξ]。然后,从[N(i)-1]子树中准确获取层次[i]的[l]个节点概率为:
[PN(i)-1l=N(i)-1lξl(1-ξ)N(i)-l-1]
从总共传输[R(i)]中正确接收[k]个恢复数据包的概率为:
[PR(i)k=R(i)kpk(1-p)R(i)-k]
因此,重建节点数目[l]和接收到的恢复数据包[k]需满足[l+k≥N(i)-1]。最终,成功接收数据包[D]并被认证的概率为:
[Pver=ξk=0R(i)PR(i)kl=N(i)-1-kN(i)-1PN(i)-1lp]
3.2 确定编码层次[i]
在不同层次[i]中,认证概率[Pver]随编码数据包数量的变化曲线如图5所示。对于[i]=1层,仅仅需要6个恢复数据包(开销少于10%),就能使认证概率从无编码使用时的30%提升到100%。
本文中,系统主要应用于人体生理信息的传输(血压、心电图监测),所以每秒传输一次数据包较为合理。若每小时计算一次签名,则高度为[h=12]的树就可以滿足应用,共生成4 096个叶子。此时,恢复数据包从0~128时,相应的认证概率如图6所示。初始阶段为网络编码未使用时,认证概率接近于零,因为任何数据项的认证都依赖于树中所有4 096个数据项的接收。随着恢复数据包的增加,认证率也急剧增加。在大约110个恢复数据包时(对应大概3%的成本),认证概率可达到将近100%。
另外,图6中标注的适合编码的最优配置层次曲线由不同的分段曲线构成,因为在不同的恢复数据包下,最大认证概率对应的层次[i]不同,所以当需要确定具体编码层次时,需要根据系统允许的最大恢复数据包开销来确定[i]。
4 实验结果及分析
上述认证框架中,对丢失数据点操作进行了简化,假设每一个数据包都与概率[p]独立同分布。然而,在实际中,无线传感器网络数据丢包具有突发性,所以本文使用Markov模型模拟突发丢包情况[13]。实验中,比较了基于Merkle哈希树和本文融合Merkle哈希树和网络编码的两种认证方案。
4.1 丢包模型
本文利用Markov模型模拟丢包情况,其中有两种状态,接收到的数据包(0)和丢失的数据包(1),[pg]和[qg]分别表示从接收到丢失和丢失到接收两种状态下的传递概率[14],如图7所示。根据穿戴式设备收集到的实验数据推导出这些传递概率值。
4.2 实验结果
进行真实的穿戴式网络实验:一个男性实验对象穿戴两个无线通信设备,一个安放在右手臂,另外一个安放在左边腰部,在室内办公环境下工作[15]。以每秒一个数据包的速度对无线信道取样。设置三种场景:
(1) 低活跃度,实验对象被安排在小隔间里。
(2) 中活跃度,实验对象偶尔会从椅子上起来,在房间周围走动。
(3) 高活跃度,实验对象会参与到周期性的短期户外活动。表1给出了每种场景下的丢包率([1-p])、平均脉冲长度、实验持续时间和对应的状态转换概率,其中[pg]为从接收状态到丢失状态的信道转换概率,[qg]为从丢失状态向接收状态转变的信道转换概率。
从表1可以看出,丢包率随着活跃度的增加而增加,这是由于室外活动导致的,户外环境会降低多重路径。
把实验衍生出来的参量[pg]和[qg]输入到Markov模型中模拟在三种活跃度下且高度[h=12]的树中的丢包情况,并测量了每个树层[i]的认证概率[Pver。]不同活跃度下基本Merkle哈希树认证方案和本文认证方案的接收数据认证概率曲线,如图8所示。

图8 基于Markov哈希树和本文认证方案的性能比较
可以看出,本文方案比Markov哈希树方案有更好的性能。对于高活跃度情景更为明显,例如,当恢复数据包开销为128个时,本文方案对接收数据项的认证概率能超过95%,表明本文方案需要较少的恢复数据包就能够重建数据。例如,對于图2中的哈希树,考虑数据集中丢失两个数据项的情形。如果丢包近似平均分布,此时[D1]和[D4]丢失(丢包都是最开始的半个数据集),则在层次1([H(1,1)]和[H(1,4)])和层次2([H(2,1)]和[H(2,2)])以及更高层次的树将会有丢失的节点,在此情形下层次3只有[H(3,1)]丢失。此时如果一个编码数据包在层次3被接收,则第二个一半数据集可以被认证,例如[D5~D8。]然而,如果两个丢包是在一次脉冲中发生的,如[D1]和[D2,]对于树的完整性影响将更小,且只需要更少的恢复开销来弥补数据。因为,此时在层次1有两个节点丢失([H(1,1)]和[H(1,2)]),层次2([H(2,1)])和层次3([H(3,1)])有一个节点丢失。在这种情形下,如果接收到一个层次2的单一恢复包编码,则[D3~D8]的6个数据项就能得到认证。
5 结 语
本文提出一种应用于人体传感器网络数据通信的安全认证方案,采用Merkle哈希树来分摊数字签名的成本,利用网络编码使认证方案对丢包具有鲁棒性。同时选择最优层进行单层网络编码来降低丢包恢复开销,并最大化数据认证的概率。将基本Merkle哈希树方案和本文方案进行比较,结果表明,本文方案在典型的室内环境下99%的数据都能被认证,且只需要较少的恢复开销,能够确保医疗数据的安全性。在未来的工作中将进一步改进方案,提升安全性能,使其能够抵御网络攻击行为。
参考文献
[1] 肖玲,李仁发,罗娟.体域网中一种基于压缩感知的人体动作识别方法[J].电子与信息学报,2013(1):119?125.
[2] 杨颖,刘军.无线躯体传感器网络中低能耗的时间同步算法[J].电子技术,2011,38(6):23?24.
[3] 杨丽娜,李士宁,张羽,等.传感器网络中一种轻量级的安全重编程方法[J].华中科技大学学报(自然科学版),2014,42(10):74?78.
[4] NOROOZI E, DAUD B M D, SABOUHI A. Secure digital signature schemes based on Hash functions [J]. International journal of innovative technology & exploring engineering, 2013, 2(4): 543?549.
[5] 王丽娜,施德军,覃伯平,等.基于Merkle散列树的无线传感器网络实体认证协议[J].传感技术学报,2007,20(6):1338?1343.
[6] ULLAH M G, CHOWDHARY B S, RAJPUT A Q, et al. Wireless body area sensor network authentication using vo?ronoi diagram of retinal vascular pattern [J]. International journal of wireless personal communications, 2014, 76(3): 579?589.
[7] GIL Y, WU W, LEE J. A synchronous multi?body sensor platform in a wireless body sensor network: design and implementation [J]. Sensors, 2012, 12(8): 10381?10394.
[8] 刘通,王凤英.基于Merkle树的起源完整性解决方案[J].山东理工大学学报(自然科学版),2012,26(3):68?71.
[9] LI C L, CHEN Y. Merkle Hash tree based deduplication in cloud storage [J]. Applied mechanics & materials, 2014, 556: 6223?6227.
[10] ZHU Yi, LI Qingbao, ZHONG Chunli, et al. Non?balanced binary Hash?tree model for fine?grained integrity measurement [J]. Journal of Chinese Computer Systems, 2014, 35: 1604?1609.
[11] SANDERS P, EGNER S, TOLHUIZEN L. Polynomial time algorithms for network information flow [C]// Proceedings of 2003 the 15th Annual ACM Symposium on Parallel Algorithms and Architectures. San Diego: ACM, 2003: 286?294.
[12] 黄锦旺,胡志辉,冯久超.一种无线传感器网络的混沌Hash算法[J].计算机科学,2013,40(6):49?51.
[13] 肖喜,田新广,翟起滨,等.基于shell命令和Markov链模型的用户伪装攻击检测[J].通信学报,2011,32(3):98?105.
[14] LIN W, BO L I, HAN L H. State determination algorithm of WSN based on twice grey Markov forecasting [J]. Compu?ter engineering & science, 2013, 35(8): 41?45.
[15] 郭海鹏,文大化.基于WBSW技术的人体生命体征监控应用研究[J].长春理工大学学报(自然科学版),2013,36(1):50?53.