APP下载

基于区块链的信息系统数据保护技术研究

2018-10-15巫岱玥余祥李强

指挥与控制学报 2018年3期
关键词:块体私钥账本

巫岱玥 余祥 王 超 李强

通常情况下,数据的安全与可信依赖于系统中心或第三方等可信实体,一旦可信实体不再可信,如管理员被收买,数据库遭入侵和篡改等,数据的安全性和可信性将不能被保证.区块链是一种去中心化,无需信任的新型数据架构,它由网络中的所有节点共同拥有和监督,不接受单一方面的控制.区块链具有去中心化、时序数据、集体维护、可编程和安全可信等特点[1−8].信息系统中若采用区块链技术,其存储的节点数据库不会因误操作删除而导致数据的丢失,也不会因为控制中心失效而导致整个网络或系统瘫痪.依赖于区块链技术,可在短时间内不依赖于任何可信实体,完成数据库的统一维护和更新,数据不会因为任何单一实体的修改而改变,进而保证数据的安全性和可信性.

本文提出一种应用于信息系统的去中心化的数据保护技术,该技术基于区块链,在利用传统区块链技术保证信息系统中数据的不可篡改和不可抵赖的同时,提出利用多链结构将节点进行权限划分,使得只有拥有权限的节点才能访问到相应的数据.

1 信息系统的多链结构

每个区块链网络只有一个系统链,如果所有数据都是公开的,网络将无需多条虚拟链,所有数据都对成员可见.由于信息系统需要保证强数据隐私性,因此需要多条链进行数据隔离,提供保密[9−10].针对信息系统的隐私保护需求[11−12],本文提出一种分层多链的区块链结构,如图1所示,一级信息系统参与一级信息系统链,二级信息系统参与二级信息系统链,三级信息系统参与三级信息系统链,信息单元不参与区块链.

定义1.共识节点:共识节点与所有节点相连,并为整个区块链提供共识服务,为区块链上的节点提供订阅的主题,每个主题是一个通道,共识节点不存储数据,只负责生成按时间序列区块并通过通道向各节点发送已封装的区块.

定义2.通道:普通节点和排序节点连接到一起,从而形成的具有保密性的通讯链路.节点可以加入多个通道,并且可以访问多个通道里的账本.

定义3.账本:称不涉及所有节点的账本为子账本,记为Ti,涉及所有节点的账本为全账本,记为Ttotal,则全账本:

定义4.链:一条链由一个通道,一个账本和成员组成.绑定子账本的通道与子账本及通道上的节点组成虚拟链,因此一个区块链网络可以由共享一个共识服务的多个链组成.

定义5.节点权限:节点权限表示节点对链的操作权限.PermPeer表示节点权限描述,由账本属性描述和操作组成.ChainDes表示节点所处区块链,Channel表示通道描述,Operation表示操作集.用BNF范式对PermPeer定义如下:PermPeer::=(ChainDes,Channel,Operation)

定义6.节点权限集PermPeerSet:节点权限集是节点权限的集合,指明了节点对参与区块链能进行操作的权限集合.根据BNF范式将PermPeerSet定义如下:

PermPeerSet::=PermPeer|PermPeerSet AndPermPeerSet其中,根据范式定义,“|”用于分割替换项,即PermPeer和PermPeerSet AND PermPeerSet.

定义7.节点访问策略:节点访问由节点权限集决定,决定了一个节点在多链架构的区块链结构下能够拥有的权限.节点访问策略PAP(Peer Access Protocol)的定义如下:

策略包括节点角色PeerRole和节点权限集PermPeerSet两部分,节点角色指明了此策略中节点在整个区块链结构中所处的角色,节点权限集指明了节点能够对哪些账本进行操作.

在信息系统区块链架构中,将所有节点分成4个角色,分别是信息单元节点、三级信息系统节点、二级信息系统节点和一级信息系统节点,如表1所示.将整个区块链架构中所有账本资源划分为3个互不相交的子集,分别为H(U)、H(C)、H(Ts),H(U)代表三级信息系统链的账本,H(C)代表二级信息系统链的账本,H(Ts)代表一级信息系统链的账本,而信息单元节点不在通道内,不拥有账本,故其拥有账本集合为φ.

表1 节点角色分类

