基于联盟链的物联网动态数据溯源机制*

2019-07-08 08:54:40王清贤
软件学报 2019年6期
关键词:动态数据共识实体

乔 蕊, 曹 琰, 王清贤

1(信息工程大学,河南 郑州 450001)

2(数学工程与先进计算国家重点实验室,河南 郑州 450001)

物联网广泛应用于工业、医疗、教育、供应链等众多领域,在多方授权实体的参与下,以时间为基本维度产生新的数据,本文称为动态数据(dynamic data,简称DD),这些数据的操作要求安全、可追溯,以便用于各种取证及决策等[1,2].动态数据具有以下特征.

(1) 持续性.伴随着时间的推移,在多方实体参与下持续产生新的动态数据;

(2) 时间敏感性.动态数据是对产生时间和应用时间敏感的数据,例如取某段时间内产生的动态数据对未来进行预测等;

(3) 多维度.在不同应用场景中,动态数据存在除时间维度外的多种维度数据,如供应链系统中参与交易的实体地址、交易额等,工业控制系统中工程文件的操作、权限的设置等[3];

(4) 可用性.动态数据应具备可用性,支持用户尤其是企业用户的安全管理需求,如分析查看日志信息、了解数据使用情况以及展开违法操作调查等.

可追溯性是确保动态数据完整性和可靠性的重要前提,是物联网系统中动态数据可用性的重要体现.因此,保证动态数据的可追溯性具有重大意义.

动态数据的可追溯性包括动态数据本身及对动态数据的历史操作的可追溯,其目的是确保动态数据的完整性和可靠性,即保证在存储及转移的过程中未发生篡改或伪造.近年来,网络犯罪已经从个人行为转变为有组织的行为,攻击在数据篡改、伪造等方面越来越专业[4].而现有的数据基础设施最初设计为应用于合法的数据存储场景,通常采用中心数据库与访问控制、接入认证、信息加密、数字水印等传统密码学方法结合的安全手段,将动态数据集中存储和处理[5-8],或采用以云计算为基础的数据存储,将各种数据资源抽象成资源池[9,10],供用户使用.上述设计方案存在安全隐患,例如,高价值数据集中存储极易被攻击、算法复杂度高等.因此,防止动态数据被篡改和被伪造成为具有挑战性的任务.为了提高动态数据存储的安全性,必须从两方面对数据进行保护:一方面验证动态数据的正确性,避免被篡改、伪造;另一方面,实现对动态数据操作历史的可追溯,提供数据恢复能力.

本文提出一种动态数据溯源机制:采用区块链方式记录网络动态数据流转的全生命周期,对动态数据进行记录、追溯、确权,以从源头保证该数字资产以及所代表信息的真实性,减少甚至阻止篡改攻击的可能性.分析共识终端最大化自身收益的局部行为与保障动态数据存储安全性和有效性整体目标的一致性,提出适用于动态数据存储的共识机制,减少算力浪费.采用密钥分发机制,分层传递并验证各级动态数据存储平台信息,相邻层次间通信采用二次散列迭代的方式,利用公钥加密正反向不对称性,增加系统被攻破的难度.

本文的主要工作如下:建立了物联网动态数据存储安全问题的数学模型,提出了用于实现操作实体多维授权与动态数据存储的双链结构;分析群体博弈过程中,单个节点进行决策的诚实行为动机及特定行业背景下分布式节点合作的本质,提出了一种适用于动态数据存储的共识机制,以共识机制保障动态数据存储的安全性;提出了一种动态数据溯源信息在物联网多方实体间动态流转的分层溯源机制,通过公钥机制构建通信通道,完成动态数据在通信系统中端到端加密安全传输,利用加密运算正反向不对称性,有效防止动态数据被篡改、伪造.

本文第 1节介绍相关工作.第 2节抽象出对物联网动态数据操作具有通用性的方式和过程,提出动态数据存储问题模型.第 3节介绍区块链相关概念,分析联盟链解决物联网动态数据储存的适用性,基于博弈论理论分析物联网环境下各节点达成共识的边界条件,提出基于验证节点列表的联盟链共识算法,进一步提出基于上述共识算法的物联网动态数据存储体系结构.第 4节通过理论分析及实验部署证明本方案对于抵御常见攻击,实现动态数据操作溯源的有效性.第5节总结全文.

1 相关工作

在物联网飞速发展的同时,物联网动态数据安全面临严峻的挑战,许多研究人员开展了对中心数据库和云存储服务安全性的研究[11-18].文献[12]审查了29个不同的基于USB对数据库的攻击,并将它们分为4个主要类别.提出了一种方法来识别每个攻击的相关和脆弱的 USB外围设备和硬件,但这意味着该方法允许攻击发生,存在数据库被破坏的可能性.文献[13]提出了一种数据库入侵检测机制,通过在网站上使用SQL注入,记录入侵者的所有活动来增强数据库的安全性.管理员可以查看详细信息,阻止攻击者向数据库注入恶意代码,窃取、销毁或修改数据库.但单方信任机制无法控制拥有高级访问权限的工作人员对动态数据进行恶意篡改或伪造[14].此外,文献[15]指出,动态数据多由智能处理终端或现场采样设备采集、编码和存储,这些设备的处理和存储性能有限,加之动态数据的持续性特征导致其随时间增长的数据量较大,因此,复杂度较高的安全算法不适用解决动态数据的防篡改、防伪造问题.文献[16]指出:由于云端数据允许多授权用户访问,无法对数据信息的去向和各级主体的操作历史提供充分的证据,因此无法满足某些特殊领域(如工业控制系统、溯源系统等)对系统动态数据的整个访问过程进行审计的需求,一旦出现问题难以定责.文献[17]为解决云平台下不受控制的恶意修改可能破坏共享数据的可用性问题,提出了一种公共审计解决方案,可以同时保护群体成员的身份隐私和身份可追溯性.但在云平台下,用户无法与云服务提供商建立信任,并确保服务协议仅使用 Web前端接口[18].为了避免敏感信息被窃取、篡改和伪造,系统需要一个可靠的云平台服务提供商.

