谭朋柳,王雪娇,唐伟强,万里旭冉
(南昌航空大学 软件学院,江西 南昌 330000)
随着全球网络化的发展,医疗设备有了更完备的功能,但由此也产生了一些安全威胁,其中MCPS[1]中保存着大量的医疗数据,关系着患者的隐私和安全,由于MCPS的复杂、难控程度高,医疗数据的传输和存储都得不到很好的保障,数据安全问题日益凸显,保护数据安全亟待解决。因此,如何将区块链技术应用于MCPS已成为一个值得研究的方向。
区块链(Blockchain)定义请参见文献[2]。区块链的存储结构与MCPS分布式存储的数据安全研究方向相切合,并且区块链的点对点(Peer-to-Peer, P2P)传输机制可以使MCPS医疗数据安全传输并提供数字签名验证。本文构建了二者深入融合的BCMCPS(blockchain medical cyber-physical systems)数据安全保护架构,相对传统的集中式存储的MCPS,BCMCPS规模更大、难控程度更高,也更复杂。在BCMCPS中利用区块链技术进行医疗数据传输和存储更为安全,能解决传统MCPS中存在的一些数据安全问题:数据的不可篡改性;数据的可追溯性;数据的可验证性。
信息物理融合系统(cyber-physical systems, CPS)由美国国家航空航天局提出。CPS定义请参见文献[3]。德国汉诺威工业博览会召开于2013年4月,会上提出的重要概念——工业4.0,把CPS作为未来工业发展中最关键的技术之一[4]。欧盟在对CPS的研究中投入了大量资源,欧盟于2007年-2013年这7年间仅在嵌入智能与系统的先进研究与技术上就投入了超过50亿欧元[5]。日本在2008年前后开始关注CPS的研究发展,东京大学和东京科技大学等高等研究机构,对CPS技术在智慧医疗及人工智能等方面的应用研究处于世界前列[6]。
我国在CPS提出的初期就开展了大量有关CPS的研究。2012年,赛博(Cyber)协同创新中心首先提出了工业信息物理融合系统(industry cyber-physical systems, iCPS),iCPS定义请参见文献[7]。此外,国家将CPS作为最关键的基础技术之一,加强CPS的研究、推动CPS的应用,CPS的发展推动了我国整个智能制造业的发展[8]。
无线传感器网络(WSN)、医用传感器、云计算的发展,为CPS在医疗行业的应用奠定了基础,为MCPS提供了强有力的支持,这些技术的发展使得远程观察患者的情况而不用考虑患者的地理位置成为可能[9]。相当多的关于医疗传感器研究正在开展,这些传感器能够收集患者关于健康的重要数据信息,数据通过无线通信发送到网关中,有线传感器也可以使用但是无线传感器为医护人员和患者提供了更多的灵活性和舒适性。基于文献[10]对MCPS应用的描述,MCPS主要构成如图1所示。
图1 MCPS结构
2008年,中本聪提出了区块链的概念,区块链是一种全新的分布式基础架构与计算方式[11]。区块链的数据区块由区块头和区块体构成[12]。区块头由前置区块的哈希值、本区块的哈希值、版本号、Nonce值、Merkle根、时间戳等信息构成,主要作用是对区块的唯一性进行标识;区块体中则主要封装的是数据信息[13]。区块链存储结构如图2所示。
图2 区块链存储结构
本文提出的BCMCPS架构主要是将区块链技术应用于MCPS中的数据传输和数据存储,从而使MCPS更加安全与智能。此外,BCMCPS还可以实现对医疗数据追溯与共享。本文基于分布式存储的思想对MCPS框架进行了重新梳理,构建了一个安全、可靠的BCMCPS架构,其层级划分如下:①物理层;②数据存储层;③系统应用层。
BCMCPS架构最显著的特点是分布式存储,MCPS中物理层的物理构件多为低功率、低存储的感知设备和传输设备,而作为医疗系统,对设备的准确测量和数据高效传输有着极高的要求,因此,物理层的高效传输非常关键。此外,数据存储层要同时具备节点互传、数据封装成区块以及共识验证上链等一系列功能。而系统应用层利用区块链技术中由自动化脚本代码组成的智能合约来操作数据,实现医疗系统的多样化功能。基于以上3个层面,BCMCPS分层架构如图3所示。
图3 BCMCPS的分层架构
物理层是BCMCPS的最基本层级,物理层基础构件包括物理实体、传感器、执行器以及与外界交互的其它物理设备。物理实体就是患者,传感器包括心电图传感器、脉搏传感器、血压传感器等,执行器如胸部按压执行器、药物注射执行器等,其它物理设备起辅助作用。物理层可以实现对物理实体及外部环境的状态感知和控制,因此,BCMCPS的物理层构件具备感知能力和控制能力。
物理层以传统MCPS的物理层作为整个BCMCPS的底层支撑,不与区块链技术相融合,具备传统MCPS物理构件的基本感知与医疗数据存储、传输功能。其目的是不需要在传感器或其它设备中添加存储、决策等其它复杂的功能,只需具有简单采集医疗数据和传输数据到上一层节点的基础功能,使其达到实时采集医疗数据的效果。
MCPS可适用于所有的医疗应用,医疗诊断大体可分为两类,一类是紧急救治,抢救、急救[14,15]患者一个重要原则就是争取时间,因此,在抢救、急救过程中,医护人员要根据从患者身上采集的实时数据进行判断并及时给出具体的治疗方案;另一类就是普通治疗,包括普通住院治疗、出院的康复治疗、非住院诊断治疗等等,这些医疗诊治对医疗数据的实时性要求相对较低,医护人员可通过网络对患者进行治疗指导。物理层传感器采集的医疗数据可以传输给上层网络节点,还可以直接在显示器上进行显示,帮助医护人员通过实时数据采取最佳的治疗方案,这样的目的是省略数据层将数据封装成区块的过程,节省时间,提高急救的效率,为患者争分夺秒,让患者在有限的时间内得到最佳的治疗。系统过程模型如图4所示。
图4 系统过程模型
BCMCPS架构模型的数据存储层将区块链的数据层、网络层、共识层融合到MCPS中的网络层,使网络中的节点具有区块链数据层、网络层、共识层的效果,实现全网范围内的互联互通和资源共享。
BCMCPS的数据存储层的节点互联,其作用并不是将从物理层采集的医疗数据进行简单的汇总,而是要实现医疗数据的标准化统一和深度整合,同时对新加入的物理设备进行审核验证,统一节点之间的联结规则,维护该层的数据区块并记录物理设备之间的连接方式和传输方式,完成区块的备份、存储以及相关信息的查询。各网络节点作为网络中的对等节点进行互联互通[16],构成一个完整的医疗数据获取过程,具体数据传输过程如图5所示。
图5 医疗数据传输过程模型
在数据存储层中,各网络节点首先将从传感器传输得到的原始医疗数据根据指定的标准化规则进行标准化处理,并通过节点互联得到其它节点的医疗数据,首先得到完整医疗数据的节点会立刻向全网申请建立新的医疗数据区块,全网其它节点通过验证后确信该节点可以信任,并同意该节点建立新的医疗数据区块,然后,该节点将完整的医疗数据封装成一个新的数据区块并向全网广播这个新的数据区块,其它各节点收到此数据区块后根据得到的原始医疗数据验证这个新区块是否完整、正确,通过一致验证后,各节点将该医疗数据区块链接到自己的主区块链上。具体医疗数据区块链生成过程如图6所示。
图6 医疗数据区块链形成过程
此过程中的共识验证采用数字签名的方式实现一致性的验证,从而规避采用其它复杂共识算法对资源和数据的浪费,同时,采用数字签名的方式达成节点之间的共识相比于其它复杂的共识算法可以节约共识时间,提高系统效率。由于节点之间互通,医疗数据存储在各个节点中,可以实现数据共享和数据备份。节点建立新的数据区块后向全网广播的信息包数据格式见表1。
表1 信息包数据格式
区块链技术中传输数据一般采用非对称RSA加密技术,目前此种加密技术安全性良好,采用此种技术传输数据可以防止数据在传输过程中被窃取,因为即使数据区块在传输过程中遭到监听,由于RSA加密算法反向解析的困难程度大,侵入者也很难从密文中解析到原文,从而使医疗数据在传输中更加安全。
BCMCPS的系统应用层建立在数据存储层封装的医疗数据基础上。系统应用层的一系列应用可以体现系统的完备性和多样性,也是人与系统交互的最终形态。区块链中应用层基本应用有权限管理和资源管理,而MCPS应用层除包含这两种基本应用外,更多的是针对医疗领域的一些应用,例如:实时监控、远程诊疗、网络会诊等等,在MCPS中利用区块链技术不仅能够实现以上功能,同时,还能够达到数据备份和全网共享的目的。
BCMCPS的系统应用层基于数据存储层形成的医疗数据区块链,将区块链技术的合约层与MCPS的应用层相融合。例如,电子病历最能体现区块链的优势,病历是患者的医疗记录,包含患者的各种信息,以区块链的形式保存电子病历可以防止患者信息的泄露、他人的盗取或篡改,更能防止病历的丢失。除此之外,电子病历可以设置权限,能更好地为医患人员提供不同服务。另外,利用区块链技术中的智能合约,可以实现定时提醒患者吃药、复诊等功能,能够达到更好的医疗诊治,使系统更加智能化、多样化,实现智能治疗。
数据存储层的每个网络节点都有两条数据链存储结构,一条是设备管理数据的链式存储结构,另一条是医疗数据的链式存储结构。采用两条链的优点是便于存储、管理和查询数据。
在BCMCPS中,设备管理数据的存储分为两种:一种是物理层的基本物理设备,例如,血压计、心电图检测仪、温度计等等;另一种是物理节点构件的加入。当新的物理层设备需要添加到系统中时,先与某一节点相连,然后向该节点发送自身信息证明自身存在的合法性,例如,设备类型、设备ID、设备名称等等,通过验证后将该设备加入到想要连接的节点管理的系统中,一旦经过验证,该设备便可以采集医疗数据传输到与之相连的上层节点,其采集的医疗数据也将被认为是可信的;若要在系统中加入新的节点,新节点先利用系统使用的非对称加密技术生成一套具有唯一标识的数字签名,即公钥和私钥,然后向全网广播利用私钥加密的带自身标识信息的数字证书以及公钥,其它节点收到信息后会利用该节点发送的公钥对其数字证书进行解密,验证该节点的身份信息,通过验证后确认该节点加入到系统中,经过验证后,该节点便可以和全网任意节点互联互通,其数据也将被认为是可信的。以上过程实现了医疗数据一致性的验证。设备管理数据的区块结构如图7所示。
图7 设备管理数据的区块结构
物理层通过传感器采集医疗数据,并将数据传输至数据存储层,数据存储层先对采集到的原始医疗数据进行判断,将超过取值范围的数据丢弃并反馈给传感器重新采集数据,将合法的数据进行存储,然后根据统一的规则将数据进行标准化处理,最后节点互通建立新的数据区块,通过验证后将新的数据区块添加到主链上。医疗数据上链后无法进行修改和删除,查看数据也要通过授权验证,因此数据存储层采用区块链结构存储医疗数据可以有效防止医疗数据被篡改和窃取。
此外,除了通过物理层采集的医疗数据外,还有一些诊断、治疗记录,这些记录也会通过节点收集生成医疗数据区块上链,也就是电子病历,通过授权,客户可以进行查看。
BCMCPS的数据存储层要实现异构医疗数据的标准化处理,因此,在数据存储层中,区块的区块体中主要包含的信息:①信息发送设备身份识别信息;②信息接收设备身份识别信息;③数字签名;④信息类型以及数据标准化规则;⑤各种算法;⑥医疗数据。①-③项用于解决医疗数据一致性验证、数据传输问题;第④项则主要用于医疗数据的标准化处理[17],方便医疗信息的存储和共享;第⑤项中的算法主要包括两种,一种是加密算法[18],用于传输过程中加密医疗数据,防止数据被非法截取;另一种是数据压缩算法[19],用于最大程度地减小医疗数据的存储容量。医疗数据的区块结构如图8所示。
图8 医疗数据的区块结构
利用区块链技术可以解决传统MCPS存在的诸多数据安全问题,本文提出的BCMCPS架构可以使MCPS中的医疗数据在具有真实性、可靠性的同时还具有可共享性、不可篡改性、可追溯性和可验证性。BCMCPS与传统MCPS安全性对比见表2。
表2 安全性对比
数据不可篡改性定义请参见文献[20]。在BCMCPS中,医疗数据一旦形成区块上链是不可重写的,即医疗数据是不可篡改的。在传统集中式存储MCPS的关系数据库中,增、删、查、改一条医疗数据记录是非常简单且容易操作的,任何人只要获取管理员权限,都可以对医疗数据进行任意操作。在BCMCPS中,每个医疗数据区块在全网的所有分布式节点中都有备份,想要修改某个数据,就必须修改所有节点上的该数据。假设我们想要对某个医疗数据进行篡改,该数据所在的当前区块的哈希值会受到该字段的影响而发生改变,那么后一链接的医疗数据区块的哈希值也会随之发生改变[26],以此类推,后续链接的所有区块的哈希值都将会发生改变。因此,想要篡改数据几乎是不可能实现的,BCMCPS使得医疗数据具有不可篡改性。
数据可追溯性定义请参见文献[21]。本文提出的BCMCPS架构中每个网络节点都有两条区块链,即设备管理数据区块链和医疗数据区块链。设备管理数据区块中记录着全网中所有物理设备的全部信息;医疗数据区块中不仅记录着医疗数据,还记录了整个医疗数据的传输过程,包括采集数据的时间、物理设备ID和医护人员对患者的诊断记录等等,不仅可以对数据进行跟踪,还可以对数据的来源进行追溯,发现医疗数据有问题时,系统可以快速、准确地分析查找出发生问题的时间、地方和原因。因此,BCMCPS使得医疗数据具有可追溯性。
数据可共享性定义请参见文献[22]。在传统MCPS中医疗数据是不可共享的,原因是每个独立的医疗系统都有自己的中心数据库,不与其它医疗系统共享,医护人员只可以访问自己系统的数据库,无权访问其它医疗系统的数据库。当医护人员想要从其它医疗系统了解患者更多信息时,要向该系统发送信息进行咨询,管理员收到请求后再对所咨询的信息进行查询并给出回复。本文提出的BCMCPS架构中全网节点都有自己的医疗数据链,并且网络节点的数据是共享的,因此,BCMCPS使得医疗数据具有可共享性。
数据可验证性定义请参见文献[23]。BCMCPS中使用了区块链的数字签名技术进行数据验证。首先,某一节点想要建立新的医疗数据区块,必须向其它节点发送请求,通过全网其它节点的验证后才可以建立新的医疗数据区块;其次,建立好新的数据区块后还要通过全网节点的二次验证后才可上链,通过数字签名的方式多次验证节点和医疗数据,因此,BCMCPS使得医疗数据具有可验证性。
本文对传统MCPS所面临的数据安全进行研究,利用区块链的分布式存储、点对点通信等特性,提出了将区块链技术与MCPS相融合保护数据安全的思想,构建了BCMCPS架构,对区块链和MCPS的结构进行融合,重新划分为物理层、数据存储层和系统应用层,此外,在BCMCPS架构的数据存储层采用两条链对设备管理数据和医疗数据进行分别存储,并给出了具体的存储结构,确保了医疗数据的安全性。此外,本文还对BCMCPS与传统MCPS安全性进行对比,具体分析了BCMCPS具有可共享性、不可篡改性、可追溯性和可验证性。
目前采用区块链技术存储、传输数据较为安全,但随着超级计算机计算能力的不断增强,采用非对称加密技术加密数据的安全存在潜在的威胁,未来的工作是对区块链中的加密技术做进一步的研究,以提升区块链存储、传输的安全性。