指令发布与区块生成过程如图2所示,上级节点首先向下级节点发送指令,以指令数据包的形式发送给下级节点,如二级信息系统向信息单元下达指令,下级节点在验证数据的有效性之后执行指令,同时将指令数据包发送给共识节点,共识节点将数据包封装成区块并通过通道分发给上级节点,上级节点将新区块加入本地账本并更新区块链.

由表1可知,权限越高的节点能够参与更多的链,并拥有区块链中更多的账本,因此,高权限节点可以通过读取区块链数据对节点的行为进行监管.区块发布过程如图3所示,当共识节点将区块打包好以后,通过通道向各区块链进行分发,通道1仅面向一级信息系统,通道2面向二级信息系统和一级信息系统,通道3面向一级信息系统、二级信息系统和三级信息系统.可见当一级信息下达指令信息后,共识服务将生成的区块通过通道1发布给一级信息系统;当三级信息系统下达指令信息后,共识服务将生成的区块通过通道3发布给区块链中所有的信息系统.通过对信息系统的账本进行分级,由此达到了对分层信息系统数据的保护.

2 关键技术

2.1 隐私数据验证技术

信息系统区块链需要既满足不抵赖性又必须能被监管.传统的公有链区块链架构使用共识机制来保证区块链数据不可抵赖性,共识机制要求区块链中必须超过半数的节点认同区块数据才被认为是有效数据.因此,在公有链架构中,区块数据必须完全公开,能够被任意节点验证数据的正确性,才能达到不可篡改性,然而正因如此,无法保证数据的隐私性.不是所有区块链中的区块数据都能被公开,尤其是军事领域和金融领域的区块链,更加注重数据的保密性.隐私保护技术是保障区块数据的隐私的同时还能够实现监管,保障区块隐私即区块数据仅仅向有限的全体可见,而不对非授权的全体公开.

与公有链中节点间互不信任不同,在信息系统区块链中,所有的信息系统都是确定的,故每个参与节点的身份都是事先确定的,因此,在加入区块链之际所有节点已经建立了认证机制,彼此之间建立了信任.

每个授权节点都持有证书,证书采用PKI体系的“双密钥对”,即签名密钥对和加密密钥对[13]模式来实现.每个授权节点有两对密钥对,证书持有者有一对签名用途的密钥对,分别为签名用途公钥与签名用途私钥;持有一对加密用途的密钥对,分别是加密用途公钥和加密用途私钥,如图4所示.当认证中心为节点签发证书时,对加密用途的密钥对进行备案,并交由密钥管理中心存放,当需要对某条记录进行审计时,从密钥管理中心提取出用户的加密私钥,可以解出其中数据.

利用双密钥对进行隐私验证的算法描述如下:

Algorithm()

//利用双密钥对对明文信息m进行加密传输并验证.

//输入:需要传输的明文信息m.

//输出:接收方对接收到的数据进行校验,若校验成功返回True,否则返回False.

如算法所示,当节点A向节点B发送数据m时,首先用目标节点B的加密公钥对指令数据进行加密,生成,对进行哈希运算得到摘要方便后续的验证,再利用节点A的签名私钥对加密数据进行签名,得到签名数据,然后将发送给节点B.节点B收到数据后,首先利用发送节点A的签名公钥对接收数据进行解密,将得到的数据进行摘要运算,若新计算出的摘要与预定摘要一致,则证明数据包确实来自于节点A且传输过程中数据包未被篡改.随后节点B再使用加密私钥进行解密,最终得到明文数据m.

2.2 抗伪造技术

与传统区块链账本记录交易信息不同,信息系统区块链中记录操作日志、指令以及方案,因此,区块结构也与传统的区块结构不同.信息系统区块构成图如图5所示.

信息系统区块由3部分构成,分别是区块头、区块体和当前区块hash构成.区块头里包含了5个关键信息,包括区块体类型、权限、前一区块hash、时间戳和区块体hash.区块体类型指明区块体内存放的数据种类,区块体类型分为操作日志类型、指令类型和方案3种数据类型,与区块体内存放的数据对应.