鉴于传统数据库和云存储服务存在安全隐患,且不可避免,实现动态数据的可追溯性是保障物联网动态数据安全应用的关键.通过分析近几年溯源领域的论文,发现目前许多现代可追溯系统是基于射频识别(radio frequency identification devices,简称 RFID)技术[19-21].文献[19]提出了一种电子谱系的食品可追溯系统,利用射频识别技术跟踪、定位物品在被无线传感器网络收集储存和运输过程中的温度和湿度.但针对传感器数据损坏或丢失的问题,文中仅采用预测的方式,无法从根本上解决.文献[20]提出一种基于公钥加密技术的高级数据保护方案,该方案能够实现RFID数据的可追溯性和链性活动.与传统的RFID安全方案相比,该方案适用于没有任何加密功能的标准 RFID 标签,并且不需要中心数据库.但操作的复杂度较高,对标签性能要求较高.文献[21]对RFID标签的加密能力进行研究,提出了能够执行加密操作的RFID标签体系结构.但是加密功能增加了标签的成本,并且涉及昂贵的身份验证计算.

根据物联网系统的应用特点和要求,需要采取安全措施对系统产生的动态数据进行存储和共享,实现动态数据的可追溯.RFID在溯源系统中应用的研究仅适用于对有形资产的追溯,不适用于对物联网动态数据的追溯.而云计算等中心化数据库仅仅实现了动态数据的存储,在抵抗恶意用户(包括具有高级权限的内部人员)篡改、伪造动态数据方面具有天然的缺陷[22,23].区块链在不引入第三方中介机构的前提下,可以提供去中心化、不可篡改、安全可靠等特性保证[24].目前,已有研究来创建更具可扩展性的区块链,文献[25]提出 Bitcoin-NG区块链协议,它是拜占庭容错的,共享相同的信任模型,具有较强的鲁棒性.文献[26]提出的 GHOST规则解决了提高块创建速度的问题,这是对比特币节点构建和重新组织区块链的一种改进.文献[27]提出可以重组链,构建区块的有向非循环图,并降低允许交易的授权规则.虽然这些模型显著提高了运算速度,但它们可扩展性较差,并且需要复杂的数据结构或共识机制.文献[28]介绍了一种基于区块链技术的去信任物联网设备匿名共享方法,对于解决物联网动态数据的溯源问题有一定借鉴.本文通过分析动态数据面向多机构的区块链应用场景,在联盟链的基础上,提出一种全新的去中心化基础架构与分布式计算模型,将区块的共识及可见性限制在联盟链内部,有效地降低了参与记账节点的数量,实现快速共识验证,可以很好地解决动态数据的存储及溯源问题.

2 动态数据安全问题建模

定义1.操作实体(operation entity,简称OE)是指动态数据D生命周期数据流动过程中的所有参与实体,用四元组〈ID,FOE,ROE,D〉表示.

·ID是操作实体的标识符,用以对操作实体进行唯一标识;

定义2.实体OEi的授权属性特征值用集合li表示,H:{0,1}*→{0,1}ω,lij∈{0,1}ω,H是理想化的哈希函数,ω为哈希后得到的特征值长度,δ是授权操作DAG图中节点最大入度:

由定义 2,若操作实体的授权属性集合li中存在多个元素,表示存在多个父节点对其授权,SKpj为实体OEi父节点的私钥,从集合li中删除某个元素表示某个父节点取消授权;反之亦成立.li=ε表示其拥有根权限,li=∅表示该实体授权为空.

与图1对应的动态数据操作轨迹用多维DAG图表示,如图2所示,节点表示动态数据文件授权,其中,圆形节点表示对应操作实体仅持有一项操作授权,将产生一份动态数据文件;柱状节点表示对应操作实体持有多项操作授权即多维授权,将产生多份动态数据文件;有向边表示动态数据文件在新操作下的演进轨迹.

定义3.对于DAG图中节点i,入度为δi,若δi≤1,保持节点不变化;δi>1,节点为每个入度授权的集合,其元素个数|li|=δi,这样得到的图称为多维DAG图.δi>1时,存在多个父节点对节点i的授权,称为父节点对节点i的多维授权.

定义 5.操作实体及其后继节点执行原子操作产生的动态数据文件的集合,称为该操作实体的域(domain),域中的动态数据文件称为该域的对象(object);操作实体的操作授权范围覆盖自身的域;操作实体的域可以包含其后继操作实体的域,被包含的域称为子域(sub domain,简称 SD);域所包含的子域和对象统称为该域的成员(member),子域所包含的成员,称为间接成员.

