基于区块链的指挥信息系统用户权限管理问题研究

2019-07-10 07:13舒展翔李腾飞余祥李强
指挥与控制学报 2019年2期
关键词:席位信息系统区块

舒展翔 李腾飞 余祥,3 李强

1.国防科技大学电子对抗学院安徽合肥230037 2.解放军61428 部队北京100072 3.国防科技大学计算机学院湖南长沙410073

指挥信息系统作为现代军事活动的重要组成部分,扮演着军队的“大脑中枢” 角色.基于传统C/S体系结构的指挥信息系统用户权限管理机制依赖于中心化的数据库,用户信息及其操作权限通常以“键–值对”(Key-Value Pairs)的形式存储在数据库中,消耗大量的存储资源,而且安全性也难以保证,一旦发生宕机、数据泄漏、非法入侵等现象,都将对指挥信息系统的工作效能产生严重影响[1−4].同时,现有的指挥信息系统用户权限管理机制完全由系统的开发、维护人员主导,即由这些人员负责对用户权限进行授权.这种授权方式存在权限划分模式单一、受人为因素影响较大等问题,使系统面临着内部用户越级访问、恶意篡改敏感数据的威胁[3].

区块链是一种去中心化、去信任化、时序数据、集体维护、可编程的基础架构与计算范式[5−11],将指挥信息系统建立在区块链上,利用区块链的分布式、高冗余的数据存储功能以及无可抵赖、无法篡改的数据记录功能,能够极大地提高指挥信息系统的健壮性.本文提出一种基于区块链的指挥信息系统用户权限管理方案,该方案基于区块链的“多链”架构和BLP 访问控制模型,实现了针对不同类型用户的权限管理功能.

本文第1 节提出一种基于区块链的指挥信息系统用户权限管理方案,详细描述该方案的基本架构和相关定义,第2 节提出了适用于指挥信息系统的用户权限策略,并从实现过程的角度对策略进行了设计与分析,第3 节通过实验和对比分析的形式验证本文方法的可行性,第4 节总结全文并指明下一步的研究方向.

1 基于区块链的指挥信息系统用户权限管理

1.1 技术基础

1.1.1 “多链”区块链

“多链”区块链抛弃了传统的区块链的“单链”架构,采用“一链一合约”、“多链多业务”的设计,通过在每条区块链上挂载智能合约的方式保障了业务资源的隔离性,同时降低了“单链”中数据的处理压力,确保了一条“链”上的数据吞吐量激增不会对另一条“链” 的效率产生影响.这一创新极大地简化了区块链的架构,增强了区块链的灵活性和可扩展性,目前已被Hyperledger[12]、Corda[13]、Cosmos[14]等开源区块链项目所广泛应用.

1.1.2 BLP 访问控制模型

BLP 模型[15−16]是由D Elliott Bell 和J Leonard LaPadula 于1973年提出并于1976年整合完善的一种多级安全模型,是最早也是最流行的保密性访问控制模型,目前已在国内外的军方部门和政府机构中得到广泛的应用.该模型从保密性策略的角度出发,结合了强制访问控制模型(MAC 模型) 和自主访问控制模型(DAC 模型),通过“禁止上读、禁止下写”的策略控制数据的流通方向,防止数据信息从高密级主体流向低密级主体,其安全公理可概括为:1)简单安全特性: 当且仅当主体安全等级大于或等于客体安全等级时,读操作被允许; 2)*- 特性: 当且仅当主体安全等级小于或等于客体安全等级时,写操作被允许.

1.1.3 区块链智能合约

智能合约的概念最早由学者Nick Szabo 提出[17],定义其为一种“通过计算机执行合同条款的交易协议”,即通过代码程序来自动执行合同.在区块链系统中,智能合约是指存储在区块链上能够自动运行的程序,具备可编程性、原子性、一致性等特点,区块链系统可借助封装、部署在其分布式节点中的智能合约自动执行区块链的业务逻辑,而无需第三方的监督.

1.2 基本架构和定义

传统的指挥信息系统用户权限管理机制普遍存在授权模式单一化、中心化、缺乏有效的记录和审计手段等问题,在实际应用中存在较大的安全隐患,为此,设计了基于区块链的指挥信息系统用户权限管理方案.该方案的设计过程分为两个步骤:

1)基于“多链”区块链对指挥信息系统中不同的业务席位进行划分.其中,每个业务席位都需要维护一条区块链,不同的区块链上分别存储不同的数据区块,从而在指挥信息系统中实现业务数据之间的相互隔离.