来源指明区块数据的产生对象,来源分为3类,即三级信息系统、二级信息系统、一级信息系统.由于权限较高的节点拥有更多的账本,当共识节点通过通道将区块发布给节点时需要指明发布区块链接到哪一个区块链,因此,指明了数据的产生对象也就告诉了节点区块的所属区块链.时间戳指明了区块的生成时间,共识节点在生成区块时会为当前区块头加盖时间戳,这使得区块链上各区块以时间顺序排列,时间戳作为区块数据的存在性证明,有助于形成不可篡改和不可伪造的区块链账本.区块体Hash是对区块体内容进行摘要后的哈希函数值,哈希函数具有诸多优良特点,因而特别适合用于存储区块链数据.例如,通过哈希具有单向性,输出几乎不能反推输入值;具有定时性,不同长度输入的哈希过程消耗大约相同的时间;具有定长性,产生固定长度的输出;具有雪崩效应,即使输入仅相差一个字节也会产生显著不同的输出值[14].

当前区块Hash是对当前区块信息进行hash运算,得到当前区块的摘要,作为此区块的唯一性标识,便于索引与检验.当前区块Hash的求解可表示为:

其中CurHash是当前区块hash,由Type、Source、PreHash、Ts和 BodyHash 拼接形成.其中Type是区块体种类,Source是来源,PreHash是前一区块hash,TimeStamp是时间戳,BodyHash是区块体hash.

当节点收到来自共识节点发来的区块后,节点可以对区块进行正确性检查,即使区块体内容是加密的,也可以通过对区块体进行散列运算来验证区块体是否被篡改,若计算出的区块体摘要与区块头里给定的摘要不相符,则认为该区块是无效区块.若摘要相等,则根据式(1)产生当前区块的散列值并生成新区块.

区块一旦产生将不可篡改,当区块链网络中某个节点试图修改区块链中的某区块时,节点为了与前驱区块保持连接,会将前一区块Hash作为Pre-BlockHash,然后篡改区块中的其余数据,最终生成篡改后的区块.重新计算篡改数据将造成区块hash改变,篡改后的区块虽然前驱与前一区块相连,但是由于散列函数的雪崩效应,篡改后的区块将无法与后继区块保持连接,如图6所示,中间区块为篡改后的区块.同时,为了使整个区块链网络的篡改都生效,需要将篡改后的区块数据传播到足够影响共识的节点,而其余节点都将验证到篡改区块是无效的,因此,篡改后的区块将难以生效,从而抵抗伪造.

2.3 抗抵赖技术

利用密码学的非对称加密技术实现区块链的抗抵赖性.非对称加密是为满足安全性需求和所有权验证需求而集成到区块链中的加密技术,常见算法包括RSA、Elgamal、Rabin、D-H、ECC 等[15].非对称加密通常在加密和解密过程中使用两个非对称的密码,分别称为公钥和私钥.非对称密钥对具有两个特点,首先是用其中一个密钥(公钥或私钥)加密信息后,只有另一个对应的密钥才能解开;其次是公钥可向其他人公开、私钥则保密,其他人无法通过该公钥推算出相应的私钥.

区块链的抗抵赖性主要是运用数字签名技术.发送者A采用自己的私钥加密信息后发送给B,B使用A的公钥对信息解密、从而可确保信息是由A发送的.在信息系统中,为了防止发布的指令被篡改从而导致接收方收到虚假指令,同时保证操作记录的不可抵赖性,节点执行的所有操作均需要用其自身密钥进行签名,并以区块形式记录于链.区块链保证了数据的不可篡改性,节点的操作日志使用自身私钥进行签名且无法后期篡改,以实现信息系统区块链数据的抗抵赖特性.

3 结论

本文针对传统信息系统存在的数据不安全性和数据不可信问题,结合区块链技术,提出了信息系统的分层多链结构,结合信息系统的特点和对信息安全的要求,研究了隐私数据验证技术、抗伪造技术、抗抵赖技术等数据保护关键技术,解决了信息系统过度依赖第三方可信实体带来的数据不安全和不可信的问题,实现了对信息系统的数据保护,保证了数据的安全性和可信性.今后将对区块结构进行改进,利用多重签名技术对区块进行签名,进一步提高信息系统信息的安全性,提升信息系统信息安全防护水平.

猜你喜欢

块体私钥账本
浅谈深水防波堤护面块体安装控制及修复方法
基于BIM技术的水电站地下洞室定位关键块体分析方法
比特币的安全性到底有多高
防波堤预制块体安装工艺
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
数说:重庆70年“账本”展示
丢失的红色账本
大树爷爷的账本
一种基于虚拟私钥的OpenSSL与CSP交互方案
基于秘密共享的IBE移动密码系统