定义6.操作实体受到攻击导致其授权操作的动态数据均不可靠,则该操作实体域中的对象均不可靠,称为该操作实体的失效覆盖集(failure coverage set,简称FCS).除创始节点外的各节点均处于操作实体的多重失效覆盖集.

实际情况下,操作实体均存在由恶意攻击导致的数据篡改或伪造的可能性,本文对动态数据存储面临的安全威胁问题进行如下假设.

(1) 每个攻击者单独到来,相互独立;

(2) 在时间[0,t]内,系统受到的攻击数量{N(t),t≥0}满足参数为λ的泊松分布;

(3) 操作实体第i次受到攻击的损失为Li,且损失随时间按负指数衰减,损失可累加;

(4) 每次攻击到达的时间间隔和造成的破坏相互独立.

t=0 时,损失为L;t=ti(ti>0)时,损失为Le-αti.设{Li,i≥1}独立同分布,且与{N(t),t≥0}独立,那么时间[0,t]内不考虑失效覆盖的损失表示为

条件期望为

记Y1,…,Yn为[0,t]上独立同均匀分布的随机变量,有:

所以:

即:

因此:

考虑失效覆盖的情况,用FCS(i)表示节点i的失效覆盖范围,本文优化目标为

3 基于联盟链的改进型动态数据授权操作机制

3.1 区块链

学术界对区块链技术并没有统一的定义,但一般认为,区块链是一种按照时间顺序将数据区块以链条的方式组合形成的特定数据结构,并以密码学方式保证其不可篡改和不可伪造的去中心化、去信任的分布式共享总账系统[29].区块链的提出是计算机科学的一个突破,它有望降低个人和组织建立、维护信任的成本[30],让没有信任关系的人们在无中心化信任机构的情况下合作[31].自2008年Nakamoto发表奠基性论文[32]以来,经过近年的快速发展,区块链技术越来越受到政府、银行及相关研究人员的重视.世界经济论坛(world economic forum,简称WEF)于2016年8月发布了研究报告[33],区块链成为当前技术研究的热点,包括对区块链协议的分析[34-36]、区块链技术在某些领域的应用等[37-39].

区块链可以分为3类:公共链、联盟链和私有链.公共链对外公开,用户不用注册就能匿名自由出入网络,无需授权即可访问网络和区块链,如比特网[32]和以太坊[40];联盟链仅限于联盟成员参与,区块链上的读写权限、参与记账权按联盟规则来制订,如由多家银行参与的区块链联盟 R3[41]、Linux基金会支持的超级账本项目[42]都属于联盟链架构;私有链仅在私有组织使用,区块链上的读写权限、参与记账权限按私有组织规则来制订.

联盟链可以根据应用场景来决定对公众的开放程度,其网络由成员机构共同维护,节点通过成员机构的网关节点接入,因此适用于物联网行业背景下多成员机构对动态数据的存储、管理、授权、监控和审计.在实际物联网应用背景下,用户、资源、服务、终端存在泛在接入与授权操作的特点,参与的多方实体存在一定的信任前提和利益约束,实体间数据操作共识激励机制和分布式账本记账权确定等问题还需要进一步研究.

3.2 达成共识的边界条件

分布式共识是构建基于区块链技术零信任动态数据溯源机制必须解决的关键问题,而达成共识的条件在公开匿名场景下和带权限管理的场景下需求差异较大[43,44].例如,比特币等金融系统在决策权高度分散的去中心化系统中采用经济激励机制,使各节点高效地针对区块数据的有效性达成共识,该方式面向公有链中的任意节点的自由加入简单有效.而动态数据常常是与特定工作过程联系紧密的行业内部数据,对动态数据的管理更适合采用联盟链方式,仅允许核准的节点加入,货币体系背景下共识激励显然不适用于联盟链方式下对动态数据的管理.在联盟链方式下,参与多方存在一定的信任前提和利益约束,本节通过分析该群体博弈过程中单个节点进行决策的诚实行为动机,提出特定行业背景下分布式节点合作的本质——使各节点在与环境的交互与分布式计算过程中获得最大的累积效用,进一步分析动态数据可追溯系统中各节点达成共识的边界条件,优化共识算法设计.

设动态数据可追溯系统中参与区块信息验证的节点集合为有限集,对每个参与区块信息验证的节点i有策略空间及收益函数Ui,即每个参与节点i在策略空间Si=(s1,s2,…,sn)下的冯·诺依曼-摩根斯坦效用为U(Si),本文将策略空间Si下节点预期效用U(Si)作为评价各动作的价值函数.

每个参与节点的目标是最大化自己的收益,因此为了简化问题,除节点i以外的所有其他节点标记为“-i”.通过分析节点i和-i相互作用并达成具有约束力协议的共识过程,得到节点i和-i收益矩阵见表1.

Table 1 Yield matrix of nodes i and -i表1 节点i和-i收益矩阵

表1中,C表示某节点合作(cooperative),B表示背叛(betray),收益函数表达式中第1项为对应策略下节点i的收益(分别为PiCC,PiBC,PiCB,PiBB),第2项为对应策略下节点-i的收益(分别为P-iCC,P-iBC,P-iCB,P-iBB).溯源系统各节点共识模型的构建基于以下前提条件.

