一种基于体域网的智慧医疗系统双层安全机制*
2022-02-12任君玉祝长鸿廖栋森秦慧平覃团发
任君玉,祝长鸿,廖栋森,秦慧平,覃团发,4
(1.华南理工大学 电子与信息学院,广州 510641;2.广西大学行健文理学院,南宁 530005;3.广西大学 计算机与电子信息学院,南宁 530004;4.广西多媒体通信与网络技术重点实验室,南宁 530004)
0 引 言
近年来,随着物联网及电子医疗技术的发展,作为智慧医疗领域的一种特殊类型的传感网,体域网(Wireless Body Area Network,WBAN)得到了社会各界的广泛关注,目前已经成为一个研究热点。每个体域网由若干个异构的传感器节点及一个体域网服务节点构成。这些传感器节点可以是可穿戴式的,也可能置于体表或者植入体内,用于采集人体相关生理参数,比如体温、血压、血氧、血糖、心电图、脑电图等[1]。体域网服务节点也称为体域网服务节点,负责收集来自各个传感器节点的数据,然后经过简单处理发送到本地服务器进行存储或者发送到云、雾层进行大数据存储及处理分析,并将最终结果供医疗人员读取,以辅助疾病诊断与治疗。基于体域网的智慧医疗系统主要包含3层:第1层即体域网内(Intra-WBAN)通信,主要解决体域网传感器与体域网服务节点之间通信的问题;第2层为体域网间(Inter-WBAN)通信,主要解决体域网和接入点之间的通信问题;最外层为3层通信(Beyond-WBAN),这一层次的具体设计取决于实际应用需求,一般来说这一层次主要解决体域网数据的存储问题[1]。
体域网大大地推进了物联网在新的应用领域—智慧医疗的快速发展,但是体域网的设计也受到几个关键问题的影响,导致其需要新的设计范式或协议。首先,由于体域网传感器体积很小,因此其在能量、计算能力、存储能力等方面资源严格受限。并且,体域网一旦部署往往需要工作很长时间,通常长达几年,但是在大多情况下更换体域网传感器极其复杂且代价昂贵,尤其是当传感器植入体内,此时更换设备会对人体带来极大不适。因此,针对体域网内的通信应该提供能量有效的解决方案以延长网络寿命[2]。已有的研究工作多采用功率控制、能量有效的通信协议(包括路由及MAC层协议)等方法降低节点功耗,提高网络寿命。
另外,体域网数据时延敏感,尤其是紧急情况下,生理数据若不能及时处理将对病人的健康带来极大的安全隐患,甚至会威胁病人的生命。近几年,云计算及雾计算技术发展迅速,将云计算与体域网结合可以有效地解决体域网大数据存储问题[3-5],但是由于云计算的自身特性而无法提供实时数据处理;而雾计算由于更靠近终端设备的边缘,所以更适合处理时延敏感的体域网数据。对于一个实际的智慧医疗系统,可以协同运用云、雾计算,云计算可方便地对大数据进行分析及对被监测者进行长期的健康预测,而雾计算辅助可进行实时数据处理以快速辅助医疗决策及疾病诊治。因此,本文将雾计算引入智慧医疗系统,通过雾层实现对体域网服务节点上传数据的实时处理,同时雾节点作为区块链的共识(peer)节点,在beyond-WBAN层实现基于区块链的安全存储。
此外,由于体域网传感器采集的是人体生理健康数据,因此对隐私保护及安全的要求极高。目前针对体域网安全方面的研究工作尚不成熟,而安全问题是影响基于WBAN的智慧医疗系统能否真正落地实现的关键[6]。近几年,区块链技术发展迅速,为智慧医疗系统的安全提供了新的解决方案。区块链本质上是一个分布式超级账本技术,它可以在无需第三方信任实体的条件下,基于点对点(Peer-to-Peer,P2P)技术实现分布式的数据安全存储,保护数据的隐私性、机密性、完整性不受侵犯,可以实现数据的可追溯、防篡改及实现数据安全共享。因此,可以利用区块链的以上特性,解决智慧医疗系统中体域网生理数据的安全存储及共享问题[6-7]。
传统方法一般采用非对称密码体制进行节点安全身份认证,但是这种方法通信开销大,已有研究工作[8-9]证明它们并不适合能量受限的intra-WBAN的数据安全传输。目前已有相关工作研究采用轻量级的节点认证及数据加密机制以适应传感器能耗及资源限制[10-14]。考虑到体域网传感器节点的能量受限性,文献[15]设计了基于哈希链的体域网的节点安全数据传输机制,分析表明相对于传统的基于非对称加密的安全方法,该安全方法能效高,能够适应体域网能量受限的传感器节点,但是该协议对节点存储资源的受限性及系统实时性方面缺乏考虑。
上述文献中所提出的安全方法都只是针对体域网某一层次的安全问题提出解决方案,缺乏系统级的整体安全方案设计。受以上工作启发,本文提出基于体域网的智慧医疗系统级安全解决方案,重点解决两个关键问题:第一,在兼顾体域网内传感器节点资源受限性及能耗的前提下提出并设计体域网内部(Intra-WBAN)传感器节点与之间的安全通信协议;第二,采用区块链技术实现体域网外(Beyond-WBAN)生理健康数据的安全存储与共享,同时,区块链中基于椭圆曲线算法的非对称加密机制可实现区块链轻量级节点(体域网服务节点)及区块链共识节点之间的安全身份认证,因此Inter-WBAN的安全通信同时也得到解决。
1 系统模型
假设医院环境中部署一个服务器A及若干雾节点F,其中,A用于对网络节点进行身份认证,产生、保存及刷新体域网传感器的密钥ks、体域网组密钥kg及体域网服务节点密钥kb,此外还负责对节点行为进行统计;雾节点F负责对体域网数据进行实时分析与处理,同时也是区块链的共识节点(Peer 节点)。医院为每个住院病人安装一个体域网,每个体域网包含服务节点B及若干个传感器S,每个体域网作为一组G。假定体域网采用一跳星型网络拓扑结构,系统模型如图1所示。
图1 系统模型
本文假定体域网服务节点B相对于体域网传感器而言资源较为充足,B与A及F之间可以通过非对称加密算实现双向安全通信,而系统中各传感器节点尺寸很小,不方便充电,所以其能量资源和计算资源严重受限,不能执行复杂的运算,极容易受到网络外部及内部攻击。假设服务器A分别为体域网G、服务节点B及传感器S分配的密钥为kg、kb及ks;键值对
2 安全需求
2.1 低能耗和低复杂度
体域网传感器资源极端受限,因此所设计的安全机制在实现安全性能的前提下应尽可能简单。同时,由于体域网数据时延敏感性,尤其在紧急情况下,对数据实时性有极高的要求,因此,所设计的安全算法要同时兼顾实时性。传统大多安全方法采用主流的非对称加密技术实现系统安全通信,但是基于非对称加密的算法复杂度、时延及能耗都高,导致其在体域网内部无法适用[13]。
2.2 机密性和完整性
由于体域网传感器采集的是人体生理健康参数,具有很高的隐私要求。因此,应保证所传输数据传输的机密和隐私,同时要保证数据的完整性,即保证数据不被篡改或伪造。
2.3 数据真实(不可否认)性
所设计的安全方案应该保证数据收发双方身份的真实性,以防被非法用户窃取。尤其是感器节点资源受限,极易受到攻击而成为妥协节点,对传感器身份真实性的认证显得尤为重要。
2.4 数据新鲜性
3 方案设计
基于以上需求,本文设计了一种基于双异或操作及哈希链的低复杂度、低能耗的安全协议IBHS(Intra-BAN Hash-based Security protocol),该协议可以实现Intra-WBAN层传输数据的机密性、完整性、真实性及新鲜性。同时,利用区块链去中心化、无需第三方信任机制的特点保证Beyond-WBAN层数据的安全存储,边缘雾节点作为区块链的peer节点,通过分布式共识算法(Proof of Work,PoW)保障数据的一致性、机密性、完整性,实现隐私保护。
3.1 Intra-WBAN安全传输协议IBHS
首先设计IBHS协议保证Intra-WBAN层的数据安全传输。IBHS采用Hash链及双异或运算实现传感器与服务节点之间数据的双向安全传输。以第j个体域网内的传感器si向服务节点Bj发送数据为例,对设计的安全算法进行详细分析。安全消息格式如式(1)所示:
si→Bj:si,Bj,ti,ni,{d(i,ti,ni)⊕
(1)
式中:‖及⊕分别代表连接符及异或运算;h(·)代表Hash函数;d(i,ti,ni)代表传感器si发送的数据,ti及ni分别代表时间戳及消息随机序列号(由节点的伪随机数发生器产生)。Hash运算结果是长度为l的字符串,传感器节点si发送给服务节点Bj的消息长度为[(m-1)×l,m×l],其中m为大于1的整数。当利用基于哈希链的异或操作对数据进行加密时,哈希链字符串的长度至少应该与数据的长度相等,即至少为m×l,因此算法中每个哈希链长度为
ni(m+1)-1-[(ni-1)(m+1)+1]+1=ni(m+1)-[(ni-1)(m+1)+2]+1=m。
比如,当消息序列号ni=1,m=4,则传输的数据可以表示为
可见,通过IBHS协议,传输数据的不同部分将分别受到不同哈希链的加密,并且对于不同的数据,起保护作用的哈希链互不重叠,这可以有效抵制攻击者利用已经破获的数据发动已知明文攻击从而继续破获数据,保证了数据的隐私和安全。
(2)
图2给出了服务节点B的数据处理流程。各个体域网服务节点发送给传感器的消息及传感器之间的通信与上述形式类似,限于篇幅,在此不再详述。
图2 WBAN服务节点B协议处理流程
(3)
此外,本文所提方案还可以实现对节点的恶意行为进行统计的功能,如图2所示,当发现节点存在重放攻击或者经签名验证发现该节点的数据不真实,则服务节点B向服务器A上报I(si)=0,I(·)为式(4)所示的指示函数。即当发送方检测判断发送节点存在恶意行为时,则上报A进行统计。A根据节点作恶情况对节点进行惩罚,当节点行恶次数达到阈值时,将其加入到黑名单。
(4)
3.2 基于区块链的Beyond-WBAN层数据安全存储
对于Beyond-WBAN层通信,本文基于区块链实现体域网生理数据的安全存储。在区块链peer节点上部署智能合约完成数据加密安全传输及处理功能。通过部署智能合约,当交易条件达成时可以自动完成交易,而不需要第三方信任机构,可以有效预防针对第三方信任实体的攻击[16],防止由于不诚实第三方所带来的安全隐患。由于区块链所采用的链式数据结构、哈希运算机制及非对称加密方法,可以保证数据可追溯,不可篡改,不可抵赖,防伪造[6-7],这些安全特性可以很好地满足基于体域网的智慧医疗系统的安全需求。
为了节约功耗,本文假设体域网服务节点B作为区块链轻量级节点,仅可以发起交易(上传数据),但是不参与共识过程。B收集一定的人体生理数据以后,提交给边缘雾节点进行处理。雾节点同时是具有完整区块存储功能及共识功能的节点,通过运行PoW共识算法(式(5))争夺记账权[19]。
Hash (Hpre+HM+T+bdiff+N)≤Vd。
(5)
式中:Hpre为父区块哈希值;HM为当前区块数据(交易)的默克尔(Merkle)根值;T为时间戳;bdiff为难度位;N为随机数;Vd为目标难度值,根据bdiff计算得到。各个peer节点通过穷举随机数N以满足式(5),最先找到满足条件的N的节点为获胜节点,负责生成下一个区块并且获得相应的奖励。
4 方案验证及评估
4.1 IBHS协议验证与分析
4.1.1 IBHS协议正确性校验
本文采用BAN逻辑[18]对所设计的安全传输协议IBHS的正确性进行验证。BAN是一种基于信念的模糊逻辑,可用于对通信协议进行分析与验证,经过扩展的BAN可以对包含哈希函数的通信协议进行分析[19]。利用BAN对协议进行分析需要首先将协议消息转化为BAN可以识别的理想化协议,然后进行合理的假设并提出验证目标,在此基础上进行逻辑推理并验证协议的正确性。在此,以消息安全传输协议(式(1)所示)为例,对IBHS协议的安全性进行校验。
(1)理想化协议
si→Bj:{si,Bj,ti,ni,{ni,ti,
(6)
A5:Bj|≡#(ni,ti)
//Bj相信ni,ti是新鲜的;
A6:si|≡#(ni,ti)
//si相信ni,ti是新鲜的;
A7:Bj|≡si⟹d(i,ni,ti)
//Bj相信si对d(i,ni,ti)有控制权。
(2)验证目标
G1:Bj|≡si|~d(i,ni,ti)
//Bj相信si发过d(i,ni,ti);
G2:Bj|≡si|≡d(i,ni,ti)
//Bj相信si相信d(i,ni,ti);
G3:Bj|≡d(i,ni,ti)
//Bj相信d(i,ni,ti)。
(3)验证过程
对式(6)运用“接收消息规则(seeing rules)”可得
对C1及A2运用“消息含义规则(message-meaning rules)”,可得
C2:Bj|≡si|~{ni,ti,d(i,ni,ti)}。
对C2运用“信念规则(belief rules)”,可得
C3:Bj|≡si|~{d(i,ni,ti)}。
G1得证。
综合C2及A5,并运用“消息新鲜性(freshness rules)”规则,可得
C4:Bj|≡#{ni,ti,d(i,ni,ti)}。
综合C4及C2,并运用“临时值验证(nonce-verification rule)”规则,可得
C5:Bj|≡si|≡{ni,ti,d(i,ni,ti)}。
运用“信念(belief rule)”规则,可得
C6:Bj|≡si|≡{d(i,ni,ti)}。
G2得证。
对C6及A7运用“管辖(jurisdiction rule)”规则,可得
C7:Bj|≡d(i,ni,ti)。
G3得证。
以上过程证明了IBHS协议的正确性。运用BAN进行协议正确性验证的每一步都很关键,尤其是验证过程,由于各步的关联性极强,需要熟练地运用BAN逻辑的相关规则。
4.1.2 IBHS协议安全性分析
IBHS可以有效抵制包括模仿攻击、重放攻击等在内的多种攻击,本小节进行详细分析。
(1)防假冒攻击(impersonation attack)
假设攻击者试图通过假冒体域网服务节点对体域网内的传感器节点si进行欺骗,此时假冒服务节点Bf需要首先从服务器A获得ks、kg,但是由于在体域网服务节点B及A之间采用非对称加密机制实现安全身份认证,所以Bf破解密钥的难度极高;另外,由于服务器A需对密钥进行定期刷新,因此即使Bf可以成功捕获ks、kg,也仅能在密钥刷新之前对网络实施攻击,这在很大程度上提高了攻击难度,降低了系统在遭受攻击时所带来的安全损失。
(2)防分布式拒绝服务攻击
所谓分布式拒绝服务攻击(Distributed Denial of Service attack,DDoS),即攻击者通过对目标节点在短时间内发送大量虚假数据以大量消耗被攻击节点的计算及能量资源,致使其能量衰竭而无法正常工作,这给资源极端受限的体域网传感器带来了极大挑战。如前文所示,在本文安全机制下,体域网服务节点很难被假冒,所以很难向传感器节点发送虚假数据更新请求以进行DDoS攻击。
另外,本方案在实际实现中还可以进一步通过设置传感器发送数据频率的阈值,防止假冒传感器向服务节点发起DDoS攻击。服务节点可通过学习动态设置并调整每个传感器上报数据的阈值:
(3)防重放攻击
(4)防已知明文攻击
由于体域网采集的生理参数的特殊性,一般参数都具有一定的范围,因此体域网数据具有一定的预期性和可猜测性,若不采取安全措施,则攻击者很容易通过猜测发动已知明文攻击。本文为了节约传感器能耗采用带密钥的Hash链对数据进行异或运算保证数据的机密性和安全性,并且不同数据所采用的哈希链互不重叠,降低了攻击者在成功破获一段数据之后继续截获其他数据的可能。并且,所采用的算法复杂度低、能耗低[15],符合体域网对安全算法的低能耗低复杂度的要求。
(5)防抵赖(non-reputation)、防追踪(untracebility)
由式(1)可见,节点发送的数据中包含发方密钥,并在加密数据以后通过Hash函数形成数字签名,因此数据发送方无法对自己曾经发送数据的行为进行抵赖。此外,在传输数据中增加序列号ni不仅可以防重放攻击,并且由于数据序号是由随机数发生器产生的随机数,可以保护传输数据避免遭受攻击者追踪。
可见,所设计的安全传输协议具有抵抗多种已知攻击的能力,可以保证数据的新鲜性、机密性、完整性、真实性,具有很强的安全性。
4.2 基于区块链的安全机制性能分析
4.2.1 安全性分析
(1)保护数据完整性、防篡改
在区块链中,通过哈希函数对体域网数据进行加密,可以有效防止数据被篡改,从而保护数据的完整性。哈希运算具有以下几个重要特点:
一是计算快速——对于H(x)=y,如果x已知,则很容易得到y;
二是隐蔽性(hiding)——对于H(x)=y,如果已知y,则很难反向求出x;若哈希算法一定,如SHA256需要计算2256+1个不同的明文以破解x,该计算量巨大;
三是防篡改——对于H(x)=y,若x稍作改动,y即发生很大的变化。
(2)保护数据隐私
区块链节点之间通过非对称加密机制椭圆曲线加密算法产生公钥、私钥及地址,由此隐藏用户真实身份,保护体域网隐私敏感数据不被泄露。
(3)数据可追溯,防集中式攻击
区块链的链式数据结构保证数据的可追溯性。通过分布式账本技术使区块链系统中的每个peer节点都保留有完整的数据信息,因此如果一个节点企图篡改数据,则其他节点无法共识通过,从而保证了数据的一致性及防篡改,也防止了系统遭受集中式攻击。
4.2.2 时延分析
为了分析区块链系统时延情况,本文采用Python进行仿真实验,分别从节点数目变化、难度位数变化对区块链系统时延进行分析。
(1)节点数对时延的影响
为了分析节点数目对系统时延的影响,首先固定难度位数,在此基础上改变节点数目,以观察节点数目的变化对时延的影响。
图3给出了当难度位固定为18 b、参与共识的节点数目变化时,共识时间随交易轮次的随机变化趋势。实验中分别取节点数为10、30、50、70,每种情况下各进行50轮实验,假设每轮实验中包含1条交易。
图3 不同节点数目下共识时间随交易轮次的随机变化
由图可见,当节点数目为70时,共识时间最长,最大值接近50 s;当节点数为50时,共识时间稍低,最大值不超过30 s;而在节点数为30时,共识时间较低,最大值约为10 s;当节点数目为10时,共识时间最低,最大值约为5 s,平均值接近于0。由此可见,在相同的难度位数下,节点数目越多,共识时间越长。这是由于大量节点对共识结果及交易的确认过程所带来的延迟。因此,当系统时延过高超过具体应用时延限制的情况下,可以通过减少共识节点的数量以有效降低系统时延,目前已有一些研究工作[17,20]采用区块分区的方法以减少单个区块链参与共识的节点数目。在智慧医疗的具体应用场景中,可以基于地理位置或部门进行小区域划分,从而降低共识节点的数目。
图4给出了系统平均共识时间与节点数的关系。由图可见,当共识节点为10时,平均共识时间为1.83 s,而文献[17]中,当共识节点为6、每轮实验包含1~14条交易的情况下,共识时延为[2.7 s,16.1 s],单条交易下的平均时延为2.7 s,与本文的实验结果基本相当并且略高。
图4 平均共识时间与节点数的关系
(2)难度位数对时延的影响
图5给出了当节点数目固定为30、难度位数变化时,共识时间随交易轮次的随机变化。实验中难度位分别取3、6、9、12、15、18、21,每种情况下各进行50轮仿真。
(a)难度位较低
由图可见,当难度位数为21,共识时间最长;当难度位数为18,共识时间大大减少,平均值不到10 s;而当难度位为6、9、12、15时,共识时间都非常接近于0,可见难度位对系统时延有明显影响。本实验中,难度位为15、18、21时,随着难度位的增加,系统时延有明显增大趋势。但是难度位数越低,恶意节点作恶所需要的算力开销也越低,系统安全性随之降低。因此在实际应用中,可在系统安全性及时延之间进行折中。例如,当区块链共识节点数为30,如果系统对时延要求不高,可以设置难度位数为21;而当系统时延要求较高时,可以适当降低难度位数,比如取18。而当应用对时延的要求苛刻(比如秒级应用),尤其是在体域网数据紧急的情况下,可结合难度位调整及区块区域划分以降低时延。
为了进一步验证以上的结论,取节点数目为10、30、50、70及难度位3、6、9、12、15、18、21的不同组合情况,分别进行50轮仿真实验,得到平均共识时间,如图6所示。
图6 平均共识时间随节点数及难度位的变化
由图可见,当需要达到秒级及以下的时延时,难度位需小于等于15,但是此时系统安全性将大大降低,并不可取;但当难度位为18,节点数小于等于10时,共识时间依然可以达到秒级,而此时并不会牺牲系统太大的安全性。因此在紧急情况下,可以取难度位为18,而通过区块划分等方法减少参与共识的节点数目以保证系统的时延有效性。
此外,在图3与图5中,当其他条件一定,共识时间在不同的仿真轮数下呈现随机变化的趋势。这是因为每轮参与共识的节点是随机的,不同的节点算力不同,共识时间与节点的算力有关,算力越大,共识时间越短。
5 结束语
随着物联网技术的发展,作为智慧医疗底层网络架构的体域网受到国内外的广泛关注,由于体域网本身所固有的特点,目前,围绕体域网的研究主要集中在开发节能、低时延、高可靠性、高安全性的通信协议及设计部署新的网络范式及架构,其中,安全问题是决定智慧医疗系统是否能够真正实用的关键,而目前已有工作大多围绕体域网某一方面的安全问题展开研究,缺乏系统级的安全方案。因此,本文基于体域网的三层网络架构,提出了一个系统级的安全解决方案。首先,针对Intra-WBAN层传感器资源受限的问题,提出了轻量级的安全体域网内通信协议IBHS,该协议采用双异或哈希链保护数据的机密性、完整性,防止数据被篡改,并利用带密钥的哈希函数实现节点身份认证,保证数据的真实性,通过采用随机数据序列号及时间戳保护数据的新鲜性,与已有方法相比更好地兼顾了体域网传感器的资源受限性及智慧医疗系统实时性的要求。理论分析表明,IBHS可以抵抗多种已有攻击,具有较高的安全性,最后通过BAN证明了该协议的正确性。同时,针对Beyond-WBAN层体域网数据的安全存储问题,本文采用区块链保护数据的完整性、防篡改、可追溯,通过分布式共识算法保证数据的一致性。区块链在保证系统安全的同时,由于其共识算法也带来了较大的通信时延,本文对不同场景下的区块链系统时延进行仿真并提出降低时延的有效解决方案。此外,值得一提的是,关于Inter-WBAN层的通信,由于体域网服务节点、雾节点及服务器能量相对充足,因此本文假设可以通过传统的非对称安全机制如椭圆曲线算法实现节点身份认证及数据的加密安全传输,限于篇幅,对这部分内容并未详细展开。本文所提的系统级安全解决方案能够极大地保证基于体域网的智慧医疗系统的安全。