2)基于BLP 访问控制模型的安全公理,设计指挥信息系统的用户权限管理策略,将这些策略写入区块链智能合约,并挂载到不同的业务席位中.所有的业务席位操作用户都需要在用户权限策略的指导下完成对应的安全操作行为,策略的执行记录都将不可逆地存储到区块链中.通过用户权限策略的执行,能够有效防止内部用户对指挥信息系统敏感数据的越权访问、恶意篡改等行为,从而保证指挥信息系统的安全性.

如图1所示,基于区块链的指挥信息系统用户权限管理方案(以下简称“用户权限管理方案”)的底层架构为“多链”区块链,其中图1(a)表示基于“多链”的指挥信息系统架构,图1(b)代表指挥信息系统业务分群的组成结构.

图1 基于“多链”的指挥信息系统体系组成图

相关的定义描述:

定义1.用户集合U={u1,u2,··· ,un}.U表示指挥信息系统的外部用户集合,所有用户都需要通过远程客户端登入指挥信息系统之后,才能够执行对应的数据操作.

定义2.业务分群BKx={bkx1,bkx2,··· ,bkxn},BKx表示拥有相同安全等级标识的“单链”区块链集合.BKx中的子元素bkx1,x2,···称作业务席位,是记录不同业务数据的“单链”,并且处于同一安全等级.

定义3.共识节点群.共识节点群由高性能数据处理节点组成,为参与到同一业务分群的业务席位提供对应的共识服务,即对单位时间内产生的区块按照时间序列进行接收、封装、排序,并转发送到不同的业务席位中.

定义4.记账节点.记账节点是最基本的工作节点,每一个记账节点都需要加入到不同的业务席位中,负责验证从共识节点群转发的区块数据的正确性,并且每个记账节点都会维持区块链的数据备份.

定义5.通信节点.通信节点是一种特殊的记账节点,它负责与共识节点群进行通信,接收、转发来自业务席位或共识节点群的消息.

定义6.访问权限集合b.其中b(s:x,y,··· ,z)=b⊆×O×A.S为访问主体集,O为访问客体集,A={r,a,w}为访问属性集(r表示只读操作、a表示只写操作、w表示读写操作).

定义7.安全等级标识表示安全等级函数,是安全等级l的有效映射,即fS:S→lS,可用fux、fbky分别表示用户、业务席位的安全等级函数;g表示可操作对象的部门类别,g是的子集.

定义8.支配关系.表示状态控制的二元关系,例如xy,表示x能够支配y的状态.则可表示f1≥f2∧g1⊇g2,结合定义6 和定义7 可得,BLP 模型的安全规则可表示如下:

1)实现SS 属性当且仅当:

2)设是S的一个子集,表示是受*-属性控制的访问主体集合,则实现*-属性当且仅当:

“用户权限管理方案” 通过“多链” 区块链架构划分了处于同一安全级别lx下不同的业务席位,将同一安全等级的业务席位组成业务分群BKi(i=0,1,2,···),每一个业务分群分别包含若干业务席位bkij(j=0,1,2,···),而这些业务席位由指挥信息系统中的若干分布式节点组成,这些节点分别存储并维护一条相同的区块链.用户ux不同于数据节点,它是业务席位bky的实际操作者,在此假设所有的用户ux均拥有可信身份,且带有安全等级标签

此外,为了满足“用户权限管理方案”的相关需求,本文对数据区块的组成结构进行了一定的调整,新的区块结构如图2所示.新的数据区块在保留区块Hash 值、时间戳、数字签名等原有字段的基础之上,添加了DHT 索引值、业务数据、策略名称、访问类型、用户标识、业务席位标识等字段.其中,区块体上的数据通过分布式哈希技术(Distributed Hash Table,简称DHT)映射到本地的分布式数据库中,操作者可将区块的DHT 索引值经过Hash 运算得到一个地址值,对区块体数据进行寻址.这种数据存储方式有效地降低了单个区块的存储空间和工作带宽,并且最大限度地保留了区块链的传统优势.DHT 的实现原理以及具体的使用方法不在本文的讨论范围之内,故在此不作详述.

图2 ”权限数据”区块结构图

2 用户权限策略

用户权限策略是指挥信息系统安全操作行为的准则,它以区块链智能合约作为执行载体,能够被所有的操作用户调用,并按照策略逻辑自动执行.用户权限策略按照功能划分可分为访问控制策略、业务数据共享策略和安全等级修正策略3 类.

2.1 访问控制策略

“用户权限管理方案”需要对外部登入用户的访问请求进行判别,并依据用户的安全等级实现对外部用户的访问控制.访问控制策略是验证用户单次访问合法性的策略,通过执行访问控制策略,业务席位能够对不同类型的用户访问请求的合法性进行判别,并作出自动的响应.