(1) 对于节点i,在各种策略组合下的收益满足:

式(5)表明,在节点行为不一致的情况下,采取背叛策略的一方可以从牺牲其余节点的合作行为中得到比所有节点均合作时更高的收益;在所有节点均合作,即达成共识能够获得比都背叛更高的收益;一方合作,其余节点均背叛将会给合作方带来很大损失,或者说导致最低收益.

(2) 节点i估计节点-i背叛的概率为λ,即节点i对节点-i的信任度为1-λ.本文采用联盟链核准加入的方式,节点由相关溯源系统监管机构、社会团体及志愿者构成,在参与溯源信息验证的n个节点中,诚实节点占多数(比例相当大),节点-i发生背叛是指除节点i以外的其余节点产生错误共识的情况.由上述分析可知,这种可能性非常小,即λ→0+.

(3) 根据条件(2),节点-i发生背叛的可能性很小,在其采取合作的前提下,若节点i采取合作将获得收益PiCC;若节点i基于投机主义采取不合作策略,其将获得表1中短期最大自身收益PiBC,但这将导致系统在时间[t,t+Δt]内识别出节点i的背叛,并对其进行惩罚,惩罚代价函数P(Si)用节点信誉ARi表示,将在本文第3.3节详细描述.因此,节点i发生背叛的总体收益为

根据上面的条件进一步分析得出如下结论:节点i采取合作或背叛策略取决于当前时刻t节点i与节点-i合作所带来的收益期望值E[U(Si)]与节点i背叛所带来的收益期望值E[UBC(Si)]的比较,分两种情况:

其中,若公式(7)成立,节点i采取合作策略;若公式(8)成立,节点i将采取背叛策略.

令θ(0<θ<1)为节点i的折扣因子,用来调节当前收益对长期收益的影响.λ为节点i估计节点-i在一轮验证过程中采取非合作策略的概率,节点i采取合作策略时收益的期望值可表示为

由公式(9)得:

推导过程与上文类似,节点i采取背叛策略时收益的期望值可表示为

由公式(7)、公式(10)、公式(11)得节点i采取合作策略的条件为

由公式(12)得:

公式(13)即为动态数据可追溯系统中各节点达成共识的边界条件.上式中,θ是节点i长期收益的折扣因子.θ越大,表明相较当前收益,长期收益对节点i的影响越大;θ越小,表明长期收益对节点i的影响越小.在给定节点行为收益的前提下,不等式左边的值取决于系数α1=1/(1-λ)和α2=λ/(1-λ)2,只有当不等式右边折扣因子θ超过一定值时,公式(13)才成立.假设θ为常数,选择非合作策略将导致公式(13)左边的值变大;反之亦成立.因此,为了使节点选择合作行为,必须降低不等式左边的值,即降低系数α1=1/(1-λ)和α2=λ/(1-λ)2.得出如下结论.

(1) 节点间相互信任是进行合作的必要非充分条件.公式(13)中,若λ→1-,即节点间几乎不存在信任,不等式左边的取值F(λ)→+∞,节点间不可能产生合作,因此,节点间相互信任是进行合作的必要条件;若λ=0,不等式左边的值F(λ)=(PiBC-PiCC)/(PiBC-PiBB),∀θ∈(0,1),公式(13)为非重言式的可满足式,因此,节点间信任不是产生合作的充分条件;

(2) 在本文第3.3节提出的共识算法中,机构优先选择估计节点-i背叛概率λ较低的节点i作为验证节点列表(verification nodes list,简称VNL)中的节点.随着λ的减少,节点i对节点-i的信任度将增大,公式(13)中系数α1和α2将减少,进而不等式左边的值F(λ)下降,节点i选择合作策略的可能性增大.

3.3 基于验证节点列表的共识算法

通过研究使得共识终端最大化自身收益的局部行为与保障动态数据存储安全性和有效性整体目标的关系得出:当所有终端都持有待提交验证的区块,为了让自己的收益最大,任何一方都不会(或者无法)改变自己对其他区块的验证结果.

根据本文第 3.2节达成共识的边界条件,提出基于信誉的共识激励机制:通过授权一部分信任节点组成一个验证节点列表VNL,TVNL={T1,T2,…,Tn},∀Ti∈TVNL,初始状态下,节点信誉ARi=1,每个节点通过为其他节点服务保持信誉,每轮共识选取最佳区块打包验证节点的同时,以系数γ降低最坏区块打包验证节点的信誉,即ARi=γARi(0<γ<1).为了阻止自私行为并鼓励节点保持其信誉,当VNL列表中验证节点信誉低于某一阈值w时,将该节点移出VNL列表,当超过1/3验证节点被移出,则必须由授权机构重新授权组成新的VNL列表.假设信誉阈值是全局的,即所有节点使用相同的值,关于特殊情况下某些节点定义局部阈值方面的问题,还有待进一步研究.

