基于集成信用度评估智能合约的安全数据共享模型

更新时间:2023-07-05 20:47:34 阅读: 评论:0

基于集成信用度评估智能合约的安全数据共享模型
张乐君 1
刘智栋 1
谢 国 2
薛 霄
3
摘    要  区块链技术是一种新兴技术, 它具备防篡改、去中心化、分布式存储等特点, 可以有效地解决现有数据共享模型中隐私安全、用户控制权不足以及单点故障问题. 本文以电子病历(Electronic health record, EHR)共享为例提出一种基于集成信用度评估智能合约的数据共享访问控制模型, 为患者提供可信EHR 共享环境和动态访问控制策略接口. 实验表明所提模型有效解决了患者隐私安全和对EHR 控制权不足的问题. 同时就模型的特点、安全性以及性能进行了分析.关键词  区块链, 信用度, 智能合约, 电子病历, 访问控制
引用格式  张乐君, 刘智栋, 谢国, 薛霄. 基于集成信用度评估智能合约的安全数据共享模型. 自动化学报, 2021, 47(3):594−608
DOI    10.16383/j.aas.c200797
Secure Data Sharing Model Bad on Smart Contract With Integrated Credit Evaluation
ZHANG Le-Jun 1    LIU Zhi-Dong 1    XIE Guo 2    XUE Xiao 3
百发百中的意思是什么Abstract    Blockchain technology is an emerging technology, it has the characteristics of anti-tampering, decentra-lization, and distributed storage. It can effectively solve the problems of privacy curity, insufficient ur control rights, and single point failure in the existing data sharing model. This paper takes electronic health record (EHR)sharing as an example and propos a data sharing access control model bad on smart contract with integrated credit evaluation to provide patients with a trusted EHR sharing environment and dynamic access control policy in-terface. Experiments show that the propod model effectively solves the problems of patient privacy curity and insufficient control of EHR. At the same time, the characteristics, safety and performance of the model are analyzed.
Key words    Blockchain, credit, smart contract, electronic health record (EHR), access control
Citation    Zhang Le-Jun, Liu Zhi-Dong, Xie Guo, Xue Xiao. Secure data sharing model bad on smart contract with integrated credit evaluation. Acta Automatica Sinica , 2021, 47(3): 594−608
云辅助电子病历(Electronic health record,EHR)系统的广泛部署显示出在管理医疗机构和EHR 方面的巨大好处[1], 世界各地纷纷采用新技术来管理EHR. 然而除了巨大的优势之外, EHR 在云上的存储还面临着安全问题[2−3]: 1)未经患者授权的第三方可能会恶意访问EHR, 这对于EHR 共享中数据的完整性、隐私性和安全性存在不利影响[4].2)患者很难跟踪和管理存储在云中的EHR.
针对这些问题, 许多研究[5−8]提出了用于云服务器的存储、管理和共享技术. 这些研究使用不同的密码学技术和云技术设计EHR 共享访问控制模型以实现隐私保护和访问控制. 尽管这些研究高度重视数据安全和隐私保护, 但系统仍然存在患者密钥管理困难、EHR 共享透明度不高以及密钥存在泄露风险等问题.
随着区块链技术的发展, 其特有的去中心化、可追溯性和隐私性推动了信息互联网向价值互联网的转变[9]. 越来越多的学者开始研究基于区块链的EHR 共享模型. MedRec [10]是一种使用区块链技术处理EHR 的新型的、分布式的管理系统. MedRec 将模块化设计与医疗提供商现有的本地数据存储解决方案集成在一起. 薛腾飞等[11]提出基于改进的DPOS (Delegated proof of stake)共识的区块链医疗共享模型, 详细介绍了模型的组件以及实现原理. 基于以太坊区块链的Ancile [12]利用智能合约增强访问控制和数据混淆. 文中详细描述了患者、EHR 提供商和第三方之间的交互过程. MedChain [13]与 An-cile 类似, 通过精心设计智能合约实现访问控制, 同
收稿日期 2020-09-25    录用日期 2020-11-04
Manuscript received September 25, 2020; accepted November 4, 2020
江苏省高等学校自然科学基金(17KJB520044), 江苏省六大人才高峰项目基金(XYDXX-108)资助
江雪的古诗
Supported by Natural Science Fund for Colleges and Universit-ies in Jiangsu Province (17KJB520044) and Six Talent Peaks Project in Jiangsu Province (XYDXX-108)本文责任编委 杨涛
Recommended by Associate Editor YANG Tao
1. 扬州大学信息工程学院 扬州 225172
2. 西安理工大学自动化与信息工程学院 西安 710048
3. 天津大学智能与计算学部 天津 300072
1. College of Information Engineering, Yangzhou University,Yangzhou 225172
2. College of Automation and Information Engineering, Xi ' an University of Technology, Xi '
an 710048    3. Col-lege of Intelligence and Computing, Tianjin University, Tianjin 300072
第 47 卷  第 3 期自  动  化  学  报Vol. 47, No. 32021 年 3 月
ACTA AUTOMATICA SINICA
March, 2021
时, MedChain加入了激励机制, 给出了计算EHR 质量的方法. 张超等[14]提出基于PBFT (Practical Byzantine fault tolerance)的联盟式医疗区块链系统, 具有较好的适用性. 文献[10−14]为现有分散在各个机构的医疗数据提供基于区块链的访问控制模型, 但分散在各个医疗服务商手中的数据仍然存在被破坏的风险.
另一部分研究人员将云服务和区块链技术相结合来实现EHR的共享. Xia等[15]提出BBDS (Blockchain-bad data sharing)模型, 该模型利用用户的身份和成员加密密钥来验证用户是否可以从共享池中获取数据. 但是, 对于成功加入共享组的成员没有其他限制. Tang等[16]着重研究了基于区块链的云存储模式下EHR共享的身份验证问题, 提出了多方授权的身份签名模型, 并具有很好的抗共谋能力. Liu等[17]设计了基于CP-ABE (Ciphertext-policy attribute bad encryption)的访问控制机制和内容提取签名模型, 在数据共享方面提供了强大的隐私保护. 此外, 通过在智能合约中预设访问权限确保数据被安全共享. 文献[15−17]采用云服务和区块链技术相结合的新模式, 但它们的访问控制策略较单一, 无法满足患者对EHR动态访问控制的需求.
现有的EHR共享研究中缺乏信用度评估机制,本文采用云服务和区块链技术相结合的模式, 在区块链
智能合约中加入用户信用度评估机制, 为患者提供动态可调节的访问控制策略. 本文的主要贡献有以下几个方面:
1) 提出了一种信用度评估机制, 将信用度评估机制集成到智能合约访问控制中, 在患者缺乏对第三方信任的环境中为患者提供信用度参考. 通过智能合约, 患者可以动态地调节访问控制策略.
2) 提出将云存储和基于权威证明(Proof of auth-ority, PoA)共识机制的区块链相结合的框架. 云存储用于存储加密的EHR, PoA共识区块链保留加密EHR的索引. 我们对交易处理速度进行了统计分析, 证明了所提模型的可行性.
3) 基于以太坊Go Ethereum开发了所提模型的系统, 建立了一个私有链测试网络. 我们分析了系统中可能存在的恶意攻击和共谋行为, 并建立了基于信用度的奖惩机制和监督机制. 实验结果表明我们的机制能有效阻止恶意攻击行为并及时发现共谋行为. 最后, 理论分析表明, 我们的模型较现有一些通过智能合约实现EHR访问控制的模型更简单,交易反馈延时更少.
1    预备知识
本节将介绍本文用到的智能合约技术和密码学技术.1.1    智能合约
智能合约是存储在区块链上自动运行的脚本. 1994年Nick Szabo提出相关概念, 将智能合约定义为一种
我想变成什么
通过代码程序自动执行的交易协议. 满足合约条款的交易相关者, 无需第三方管理者的监督就可自动执行交易. 由于缺乏可支撑合约自动执行的平台和相关技术, 直到区块链技术的出现, 才使得智能合约这项技术得到应用. 随着区块链的不断发展, 以太坊的出现[18]首次将区块链和智能合约结合, 通过以太坊虚拟机(Ethereum virtual machine, EVM)来处理区块链上的交易. 区块链确保了智能合约的用户在可信的环境下遵循合约规则自动执行合约代码, 同时利用区块链的透明性和可追溯性,跟踪合约状态. 智能合约的可扩展性、自动化为EHR 共享提供了便利. 利用区块链中存储的医疗数据、支持外部数据的预言机[19]以及信用度机制, 患者可以在智能合约中设置信用度阈值和其他访问控制参数, 实现复杂的访问控制策略.
智能合约预言机机制[19]验证外部数据. 在智能合约中使用合约自带的函数ecrecover可以验证外部数据写入者的签名, 该函数需要数据的Hash值和签名对{v, r, s}. 所以对数据的签名需要遵循ecrecover函数的规则. 实际上, 数据需要经过两次sha256的Hash操作后才能进行签名,签名结果中32字节的r和s来自椭圆曲线数字签名算法(Elliptic curve digital signature algorithm, ECDSA)的输出值, 一个字节的v则是用于恢复签名结果的标识,以太坊中为27或28.
在智能合约中, 数据主要分为Storage和Memory 两种类型, Storage类型数据也可称为合约的状态变量, 会永久存储在区块链中; Memory则是临时变量, 交易处理完成后该类型变量会被清空. 所以在编写合约时, 需要为永久存储的数据定义Stor-age类型变量, 而不仅仅是处理交易逻辑.
2    基于集成信用度评估智能合约的安
全数据共享模型
本节设计了一种基于智能合约的电子病历共享访问控制模型(EHR smart contract access con-trol model), 为方便描述, 将其简称为EHR-SCAC.下面分别从模型的整体框架和工作流程进行介绍.
2.1    EHR-SCAC系统模型
古风诗句如图1所示, EHR-SCAC分为三层架构, 由数据获取层、数据存储层和数据共享层组成.
3 期张乐君等: 基于集成信用度评估智能合约的安全数据共享模型595
2.1.1    数据获取层
梦想启程在本层中, EHR 由医生创建并发送给医院, 医
院整理格式后, 由医生签名发送给患者. 签名的目的是确保 EHR 的完整性. EHR 的共享权和所有权属于患者. 同时, 机构在研究患者 EHR 时, 可能发现EHR 存在误诊, 所以机构可以共享他们的研究报告.2.1.2    数据存储层
数据存储层的主要功能是存储加密的EHR 和给区块链提供EHR 的存储索引url , 数据存储层由以下两部分组成.
1) 云存储. 存储患者加密的EHR, 给出EHR 的存储索引url .
2) PoA 区块链. 存储EHR 的索引url 并实现EHR 共享. 患者通过区块链中智能合约预先定义访问控制策略, 确保EHR 的安全共享, 任何人对EHR 的访问都将保存在区块链网络中. 同时, 身份管理中心 (Identity management center, IDM)和审计节点充当了链外数据进入区块链的媒介, 起到身份认证、审计和监督的作用.2.1.3    数据共享层
对孩子的评价
在本层中, 已身份认证过的医疗工作者、机构可以访问患者的EHR. 方便医生了解患者的病历史和给予患者更好的治疗, 同时也为医疗机构提供了重要的研究资料.
2.2    EHR-SCAC 工作流程
如图1所示, 模型的工作流程大致如下:① 用户身份登记: 用户将真实身份ID 和身份证明V ID 发送给IDM, IDM 验证用户身份. 同时,IDM 会调用智能合约对用户进行成员登记, 用户以太坊公钥pk 即为成员公钥. 将必要的用户信息存储在区块链中. 如果用户是机构, 则机构会成为审计节点.
② 身份认证后的患者, 可以调用智能合约设置EHR 的全局访问控制策略.
③ EHR 的生成: 该过程参与的实体有医生、医院和患者. 为了确保EHR 的完整性, 在医院将EHR 发给患者前, 医生需要对EHR 的Hash 值ehr_hash 使用以太坊私钥进行签名, 记为sig d . 如果EHR 存在问题, 则医疗纠纷的责任最终由医生承担, 这也符合实际情况. 医院将EHR 、医生的签名sig d 发给患者.
④ 患者从医院获取到EHR 和sig d 后, 患者的本地客户端随机生成一个对称密钥smk 加密EHR,得到[EHR]smk .
⑤ 患者将[EHR]smk 和ehr_hash 上传到云端,云端返回EHR 的存储索引url .
[smk ]pk p ⑥ 患者使用以太坊公钥pk p 加密smk 获得 , 然后调用智能合约的共享EHR 接口函数, 将EHR 的索引等信息存入区块链. 智能合约检测患者的身份注册信息, 验证通过后合约会记录url 与患者以太坊公钥pk p 的对应关系, 将必要的数据存储到合约相关的变量中. 同时, 合约会为该EHR 初始化一个白名单并将患者加入其中. 随后, 患者便可调用合约给白名单添加成员, 方便非机构用户如医生的访问.
医生
误诊修改形成研究报告
IDM/审计节点研究人员
机构
患者
医院
4
图 1    EHR-SCAC 整体架构Fig. 1    EHR-SCAC overall framework
596
自      动      化      学      报
47 卷
⑦ 机构在研究EHR 时可能发现患者的EHR 存在误诊, 机构可以更正EHR, 将研究报告证明发布到云端. 云端返回研究报告的索引r_url . 机构调用智能合约共享研究报告r_url . 与预言机机制相同, 合约会触发投票事件通知审计节点根据研究报告索引在链下对报告进行审核. 审计节点会调用智能合约改变研究报告投票状态变量. 当投票数超过设定的阈值, 机构便成功共享研究报告, 这有利于机构信用度的
增加. 同时, 机构链下通知IDM, IDM 联系患者重新共享更正后的EHR. 该过程患者重复②③④操作, EHR 的医疗纠纷也由原先的医生负责变为机构负责, 且需要将更正后的EHR 的索引记录到错误EHR 记录的结构体变量中.
[smk ]pk r ⑧ 如⑥中所述, 若请求者在EHR 的白名单中,则可以直接查询到解密密钥. 否则, 请求者需要调用智能合约获取EHR 的请求权限, 智能合约会触发事件随机选择一个审计节点对请求者发起工作量证明 (Proof of work, PoW)难度挑战(第2.3.2节中将详细介绍). 完成PoW 挑战后, 请求者获得审计节点的签名sig A , 然后请求者再次调用智能合约请求EHR 的解密密钥. 智能合约根据患者制定的访问控制策略验证请求者. 通过访问控制策略后,请求者会被加入患者EHR 的白名单中, 同时合约触发代理重加密事件, IDM 通知患者生成重加密密钥[K ]p -r 并发送给云端, 云端执行代理重加密任务,生成  并发给请求者, 请求者可以调用智能合约将解密密钥存入智能合约中.2.3    EHR-SCAC 的信用度评估机制
本节提出一种信用度评估方法, 同时设计信用度奖惩机制和监督机制用来维护系统的稳定和安全.2.3.1    EHR-SCAC 信用度评估
机构的信用度并不能从单一特性进行评判, 本文采用模糊层次分析法(Fuzzy analytic hierarchy process, FAHP)[20−21]对用户的信用度进行评判. 先将用户的信用度分为n 个特性, 再把每个特性分为若干个特征类型, 将模糊的用户行为信用评估问题转化为简单的、明确的信用特征加权求和问题.
FAHP 解决问题的步骤分为4步: 1)分析问题, 将问题划分为多层次结构; 2)以上一级要素为准, 将同一层次的特征两两比较, 获得初始判断矩阵; 3)将初始判断矩阵转换为模糊判断一致矩阵,通过计算确定各特征以及各特性的权重; 4)根据规范化的特征值和权重计算出信用度.
步骤 1. 如图2所示, 将信用度分为3层. 为了不给区块链造成负担, 需要建立易检测、易收集的
用户行为特征方案. 在处理合约交易时会更新机构的这些行为特征(在第2.4节中将作详细说明).
C =[c ij ]n ×m C E =[e ij ]n ×m .EQ =[eq ij ]v ×v ,步骤 2. 建立行为特征矩阵  , n 为特性个数, m 为特性中行为特征个数的最大值, 不足的项用零表示. 由于各特征的值区别较大, 我们需要对矩阵  进行归一化处理, 将值规范为[0,1]的特征矩阵  将同一特性下的特征的重要性两两比较获得初始判断矩阵 v 是某个特性下行为特征的个数, 如服务特性P 下v = 5.
E p =[e 1,e 2,···,e v ]EQ 以服务特性为例, 其特征矩阵  , 利用式(1)获得初始判断矩阵  .
然后, 通过式(2)将初始判断矩阵转化为模糊判断
步骤 3. 使用式(3)计算服务特性下各特征的w P =[w p 1,w p 2,w p 3,w p 4,w p 5]w R =[w r 1,w r 2]w S =[w s 1,w s 2]w F =
从而得到  . 对于其他特性, 同样利用式(1) ~ (3)可得可靠特性
R 的特征权重向量  , 安全特性S 的特征权重向量  , 以及特性权重向量 图 2    用户行为特征分类
Fig. 2    Classification of ur behavior characteristics
3 期张乐君等: 基于集成信用度评估智能合约的安全数据共享模型
597
[w f 1,w f 2,w f 3] .
步骤 4. 根据式(4)计算机构的信用度.
w Ng
c w P w R w S ,w Ng
f w F ,Cr P t Cr N
g w f w F ,w c w P w R w S .
其中,  属于  、  和  表示负面特征的
权重.  属于  表示负面特征权重所在特性
的特性权重.  和  分别是正面信用度和负面信用度, 它们的计算可统一为式(5), 其中,  属于      属于  、
和 e ij εεn ij e ij bn bn ij e ij 即正面信用度为正面行为特征与其权重乘积的和,
负面信用度为负面行为特征与其权重乘积的和. 但是, 对于图2中s 1和s 2这类违规行为的计算需要进行改进. 对这两个行为目的是监督, 同时考虑到机构的误操作会导致此类事件发生, 所以机构如果存在s 1和s 2违规时, 系统应能及时对机构的信用度进行惩罚, 并且机构的信用度随时间流逝能够逐渐恢复. 所以,  为s 1和s 2时, 这两个行为特征的计算需乘以一个系数  ,  如式(6)所示.  表示机构做出负面行为特征  的次数.  表示当前区块号,  表示负面行为特征  最后一次发生时所在的区块号.
2.3.2    信用度奖惩机制
比特币和以太坊采用PoW 共识机制来维护区块链的安全, 使得恶意节点很难成功攻击区块链,除非恶意节点掌握了全网51%的算力. 虽然PoW 机制对于交易验证速度要求极高的场景应用十分有限, 但其思想值得学习[22].
word怎么删页
第2.3.1节给出了计算信用度的方法. 从第2.3.1节中的图2可以看到两种恶意行为, 在介绍信用度奖惩机制前首先了解两种恶意行为.
1)未经授权访问行为
机构请求EHR 时, url 对应的患者pk p 可能会被未通过患者访问控制策略的机构替换, 选择访问控制策略要求低的患者, 从而绕过EHR 持有者的访问控制策略. 与前面类似, 未通过患者访问控制策略的机构利用其他高信用度节点的成员公钥pk 来发送合约交易, 以此达到访问患者EHR 的目的.
2)伪造签名行为
机构请求EHR 的解密密钥前需要获取审计节
点的签名sig A , 所以机构可能伪造签名直接申请解密密钥.
在我们的系统中, 患者共享EHR 时, 智能合约会记录url 与患者的成员公钥pk 的关系. IDM 在用户通过系统身份认证后调用智能合约将以太坊地址和成员公钥pk 的对应关系写入了区块链. 同时,智能合约的ecrecover 函数可以验证签名. 所以, 以上行为可以得到阻止. 但系统无法阻止恶意节点发送大量此类的无效交易, 如果不能有效制约, 将会对系统的稳定性造成影响. 考虑到比特币和以太坊通过
PoW 机制使得恶意节点的攻击成本很高. 所以本文设计了基于信用度的PoW 奖惩机制. 在我们的系统中, 智能合约记录了机构的信用度属性(即图2中的行为特征), 一旦检测到违规行为, 违规行为会被保存到信用度属性中, 机构的信用度也随之下降. 式(7)给出了PoW 难度与信用度的关系
λλλ其中, Diff 表示机构请求EHR 的难度.  是一个固定值, 其应该根据机构的普遍算力进行设置, 实际应用中可以参考比特币的算力更新方法, 根据出块时间即算力调整  . 本文测试了实验设备的PoW 难度与PoW 算法执行时间, 根据测试结果将  设为8, 使机构违规情况下PoW 算法执行时间能够达到惩罚目的, 同时保证正常信用度机构PoW 算法执行时间很低.
美白防晒霜
下面介绍机构请求EHR 前解决PoW 难题的过程. 如图3所示, 1) 机构调用智能合约请求索引url ; 2) 智能合约触发事件随机选举一个审计节点处理机构的请求; 3) 审计节点根据机构信用度将挑战难度Diff 和时间戳timestamp 发送给机构; 4) 机构根据式(8)算出能够使得out 小于Diff 的nonce
,并将out 和nonce 发送给审计节点; 5) 审计节点对pk 和url 进行签名, 并将签名sig A 发送给机构, 机
构再次调用智能合约请求EHR 的解密密钥, 智能合约会检测审计节点的签名是否有效.
n ij 通过审计节点发起PoW 挑战是一个可行办法,但审计节点不是IDM 这样的可信政府机构. 所以,如果攻击者买通了大部分的审计节点, 则攻击者可以直接拿到审计节点的签名sig A , 这样依旧可以短时间发起大量攻击. 为了遏止审计节点的共谋行为,需要在智能合约中建立检测共谋行为的机制, 及时通知IDM 采取相应的惩罚. 注意到如果攻击者连续攻击, 式(6)中  就会起到关键作用, 攻击者的信用度会快速下降, 所以攻击者的挑战难度会随之升高. 定义
598自      动      化      学      报47 卷

本文发布于:2023-07-05 20:47:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1080493.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:合约   智能   信用度   患者
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图