设用户u为业务席bk的外部访问者,u首先需要向bk中的某一个对等节点发送访问请求,对等节点根据访问请求类型触发访问控制策略,并在策略执行完成后将执行结果通过共识节点群在bk的全网节点中广播,在得到全网节点共识后,bk将访问控制策略的执行结果计入到自身的区块链中.访问控制策略的一次成功的执行过程如图3所示.

访问控制策略的实现算法描述如下:

算法1.AccessControl()

//描述: 依据用户的安全等级,对用户的访问行为进行控制.

//输入: 用户访问请求Reqaccess

//输出:bk对访问请求进行判定,如果允许访问,输出访问动作Actu和访问行为记录区块Blockaccess;如果拒绝访问,输出False.

算法1 是实现访问控制策略的总体算法.算法的输入是用户对业务席位的访问请求Reqaccess,它的组成如式(3)所示.

该算法首先定义了用户u和业务席位bk的身份标识IDx,由定义8,通过计算两者安全等级之间的支配关系,得到匹配用户u安全等级的合法访问类型Taccess,并将它与Reqaccess中的子元素b∗(u:x)进行匹配,匹配成功则允许用户u执行Taccess,否则返回False.访问请求执行完毕后,用户u将执行结果进行Hash 散列处理后使用自身的私钥签名,得到签名值S igu,再将S igu与访问权限类型、用户身份信息一同进行打包,组成新的数据区块Blockaccess并输出.最后,Blockaccess由业务席位bk中的某一对等节点接收,经由共识节点进行全网广播后加入到bk的区块链中,策略执行过程结束.

图3 访问控制策略执行时序图

算法1 通过用户与业务席位的安全等级标识对比,判定用户访问请求的合法性,并将判定结果记录到区块链中.算法1 的执行过程为线性过程,其算法复杂度为O(c+CN),其中c、CN均为常数,数值由用户和业务席位所处的网络环境以及共识节点群的性能所决定.

2.2 业务数据共享策略

在“用户权限管理方案” 限定的同一业务分群中,不同的业务席位之间可能需要涉及相关业务数据的交换,来达到分群内资源共享的目的.

规定用户u1对业务席位bk1拥有“读写” 权限b(u1:w),用户u2对业务席位bk2拥有“读写”权限b(u2:w),且由于业务需要,u1需要将其在bk1中处理的数据集Tdata向u2共享,那么指挥信息系统就需要执行业务数据共享策略,实现业务数据集Tdata在bk1、bk2中共享的目的.业务数据共享策略的执行过程如图4所示.业务数据共享策略的实现算法描述如下:

算法2.DataSharing()

//描述: 在业务分群内实现不同业务席位之间的业务数据共享.

//输入: 业务数据集Tdata

//输出:数据区块New_Block

图4 业务数据共享策略执行时序图

算法2 通过用户在不同业务席位之间的区块传递,实现了业务数据的共享过程.其中,算法规定了“用户u1和u2都需要拥有‘读写’权限”的前提条件,这是为了限定业务席位数据的共享范围,防止任意用户对业务席位数据的共享操作.在该算法中,用户u1首先生成数据集Tdata,并将Tdata打包生成初始区块Genesis_Block,Genesis_Block的组成如式(4)所示.

其中,TimeS tamp表示区块的时间戳,HashBlock为区块整体的Hash 散列值,M代表区块的数据信息,S igu1=M×S Ku1表示用户u1的签名值.M的组成如式(5)所示.

在式(5) 中,IDu1、IDbk1分别表示用户u1和其所在的业务席位bk1的身份标识,POLICY表示u1所执行的策略名称.

u1将初始区块Genesis-Block发送到共识节点群,由共识节点群转发给u2,u2在验证Genesis-Block的正确性后,使用自身的私钥S Ku2对Genesis-Block进行签名,生成新的区块New-Block.在New-Block生成完毕后,u2将New-Block加入bk2中,并根据New-Block中的数据修改本地数据库,再通过共识节点群转发New-Block至u1,由u1验证新区块的签名值.如果验证成功,将New-Block加入到bk1的区块链中,结束本次策略执行过程.算法的复杂度为O(c1+c2+2CN),其中c1、c2、CN均为常数,数值分别由用户u1和u2所处的网络环境以及共识节点群的性能决定.

2.3 安全等级修正策略

随着指挥信息系统实际业务需求的发展,业务分群中的某些业务席位需要进行适当的调整,这些席位可能需要离开原有的业务分群而加入到其他业务分群中.“用户权限管理方案”的安全等级修正策略能够有效地适应这一需求.策略的执行过程如图5所示.