每个参与验证的节点会获取在共识开始之前未被记录的所有有效操作,并且以候选集的形式公开他们.然后,每个参与验证的节点合并VNL中所有其他验证节点的候选集合,并对所有操作的真实性进行比对投票.对动态数据的有效操作分为两种情况:一是新数据的发布;二是动态数据在不同实体间的流转.上述两种操作都必须由通过机构授权的节点来实现,且均看做一次交易:新数据的发布可以没有输入,但必须有输出,拥有与输出地址公钥对应私钥的节点即为可对该地址数据进行有效操作的授权节点;动态数据在不同实体间的流转既要有输入,又要有输出,其输入需要通过上一笔输出地址所对应的私钥进行签名,验证当前节点是否为授权节点.通过行业顶层管理机构预先颁发根CA证书(certificate authority),构建基于根CA及中间层CA到最底层实体CA的完整的证书信任链来实现上述信任基础.系统中全节点服务器负责维护VNL列表,验证节点在达成共识时只考虑VNL中成员的验证结果完成区块生成,这种共识算法在保证安全性的同时,大幅提高了系统达成共识的效率.同时,由于验证节点是机构授权的节点,一旦其中出现背叛节点便于系统核实身份并追究责任.

区块共识过程的数学形式描述如下.

在动态数据存储系统中,TVNL={T1,T2,…,Tn}为系统中验证节点集合.验证节点Ti获取的待验证有效操作候选集记为χ(Ti),合并后的待验证候选集为

某终端Ti∈TVNL提交的打包区块Bnewi={tx1,…,txm},txj∈χ(TVNL),获得其他终端验证组合及其收益用集合Gi={ηi1,…,ηin:ui}表示.由某个终端Ti进行打包的区块Bnewi组成的各终端验证组合(ηi1,…,ηin)中,任意参与验证方Tk对Ti提交区块Bnewi的验证结果表示为ηik,且满足:

根据物联网系统的规模及对吞吐率的要求,为共识过程设置合适的等时间间隔轮,用r表示.在一轮时间内,达成共识的步骤为:

步骤1.VNL列表验证节点数大于2n/3,则执行步骤2;否则,等待授权机构授权新列表;

步骤2. 本轮时间未结束,对于最早出现的Ti∈TVNL,且使ui(ηi1,…,ηij,…,ηin)=n,则选取Ti打包区块为本轮最佳区块,即选取最早通过验证节点列表终端验证的区块,转步骤5;否则,执行步骤3;

步骤 3. 本轮时间结束,∃Ti,∀Tj∈TVNL,使得n>ui(ηi1,…,ηij,…,ηin)>uj(ηj1,…,ηji,…,ηjn),则选取Ti打包区块为本轮最佳区块,即选取经验证节点列表终端验证获得最大收益的区块,转步骤 5;否则,执行步骤4;

步骤 4. 本轮时间结束,∃Ti,Tj,∀Tk∈TVNL,若n>ui(ηi1,…,ηij,…,ηin)=uj(ηj1,…,ηji,…,ηjn)>uk(Sk1,…,Skj,…,Skn),则从Ti,Tj中选取最早达到ui当前值的验证节点打包区块为最佳区块,即选取最早经验证节点列表终端验证获得最大收益的区块;

步骤 5. 本轮时间结束,∃Ti,∀Tj∈TVNL(j≠i),若ui(ηi1,…,ηij,…,ηin)

3.4 动态数据操作与存储

动态数据操作与存储体系采用静态多维授权关系链和动态数据存储链双联盟链模式,实现数据操作授权关系和动态数据本身的防篡改.对应的所有权的转移过程可看做文献[45]描述的所有权转移.

依据本文第2节提出的操作实体间授权方式将各实体对动态数据的授权及操作类型作为交易发布到授权关系联盟链网络上,不同的应用场景下可以选择以明文或密文方式发送.根据整个行业物联网操作实体间的合作关系,操作授权往往只需限定在较小的子系统内,涉及的操作实体节点数目较少;此外,由于物联网系统具有可靠性高和生存期长的特点,操作实体间授权关系相对稳定,变更较少.鉴于上述调研现状,本文采取静态方式为各子系统生成实体授权关系,由定义 2描述的方法创建实体间多维授权链,并作为一笔交易发布到授权关系联盟链网络上.各操作实体数据交付过程如图3所示,若存储一个实体节点的编码需nc位,存储用于溯源路径链接的实体节点特征值需ω位,实体间授权边的总数为E,实体总数为N,每笔交易的数据量上限为E·ω+N·nc.当发生操作实体间授权关系变更时,需将授权链作为新的交易在网络上重新发布并记入区块,以便授权追溯.

由密钥分发机构为实例系统中各操作实体IDi生成密钥对(PKi,SKi),用于操作实体对动态数据的授权验证.授权节点申请发布新的动态数据或对某个动态数据进行操作时需包含自己的实体证书,经过验证并获得共识的动态数据及相关信息(包括发布方及接收方的地址,动态数据文件的哈希值等)形成发布摘要信息存储到动态数据联盟链网络上.每一轮共识结束后,验证节点会将满足条件的所有交易进行分组哈希运算,将哈希值存储于Merkle树状数据结构中,方便实现区块的快速归纳和完整性校验.再利用区块链中的区块生成机制生成数据区块.区块之间利用区块头的哈希指针连接形成链状数据结构.接收方收到动态数据后,在本地计算其哈希值并采用Merkle树支持的简化支付验证协议与区块链上的对应数据进行比较,如果不一致,说明文件遭到篡改并向监控中心报警.下面分析图3中操作实体对动态数据的授权操作过程.

