基于区块链的多维度物联网健康数据服务框架
2023-09-04苟英魏星
苟 英 魏 星
(重庆商务职业学院出版传媒系 重庆 401331) 2(重庆工程学院计算机学院 重庆 400056)
0 引 言
物联网(Internet of Things,IoT)允许数十亿甚至数万亿个对象通过互联网进行互连,并且以惊人的速度增长[1-2]。IoT代表由传感器和执行器组成的物理对象或设备的网络,通过彼此之间以及与最终用户交换数据来实现多种应用程序和服务。IoT已经应用到多种行业,如医疗保健。医疗保健已成为人类生活中必不可少的部分之一,从而导致医疗大数据的急剧增加。为了简化诊断和治疗过程,医疗保健专业人员现在正在采用基于IoT的可穿戴技术。但是大量的数据需要计算密集型操作、巨大的存储需求和实时通信,而云服务提供商并不能始终以最有效的方式保证这些效率[3-4]。因此,引入了边缘计算,从而大大减少了应用程序的延迟。
5G具备更加强的带宽能力,能够满足IoT应用高速稳定、多设备和覆盖面广等需求,是IoT发展必不可少的通信技术,多接入边缘计算(Multi-Access Edge Computing,MEC)可以满足5G的超延时和千兆体验的需求,5G和MEC被认为是未来远程和智能系统的必要技术。5G网络生态系统通过超高速和广泛的带宽为IoT传感器、执行器和云之间提供无缝连接,另外,MEC通过将一些资源密集型计算卸载到MEC节点上,从而提高了所连接的IoT节点的服务能力[5-6]。文献[7]提出了一种启用MEC的5G IoT架构中的在线网络功能虚拟化生命周期管理方法,实现减少的延迟并增加网络边缘的容量,以满足IoT生态系统的需求。但是,随着物联网的发展,大量部署在传统数据中心、云内的基础设施重新部署在边缘和终端设备上,就导致大量边缘设备缺少物理屏障,面临严重的安全挑战,物联网的安全问题、隐私问题和可扩展问题已经得到越来越多的重视[8]。
具有分布式去中心化特性的区块链通过哈希链及共识算法,为IoT提供了数据永久保存及防篡改特性,能够有效解决物联网面临的安全问题。另外,分布式性质区块链的实现和智能合约的自主准确执行开启了更广泛的创新范围,区块链中的分布式分类账是一种通用应用程序,可消除数据存储的集中化以及保证的数据存储完整性,为物联网的发展提供有效支撑[9]。文献[10]设计和开发了具有区块链和AI的物联网架构,以支持有效的大数据分析。文献[11]提出一种高效隐私的区块链认知物联网框架,提高物联网推荐系统的效率。文献[12]提出一种基于区块链的物联网去中心化隐私保护医疗保健框架,通过使用区块链来提供对医疗大数据的安全管理和分析。文献[13]提出一种基于信用的IoT共识机制的区块链系统,可以同时保证系统安全和交易效率。
在现有对区块链和物联网研究的基础上,提出一种基于区块链的多维度物联网健康数据服务框架,解决物联网上健康数据的隐私性、可扩展性和安全性等问题。该框架在物联网中引入ECQV隐式证书,提高智能数据安全性,并通过区块链分布式账本来该证书的有效性,然后使用区块链的智能合约来处理与证书相关的操作,最后使用多接入边缘计算提高物联网框架的可扩展性,通过多维度的保护,为物联网智能数据提供安全、隐私可扩展的服务。
1 基于区块链的IoT隐式证书的安全验证
密码术学中,隐式证书是公钥证书的变体,从隐式证书中的数据重建对象公钥,然后称其为隐式验证。篡改证书将导致重构的公钥无效,这意味着无法找到匹配的私钥值。ECQV是一种隐式证书方案,是基于椭圆曲线密码(Elliptic Curve Cryptography,ECC),比ECC占用内存少,认证效率高。
证书颁发机构(Certificate Authority,CA)负责ECQV认证过程,被认为是受信任的实体。身份IDCA和相应的公共密钥PuCA应该是公开可用的。在本研究上下文中,将对应于两个参数在区块链分布式分类账上发布,相应的私钥PrCA在CA保密。对于具有标识IDn的实体,密钥对(Prn,Pun)的派生步骤如下。首先,设备需要发送其身份和椭圆曲线(Elliptic Curve,EC)点Rn=rnG,其中rn是随机选择。根据此信息,CA将执行以下操作。
1) CA选择自己的随机值rCA∈Fp,其中p表示素数,计算RCA=rCAP,证书certn由certn=RCA+Rn定义。
2) 计算出值r=H(certn‖IDn)rCA+PrCA,H表示默认模式SHAKE128具有256位长度和128位总体安全性的哈希函数。
3) 将元组(certn,r)发送给用户。
然后,设备可以通过Prn=H(certn‖IDn)rCA+r导出其私钥,并且相应的公钥可以由Pun=H(certn‖IDn)certn+PuCA得出。
对于物联网和MEC设备之间的通信,存在许多完善的身份验证和密钥协商算法。当MEC接收到通过ECQV机制建立的身份和证书,并且能够导出设备的相应公钥,在区块链分布式账本上验证公钥或证书的有效性,同时考虑到服务器已将潜在的吊销添加到了账本中。包括以下几个部分:区块链服务层、CA和证书访问节点、区块链智能合约。
区块链服务层。区块链服务层充当服务提供者,能够提供证书请求的验证以及威胁评分和撤销操作的准确性,同时部署智能合约,对证书生命周期的不同活动进行操作。区块链是分开工作的,其主要目标采用区块链即服务(Blockchain as a Service,BaaS)架构。
CA和证书访问节点。在所提隐私证书安全验证的方案中,身份IDCA和相应的公钥PuCA公开可用。相应的私钥PrCA在CA保密。此外,CA还会发布(Certificate Revocation List,CRL),其中包括已撤销的证书。CA仅在对智能合约的属性进行基本验证后才接收证书生成请求,通过智能合约进行基本验证后,智能合约将证书生成请求提交给CA。从公钥基础设施(Public Key Infrastructure,PKI)生态系统的角度来考虑,IoT设备生态系统中证书访问节点可分为三大类:证书订阅节点、证书状态查询节点和威胁确认节点。
订阅节点选择EC点Rn=rnG,并与身份信息一起提交给区块链服务,CA提取身份信息并继续进行证书生成。作为元组(certn,r)生成的证书值r可在分类账中使用,从而使订户能够导出其相应的私钥并完成证书生成过程。生态系统中的节点需要在特定操作之前检查证书状态,本文框架中区块链服务层提供了一种基于智能合约的威胁评分机制,另外,智能合约适用于根据节点类别建立访问证书的粒度。然后对于胁确认节点,威胁警报智能合约根据通过入侵检测系统等服务接收的警报信息来更新威胁评分。
智能合约是部署在PKI生态系统节点中的不变程序,可以在满足某些条件时执行,智能合约利用订户注册和攻击通知,可确保每个操作的准确和自主的有条件执行。重要的是要确保威胁评分机制的不变性,以确保评分的准确性和变更。证书颁发智能合约:当新的IoT设备请求证书时,将调用证书颁发智能合约,智能合约在将请求发送到CA之前执行一次主要验证以消除sybil攻击。证书发行智能合约通过调用链下CA服务来调用证书发行请求,同时更新包括相应信息的分类账。
威胁评分和吊销智能合约:威胁评分智能合约使用评分算法进行编码,在更具体的实现中,可以在智能合约中定义攻击的类型和相应的分数。例如,对于ICMP流量,威胁分数为score1,而对于portcan,威胁分数为score2。每个攻击信息都由系统的集成入侵检测系统确认。
吊销证书的阈值也可以在智能合约中定义,该机制的主要优点是以透明的方式准确执行预定义的条件,从而导致威胁评分增加并最终吊销证书。智能合约为每个事件检索证书对象,并更新与证书关联的设备的威胁评分。当威胁评分超过威胁评分的阈值级别以撤销证书时,该证书将被标记为已撤销证书并确认分类账。与证书吊销相对应的事件将记录在分类账中,并且可用于事后调查。
2 基于MEC和区块链的IoT健康数据服务框架
提出一种基于ECQV证书、区块链和MEC的多维度物联网健康数据服务架构,如图1所示,该架构链接到区块链和星际文件系统(InterPlanetary File System,IPFS),在资源受限的情况下实现端到端的安全性、可扩展的数据存储,高吞吐量和高效的操作能力计算基础架构。框架中使用第1节中ECQV证书的轻量级机制来确保操作中的轻量级加密开销。所提框架中具有6个参与方:智能数据用户、设备、MEC节点、区块链服务层(Blockchain Service Layer,BSL)、云服务器和可信第三方(Trusted Third Party,TTP)。BSL可以看作是一个受信任的安全实用程序应用程序,将某些服务与链下调用分开。
图1 所提多维度IoT健康数据服务框架
其中IoT通过消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)协议和约束应用协议(Constrained Application Protocol,CoAP)和MEC进行连接,所提框架通过多个步骤为健康数据提供安全、隐私的服务。假设存在一个TTP,它决定EC、生成器G、哈希函数H(·)、具有对称密钥K的对称密钥加密函数EK(·),并选择一个随机值PrTTP作为私钥,公钥PuTTP可由PuTTP=PrTTPG得到。身份为IDm的MEC节点通过ECQV从TTP获得私钥和公钥对(Prm,Pum),其中,Pum=H(certm‖IDm)+PuTTP。
1) 注册阶段。在此阶段,首先通过TTP的ECQV分别获得患者和医院的私钥-公钥对(IDp,Pup)和(IDh,Puh)。医院在区块链(Blockchain,BC)上发布其身份、公钥、注册时间和证书(Dh,Puh,Th,Certh),其中Puh=H(IDh,Puh,Certh)Certh+PuTTP,通过区块链API调用智能合约。患者在BC上发布其身份,患者信任其数据,公钥、注册时间以及证书ID的人的医院身份IDp、IDh、Pup、Td、Certp,其中Pup=H(IDp,IDh,Tp,Certp)Certp+PuTTP。
之后构建用于患者和医院的联合公共密钥对(Prj,Puj),使用基于公钥的机制建立秘密通道,分别安全地共享由患者和医院选择的随机数r1、r2,以得出新的私钥Prj,和对应的公钥Puj=PrjG。该联合公共密钥被添加到患者的BC相关信息。同样,用于监视患者的设备也将在时间Td由医院在BC注册,因此,设备会通过TTP的ECQV接收带有证书Certd的私钥-公钥对(IDd,Pud),其中Pud=H(IDd,IDh,Puj,Td,Certd)Certd+PuTTP。
2) 物联网与MEC节点之间的Key建立。IoT设备发送一个请求消息,其中包含其标识IDd和随机值Rd=rdG的签名消息{IDd,Rd}Prd。在该消息到达时,MEC节点验证BC上IDd的存在,并查找其相应的公钥Pud和标识符IDp、IDh、Puj,还会在BC上验证患者的ID是否为其首选医院和相应的联合公共密钥Puj。如果签名也正确,那么将在其本地数据库中验证是否已经在对IDp进行分析。随后,将使用标识符IDa将当前请求添加到该分析中。如果不正确,将创建一个新的分析标识符IDa。接下来,将包含(IDm,Certm,Rm,H(K))的响应发送到IoT节点,其中K=(rm+PrmH(Rd,Rm))·(Rd+H(Rm,Rd)Pud),并将IDd、K、Puj安全地存储在数据库中,其中包含与IDa相关的信息。基于接收到的响应,IoT设备可以首先通过ECQV计算公钥Pum,计算秘密会话密钥K=(rd+PrdH(Rm,Rd))(Rm+H(Rd,Rm)Pum)。两者相互认证并共享相同的会话密钥K,这对于前向保密性和会话信息泄漏攻击是安全的。
使用会话密钥K,可以将来自IoT节点的所有数据M作为(IDd,EK(M))安全地发送到MEC节点,MEC节点首先检查其数据库中IDd的存在,以找到会话密钥及其所属的相应分析IDa,根据该信息,可以解密消息并将其用于患者的完整分析配置文件。
3) 患者区块链-云更新及检索。在固定时间段之后,将所有IDa的不同汇总分析发送到BSL,发布在BC上。对于每个分析,会使用联合公钥计算随机点Ra=raG和Diffie Hellman密钥Ka=raPuj,该密钥用于对分析数据Ma进行加密,以获得Ca=EK(Ma)。消息由sa=ra-H(IDm,IDp,Ra,Ca)Prm签名,消息IDm,(IDp,Ca,Ra,sa)a已发送到BSL。
4) 数据共享。当患者与医院之间的关系断开时,通过撤销系统中以前的联合密钥对,可以将患者数据转换为可共享状态。患者数据将使用新随机生成的会话密钥进行解密、重新加密。通过使用患者的公共密钥对会话密钥进行加密,可以将其与患者共享。当第三方需要获取患者数据时,与医院联系并由医院触发患者的请求,当患者接受共享请求时,患者共享会话密钥,并且可以解密数据,数据共享给第三方,但不会向第三方透露患者的身份。密钥回收策略是在智能合约中建立的,例如,通过在1个月后使会话密钥过期或在单个数据共享操作之后回收密钥,每个密钥到期都需要重新生成的会话密钥中加密数据。
5) 访问撤销。如果患者想要更改其首选医院,然后再次向TTP注册,并接收新的私钥-公钥对,在计算公钥时包含新的医院标识符,需要创建一个新的联合钥匙,并且患者使用的所有设备都需要更新其证书。通过智能合约,使MEC节点知道医院的更新和所有涉及IDp正在进行的分析,都将更改患者链接到存储的联合公钥。最后,调用智能合约以标记对数据的访问撤销。
3 实验分析
用于实现的计算基础架构由几个虚拟机(VM)和一个主机组成,64位虚拟机运行具有12 GB RAM,Ubuntu 18.10系统,主机由具有4个内核和8个逻辑处理器的Intel Core i7 CPU组成。所提出的架构将MEC计算模块集成为中介,以建立IoT节点与云之间的连接。IoT-MEC连接性是通过消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)协议和约束应用协议(Constrained Application Protocol,CoAP)建立的,这些协议在IoT上下文中被广泛使用。
本文使用Raspberry Pi作为IoT节点,在实验评估中代表传感器和执行器。证书颁发机构:CA模拟PKI生态系统中最先进的CA,使用Java编程语言来实现,该语言使用诸如BouncyCastle密码库之类的密码库。CA与表述性状态传递应用程序接口(Representational State Transfer Application Programming Interface,REST API)一起部署,接收来自智能合约的证书生成请求。在区块链服务层使用Hyperledger Fabric私有区块链,智能合约使用Javascript进行编码,并能够在CA的链下调用生成证书。区块链服务层由重要服务组成,包括作为Docker容器部署的订单、存储、对等和Hyperledger CA服务,当前的实现利用Hyperledger Fabric作为区块链平台,通过REST API连接到MEC节点和云服务,提供提交和检索交易,智能合约部署在Hyperledger区块链中,通过REST API与IPFS连接。
首先对所提框架中证书访问操作验证,证书访问操作是PKI生态系统上最重要且最常见的操作之一,在与持有证书的节点连接或交互之前,节点可能需要检查证书状态。事务遵循泊松到达,具有对应于每秒事务的定义平均值,为每秒生成的事务定义速率参数λ。IoT设备是通过仿真中的多线程软件代码执行的,进行测试时,rate参数是可配置的。事务生成遵循速率参数为λ的Poisson分布,并且在时间段内观察到z个事件的概率表示为P(X=z)=e-λ/z!,运行时内存消耗和事务处理时间(例如,到函数调用往返的经过时间)是评估中测量的主要参数。图2和图3给出了所提框架访问查询性能与常规证书的ElasticSearch性能对比。
图2 CA和区块链的ECQV隐式证书访问时间
图3 CA和区块链的ECQV隐式证书内存开销
可以看出,就内存和时间效率而言,区块链的性能优于基于ElasticSearch的CA模拟器的证书访问查询,这是因为从区块链访问证书类似于直接访问数据库。尽管ElasticSearch是用于搜索的最佳数据存储,但是由于安全原因,无法将其连接为访问节点的接口。ElasticSearch使用特定于需求的API与节点连接,以限制数据订户的访问范围。相比之下,区块链可直接作为数据库访问,并具有内置的共识机制和完整性机制,可防止数据更改和DoS攻击等攻击。ECQV隐式证书的轻量性质利用了以最小的存储开销和更快的查询能力存储在区块链上的优势。该模拟每秒可扩展至500个事务,并且在区块链上进行查询以访问证书时具有更大的可扩展性。
与现有的框架从不同特征方面进行比较,现有方法有:文献[14]中基于联盟区块链的医疗健康数据安全模型,文献[15]中基于边缘认知计算的智能医疗系统,文献[16]中基于区块链和物联网的认知边缘框架,文献[17]中基于区块链的安全户外健康监控方案。对比结果如表1所示。
表1 不同物联网服务框架的性能特征对比
可以看出,本文物联网服务框架具有ECQV证书、匿名性、数据共享和访问撤销等8个特征方面,比现有其他物联网服务框架的特征更全面,这是因为本文框架中引入多维度的方法,首先ECQV隐式证书保证了物联网数据的安全,并通过区块链的智能合约进行了验证。另外,该框架链接到区块链和IPFS,在资源受限的情况下实现端到端的安全性、可扩展的数据存储,高吞吐量和高效的操作能力计算基础架构;多接入边缘计算联合区块链,能够实现去中心化的智能数据的实时更新和检索。ECQV证书结合智能合约,为数据共享和访问撤销提供了通道。
4 结 语
本文提出了一种基于ECQV隐式证书、MEC和区块链的物联网多维度安全服务架构,该架构可提供数据隐私、安全的智能数据服务。首先提出了使用分布式分类账技术管理ECQV隐式证书生命周期的解决方案,分布式分类账充当防篡改数据库,并为不同目的提供更快的证书检索,为调查提供了吊销历史记录的透明记录;在内存方面,ECQV证书的轻量级性质在相关操作中产生最佳结果。通过MEC卸载到可扩展的IPFS存储来优化区块链存储,以确保将大量已连接的设备连接到云的可扩展性。最后通过注册阶段、患者区块链-云更新及检索、数据共享和访问撤销等多个阶段来实现健康数据的安全服务。与现有其他物联网框架的性能比较验证了所提框架的有效性。