在图5所示的策略执行过程中,规定用户u3对业务席位bk3拥有“读写” 权限b(u3:w),用户u4对业务席位bk4拥有“读写” 权限b(u4:w),且产生修正请求Reqtransfer并将其封装到一个数据区块中发送至共识节点群,从而触发业务席位安全等级修正策略.该策略的实现算法如下:

算法3.Sec-LevelChange()

//描述: 更改业务席位bk3的安全等级,使其加入到另一业务分群中.

//输入: 安全等级修正请求Reqtransfer

//输出: 数据区块New-Block,安全等级标识

图5 业务席位安全等级修正策略执行时序图

该算法的输入是面向业务席位bk3的安全等级修正请求Reqtransfer,由用户u3提交,其中u3拥有“读写”权限.u3首先将修正请求Reqtransfer打包,封装入初始区块GenesisBlock(组成结构见式(4)、式(5)) 中,再将GenesisBlock发送到共识节点群,由共识节点群转发给从属于另一业务分群的用户u4,u4在验证GenesisBlock的正确性后,使用自身的私钥S Ku4对GenesisBlock进行签名,生成新的区块NewBlock.随后,u4将NewBlock加入bk4中,并通过共识节点群将NewBlock转发给u3,u3通过解密u4的签名值确认区块信息,最后将NewBlock加入到bk3中,并将bk3的安全等级标识更改为,从而完成策略的执行过程.

算法3 描述了业务席位安全等级的修改过程,算法通过从属于不同业务分群的用户u3、u4之间的区块传递与验证,从而实现了业务席位bk3的安全等级标识由到的替换.算法3 的复杂度为O(c3+c4+2CN),c3、c4、CN均为常数,数值由用户u3和u4所处的网络环境以及共识节点群的性能决定.

3 可行性分析

为验证“用户权限管理方案” 的可行性,基于区块链平台Hyperledger Fabric v1.0.0 模拟一个包含若干数据节点的分布式网络环境,使用“链码”(Hyperledger Fabric 系统中的智能合约) 实现3种用户权限策略,由测试工具wrk[18]模拟网络中的数据区块产生过程,对“多链”架构和传统“单链”架构的单位时间数据吞吐量(Transactions Per Seconds,TPS)进行测试.

测试结果表明,基于“多链” 架构的“用户权限管理方案”的TPS 平均值达到了290.84,而同等测试环境下的“单链”TPS 平均值仅为86.59.因此,基于“多链”架构的指挥信息系统用户权限管理机制具备更高的数据利用率.此外,该方案相较于传统的指挥信息系统用户权限管理机制,还具备以下优势:

1) 基于区块链技术建立了去中心、无法篡改、不可抵赖的权限执行记录,对用户的操作行为进行有效控制的同时,提高了指挥信息系统用户权限管理机制的容灾备份能力;

2)充分利用了区块链智能合约强制性、原子性和自动化的特点,使得用户权限策略的执行过程无法受到人为不可控因素的影响;

3) 由于区块链数据公开化、透明化的特点,使得用户权限策略的执行结果公开可见,便于第三方监督机构对用户的权限执行记录进行实时的验证、审计.

综上所述,基于“多链” 架构的“用户权限管理方案”相比于原有的指挥信息系统权限管理机制,具备更佳的安全性和可受监管性.同时扩展了原有的“单链”区块链架构,提升了数据的利用效率,符合当前高载荷、高并发的指挥信息系统架构建设需求.

4 结论

本文针对传统的指挥信息系统用户权限管理方法存在的权限数据存储中心化、权限划分模式单一化、安全性难以保证等问题,结合指挥信息系统的工作特性,基于“多链”区块链架构和BLP 访问控制模型,提出了一种全新的用户权限管理方案,设计了相关的用户权限策略,并通过实验的对比与分析验证了方案的可行性.下一步将利用区块链和国产CFL认证体制[19],研究面向指挥信息系统操作用户的可信认证机制,实现非法用户过滤、传输信息安全性验证以及可信用户的安全等级标识生成等技术,进一步提升指挥信息系统的安全性.

猜你喜欢
席位信息系统区块
建设工程招投标管理中智能化信息系统的运用
2022年信息系统与运营管理专栏征稿
基于排队论的信息系统装备维修保障效能分析
《红楼梦》的数字化述评——兼及区块链的启示
基于并行构件技术的医疗信息系统的设计与实现
区块链助跑财资管理
一场区块链引发的全民狂欢
区块链助力企业创新
机构席位买卖股追踪
机构席位买卖股追踪