对于任意操作实体OEi,可用IDi唯一标识,为叙述方便,后面也用IDi表示操作实体,简称实体.假设操作实体IDi,IDi+1需要进行的操作Xt为:IDi采用加密方式发送数据STi,IDi+1接收数据并对其完整性进行验证.若对完整的动态数据进行签名将导致两方面的缺陷:一方面,存储完整消息对应的数字签名往往需要大量的空间;另一方面,采用非对称加密技术对完整消息进行加密计算开销较大,处理速度较慢.因此,本文在实例系统中相邻层次实体间通信时,采用二次散列迭代的方式,将发送方公钥及消息STi同时作为哈希函数的输入,得到可作为特征值的哈希运算消息认证码.用发送方的私钥对消息认证码进行签名,由于数据量较少,可保证此运算过程较快.动态数据在授权实体间流转的步骤为:

步骤1. 判断(IDi,Xt)∈FOEi,若为True,证明其为授权节点,执行步骤2;否则,报错未授权;

步骤2. 计算STi和PKi的哈希值Hi,减少实体IDi签名信息量;

步骤3. 用实体IDi的私钥SKi对Hi进行签名,得到Mi;

步骤4. 实体IDi用实体IDi+1的公钥对Mi,STi进行加密并发送;

采用与比特币系统类似的方法,将操作实体对动态数据的一次处理过程看做一笔交易,操作实例系统的区块形成过程可描述为:各个操作实体的帐户名为其公钥的哈希值,使用自己的私钥对验证过的信息进行签名.新交易TX创建过程由文献[45]定义,TX通过P2P网络进行广播,区块链中各节点都不断地监听网络并收集尚未进入块链的交易TX的列表,生成待验证区块,各节点对接收到的区块进行验证,判断区块中是否存在无效交易,即没有正确签名或重复交易.将验证结果再次通过P2P网络进行广播,并按照本文第3.3节提出的共识机制选出本轮获得共识的区块作为新生区块,通过与前一区块头部链接写入账本.此时,新账本为系统中最长区块链,获得记账权的节点将新创建的区块链向全网广播,其他节点收到后,将其与本地区块链进行比较:若长度大于本地区块链,则将本地区块链更新.

假设创世区块存在且新生区块B非空,区块有效性验证算法见算法1.

算法1.区块有效性验证算法.

输入:区块链C,新生成区块B;

输出:若创世区块不存在或新区块B不存在,返回错误提示Error;若新区块B合法,返回加入新区块后的区块链C;若B非法,返回B.

其中,函数v(x)收容当前交易并将其打包成区块B,若创世区块不存在(C=False)或新区块B不存在(B=ε),返回错误提示Error;若B非空且存在创世区块,则依据五元组〈Num,Type,Code,Len,S〉定义的方法对区块B中交易进行验证,在区块链诚实节点为多数的前提下,若区块B中所有交易TX均通过验证且获得本轮共识,则将B作为新生区块链接到区块链C的末尾,返回新生成的当前最长区块链C;否则,将B标记为False并返回.

4 分析及实验

本文提出动态数据授权操作机制和基于信任节点列表的区块链共识算法,通过机构授权决定记账节点,提供不可篡改且能够在任何时间点恢复的数据库服务,是一种高效的共识机制.下面对其性能进行分析.

4.1 可靠性分析

假设操作实体总数为N,其每个实体编码占用nc个比特,根据定义2,得到各实体的操作授权集合 {li}i∈{0,1}≤ω,对来自诚实或恶意用户的操作请求均需在多维DAG图中至少回溯查询q次才能获得确认,用τ表示从当前提出操作请求的实体向根实体回溯路径上的节点集合,即:

例如,某用户提供自己的授权类型l申请对图1中v7进行操作(为了简化问题,操作的类型暂不讨论),存在多条回溯路径:τ={v7,v6,v3,v2,v1},q=5;或τ={v7,v6,v2,v1},q=4;或τ={v7,v4,v2,v1},q=4.由此可见,回溯路径τ不唯一,下面证明其具备性质1.

性质 1.理想化哈希函数表示为H:{0,1}*→{0,1}ω,ω为哈希后得到的特征值长度,操作实体至少在多维DAG 图中查询q次才能获得确认(q≤N),攻击者将动态数据操作权限l伪造成l′,并获得攻击成功,即l≠l′,H(l,ID)=H(l′,ID)的概率上限为q2/2ω+1.

证明:第i次查询输出时,前i−1次查询输出相同的概率至多为(i−1)/2ω,因此,q次查询输出均相同的概率为

在多维DAG图中,由公式(18)计算τ,并回溯至τ中根节点r(即该节点无父节点),按照定义2重新计算授权路径上各实体授权特征值li′,与联盟链上经过VNL验证的实体授权特征值的保存值li进行比较,若满足:

则该请求合法;否则,拒绝请求.公式(19)中,qi表示为满足安全系数,实体OEi设定的查询次数,qi′表示实际执行的查询系数.若某中间层实体撤销对其子节点的授权会造成qi′

由性质 1,参考比特网,给定取值ω=256,q=6时,攻击者篡改动态数据操作权限并获取成功的概率非常小,理论上存在,但实际很难做到.图4对不同物联网规模下本文方案的系统可靠性进行分析.

当物联网子系统规模较小,操作实体授权链深度较小,回溯查询的次数q在较小范围内变动(如取值4,8,16),授权特征值位数|ω|=16b时,攻击者成功篡改授权关系的概率P趋近0,如图4(a)所示;当物联网规模较大,需要更多的比特位对授权特征值ω进行编码,当|ω|=64b,物联网规模N=106时,攻击者成功篡改授权关系的概率P<10-6,如图4(b)所示.

4.2 安全性分析

鉴于比特币网络中经常出现双重输出攻击、重放攻击和隐藏攻击,下面对本文提出的方案在上述3种常见攻击类型下的性能进行分析.

(1) 双重输出攻击

双重输出攻击是指操作实体隐藏对其他操作实体授权的动态数据文件及授权关系.与比特币类似,可以通过创建两个不同的交易分支来分割自己的区块链.本文提出的动态数据溯源架构对双重输出攻击具有防御能力,违规者会被发现并失去他人的信任.

图5说明了本方案对这种攻击的防御机制,描述了溯源架构中某操作实体执行双重输出攻击的过程(注:符号C本段局部定义为操作实体).

在这种情况下,操作实体A希望隐藏虚线块,即:对操作实体C授权的动态数据文件及授权关系,只传播关于他对操作实体D授权的动态数据文件及授权关系.虽然这种攻击看起来似乎成功,但是当操作实体C除A以外的授权实体,比如B,查看操作实体C的历史记录时,会发现在C链的验证期间A隐藏了一笔对C授权的交易.这与B关于操作实体A所涉及的交易的知识相矛盾.这样,操作实体A创建的两个区块形成了一个欺诈证据,并被其他节点在网络中进行广播.其他操作实体可以使用上述方法以较小计算量来验证双重输出攻击行为,将其列入黑名单或拒绝服务.

(2) 重放攻击

重放攻击试图重复使用由某个操作实体创建的动态数据文件及授权关系签名重放已经发生的交易.恶意操作实体将指针重用到另一操作实体的先前块.图6说明了本方案对重放攻击的抵御机制.操作实体A使用两次相同的事务增长其块链,这种攻击背后的动机是:恶意操作实体隐藏动态数据的时间属性,达到对物联网控制系统的某种破坏.这种攻击相对容易发现:当由另一个操作实体验证操作实体A的事务链正确性时,将检测出有两个块具有相同的输出指针.恶意操作实体在重放攻击期间创建的块组成欺诈证据,网络中的任何操作实体都可以通过观察块的输出指针来验证欺诈.

(3) 隐藏攻击

一旦操作实体对动态数据进行操作,就会在网络中创建记录.一个操作实体可能只想公开对其声誉有正面影响的操作或授权,同时隐藏对其声誉有负面影响的操作或授权.本文提出的溯源链架构能够抵御这种攻击:由于每条记录都包含一个序列号,网络中的任何人都可以请求其他人的特定记录,如果某操作实体无法提供自身的历史记录,则在该实体所要求的记录被提供并被验证之前,其他实体可以选择不与这个操作实体发生交易.值得注意的是,操作实体不能防止其授权对象授权给其他操作实体.

4.3 部署和实验

本文进行了一项公开实验,对物联网动态数据溯源机制性能进行评估,从互联网招募的1210名志愿者参加了为期一个月的开放式研究.这些志愿者在Ubuntu 16.04下安装并使用了ChainSQL平台.该平台是在瑞波币的基础上改进的,是我们和众享比特公司长期合作进行的基于区块链的物联网应用安全研究的一部分.修改配置文件,使用不同的配置文件启动应用程序,得到普通节点和验证节点.随机生成初始化测试数据集合,不同轮次的测评实施需基于相同的测试数据以确保测试结果的有效性.测试数据作为新交易相继提交到ChainSQL测试网络,采用多组交易并发激励的方式,以测试较高并发交易场景下系统的性能.

图7给出了操作实体总数N,验证节点列表中节点数目为VNL,ω=256,nc=16,达成共识的每轮时间r取不同值时ChainSQL平台溯源数据增长情况.

图 7(a)中取N=500,VNL=100,r=5s时,数据量高于r=10s,但其数据量的增幅不到r=10s时数据量的两倍,说明相比r=5s的情况,r=10s时部分轮次在本文第3.3节提出的共识机制的步骤2完成;同理,r=1s与r=5s,r=10s时相比数据量有显著增加,但增幅低于相应的时间倍值.

图7(b)中取N=1000,VNL=100,相比图7(a),操作实体数目多了1倍,但r取3种不同值时数据量同比均有所下降,r=5s和r=10s时下降程度较r=1s时大.这说明随着系统规模的增大,达成共识的速度减慢,且在共识机制步骤2完成的轮次受影响较大,在共识机制步骤3和步骤4完成的轮次受影响较小.

图7(d)中取N=1000,VNL=200,相比图7(b),机构授权的验证列表节点数目多了1倍,r取3种不同值时达成共识的速度均有所减慢,因此数据量同比均有所下降;相比图7(c),操作实体数目多了1倍,数据量增长同比变化差异不大,这说明机构授权的验证列表节点数目增多将导致共识时间增加,使得大部分轮次均在共识机制步骤3或步骤4完成,此时,系统溯源链中数据量的增幅对操作实体数目的增多呈现一定程度的鲁棒性.

图8显示了N=1000,VNL=100,r取不同值时,在联想T480S和Y450A-TSI(W)型号移动终端上,3000s时间区间内,系统吞吐量随时间的变化情况.从总体上看,r取值越小,系统吞吐量越大.r=1s时,在性能较高的移动设备联想T480S上,3000s内吞吐量均值为182tps;在性能较低的移动设备Y450A-TSI(W)上,3000s内吞吐量均值为115tps.通过观察图8(a)和图8(b)在不同性能的移动设备上同一时间区间和网络环境下的吞吐量数据对比,可以看出系统吞吐量受硬件性能的影响.结果表明:即使在性能较差的移动终端上,也可以实现对大量轻型交易的创建和处理,这些测试数据为我们进一步开发嵌入式系统ChainSQL接口提供了参考.假定不论r取何值,均在每轮时间用完后形成共识并产生新区块,显然,r=5s和r=10s时,在3000s时间内产生新区块的数目将分别是r=1s时的1/5和1/10.图8(a)和图8(b)的数据表明:r=5s和r=10s时,对应的吞吐量均值均大于r=1s时相应的倍值.这是因为r=1s时,各节点将接收到并存储在本地的交易广播出去,大部分在接近或等于r时形成共识;r=5s和r=10s时,会有一部分节点提交的区块在该轮时间尚未用完就获得共识.通过分析图 8测试数据发现,几种情况下系统吞吐量的变化存在共同点:测试初始阶段,吞吐量较大;随着测试时间增加,吞吐量变小.对于这一现象的合理解释是:测试初始阶段,节点本地存储器为空,生成的新交易区块获得共识后,在ChainSQL数据库中快速插入;随着数据库的增长,每次插入新的区块都需要查询和同步数据库来获取最新联盟链区块的信息,插入开销有所增加,系统吞吐量随着数据库大小的增加而减少.

通过为期一个月的由志愿者参与的实验,证明了本文提出的溯源机制的实际适用性和成熟度水平.结果表明:本文提出的物联网动态数据溯源机制在没有任何中心数据库的情况下,能够在网络上以共识方式保证各操作实体数据的完整性和可靠性;且随着系统中机构授权的验证列表节点数目和操作实体数目增多,系统达成共识的速度对这两项参数呈现鲁棒性,而主要受预先设置的每轮时间影响.

5 总 结

本文针对动态数据安全问题,设计了动态数据安全问题模型,分析达成共识的边界条件,提出了联盟链方式下基于节点信誉的共识激励机制和基于验证节点列表的共识算法,实现了对动态数据授权操作和安全管理.分析了该机制下授权机制的可靠性及系统抵抗双重输出攻击、重放攻击及隐藏攻击的能力等安全性能,通过在ChainSQL平台下的公开实验,分析了系统规模、验证节点列表规模、每轮时间与实际达成共识的速度、系统吞吐量的关系,得出随着系统中机构授权的操作实体数目和验证节点列表节点数目增多,系统达成共识的速度对这两项参数呈现鲁棒性,而主要受预先设置的每轮时间影响的结论,证明了核准加入方式下该方案能够有效防御攻击者对动态数据的篡改、伪造等潜在安全威胁,在保证动态数据安全存储的同时,提高了系统达成共识的效率.目前的研究已经取得了阶段性的成果,但仍存在一定的局限性:首先,本文所讨论的节点信誉阈值是全局的,所有节点被赋予相同的初始阈值,关于特殊情况下某些节点定义局部阈值方面的问题,还有待进一步研究;其次,目前,改进后共识机制的部署和调用都需要专业区块链研发人员进行,在易用性和对应用的支持上还需要进一步验证.

结合物联网行业应用需求和安全技术发展热点,课题组拟进一步开展以下几方面的研究工作.

(1) 智能合约形式化证明与部署.与传统授权协议相比,如基于角色的访问管理协议OAuth 2.0,OpenID等,智能合约能够为物联网设备提供基于单方或多方身份验证和业务逻辑的高效授权访问规则.但智能合约一经部署就不能修改,其漏洞将给物联网系统应用带来巨大损失.因此,部署智能合约前必须对其正确性进行完备的形式化证明;

(2) 轻量级安全通信协议.常见的物联网通信协议 MQTT,CoAP,RPL,6LoWPAN等,无法提供通信安全性.此类协议必须嵌入在其他安全协议中,如DTLS,TLS,IPSec等,以提供安全通信.然而,DTLS,TLS,IPSec甚至轻量级TinyTLS协议对计算和存储资源的性能要求都超出物联网设备的承受能力,因此,迫切需要开发适用于物联网设备的轻量级安全协议,用以保障链下动态数据安全.

猜你喜欢
动态数据共识实体
共识 共进 共情 共学:让“沟通之花”绽放
论思想共识凝聚的文化向度
前海自贸区:金融服务实体
中国外汇(2019年18期)2019-11-25 01:41:54
商量出共识
人大建设(2019年12期)2019-11-18 12:11:06
云计算环境下动态数据聚集算法研究
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
哲学评论(2017年1期)2017-07-31 18:04:00
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
颞下颌关节三维动态数据测量的初步研究
基于动态数据驱动的突发水污染事故仿真方法