基于主侧链合作的区块链访问控制策略

2022-03-12 05:55朱炳旭梁佳杭任女尔季海鹏
计算机工程 2022年3期
关键词:侧链以太访问控制

刘 晶,朱炳旭,梁佳杭,任女尔,季海鹏

(1.河北工业大学 人工智能与数据科学学院,天津 300400;2.河北省数据驱动工业智能工程研究中心,天津 300400;3.天津开发区精诺瀚海数据科技有限公司,天津 300400;4.河北工业大学 材料科学与工程学院,天津 300400;5.中汽数据(天津)有限公司,天津 300393)

0 概述

在美国先进制造战略、德国工业4.0 战略和中国制造2025 战略[1]的大背景下,新一轮科技革命和产业变革蓬勃兴起。作为新一代信息技术与制造业深度融合的产物,工业物联网成为新工业革命的关键支撑。在工业物联网急速发展的过程中,物联网也承受着来自工业的海量数据[2]。然而对于高度依赖中心化服务器的传统工业物联网系统来说,数据的隐私保护、数据的可靠传输等致命缺点正严重影响着工业物联网的发展[3]。访问控制是一种可以保障数据仅能被认可的用户访问的一种数据保护技术,但当前的访问控制多采用集中式服务器来完成授权决策[4],这种设计很容易发生单点故障问题,可靠性较低。同时,传统的访问控制在数据传输过程中容易被第三方截取篡改。因此,如何解决工业物联网中访问控制的数据可靠传输和单点故障问题成为工业物联网发展的研究热点。

区块链是一种新兴的去中心化分布式存储技术,能够在一个无中心的网络环境中建立信任关系。区块链从技术层面解决了中心化授权实体带来的安全问题,通过将区块链与访问控制相结合,能够有效避免单点故障问题,提高访问控制的可靠性和安全性[5]。目前,已有研究人员将区块链技术应用到物联网中与访问控制相结合来解决单点故障和数据的可靠传输问题,并取得了较好的效果。文献[6]介绍了物联网环境下的单点故障和数据篡改问题,设计并实现一种基于智能合约的物联网访问控制系统;文献[7]针对目前传统访问控制模型比较复杂的问题,提出一种新的结合区块链的访问控制模型,具备伸缩性、细粒度等特性,可在物联网系统中进行有效部署。

上述文献都在一定程度上解决了物联网环境中访问控制的单点故障问题,但在实际应用中,尤其是在工业物联网中存在着海量的工业数据传输,要求工业物联网中的区块链系统具有较高的吞吐率和较短的交易确认时间。针对上述问题,文献[8]提出一种在许可环境下的可信交易框架,增加单位时间的交易处理能力来提升数据传输速度;文献[9]设计一种满足工业环境要求的高效与安全分层扩展式区块链。上述方案都在一定程度上解决了区块链的数据传输吞吐率的问题,然而在工业物联网环境下的访问控制每次进行访问请求时都需要区块链进行验证,尽管对区块链结构进行了优化,但在海量节点的环境下,再高效的验证机制也会因节点的庞大数量而降低数据的传输速度。

侧链技术是一种区块链二层扩容技术,该技术通过将一些频繁、小额的交易转移到侧链上来降低主网的交易压力,有效提高交易效率[10]。在工业物联网环境下,绝大部分节点的资源访问请求内容是相同的,但访问频率较高,对于这类请求,在验证了节点安全性之后仅需要批量进行区块验证即可达到目的。因此,可以在以太坊上部署对应的侧链技术,将这些高频节点的访问请求放到侧链上进行处理;主网仅需要对区块进行批量验证即可在解决单点故障问题的同时,保证数据的传输速度。

针对工业物联网环境下访问控制的单点故障和高效传输问题,本文提出一种基于主侧链合作的工业物联网访问控制策略。该策略引入侧链对区块链进行扩容,提高区块链的数据承载能力,并设计适用于主侧链区块链结构的访问控制模型,以满足数据高速传输的需求。

1 相关理论基础

1.1 区块链技术

区块链技术是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,它起源于《Bitcoin:A Peer-to Peer Electronic Cash System》[11],其中去中心化是区块链的一个显著特点,区块链使用分布式核算储存自成一体,不依赖于任何中心机构,也没有中心管制,任何节点的权力和义务都是均等的,系统中的数据由整个系统来维护。另外,在区块链中,交易的私有信息被加密,其他数据对所有人开放,所有人都可以通过公开接口查询区块链数据和开发的相关应用,该系统信息高度透明。区块链通过哈希算法使所有节点都产生信任,无法人为干预,各区块节点的身份信息不需要公开或验证使对方产生信任,只需要遵循固定的算法,就可以达到数据交互的信任。

1.2 以太坊扩容

区块链作为一种分布式网络存储技术,同样存在性能瓶颈,其中最突出的是区块链可扩展性非常差。以太坊公有链的核心限制是每一笔交易都要由网络中的每一个节点进行处理,这意味着以太坊整个网络的吞吐量(TPS)不能高于以太坊单个节点的吞吐量。理论上,以太坊可以通过提高节点的区块工作量来实现扩容[12],但这是以去中心化为代价的,因为节点的工作多,意味着算力小的计算机可能会退出网络。这一问题一直以来都是限制区块链发展的一大隐患,但由于起初用户量较小,其弊端并没有显现出来。然而,随着区块链技术的不断发展,越来越多的研究人员开始尝试这项新技术,海量的用户使以太坊变得非常拥堵,同时可以预见到未来会有越来越多的项目在以太坊的基础上构建。因此,解决以太坊扩容这一难题势在必行。

目前常见的扩容技术可以分为Layer1 层扩容和Layer2 层扩容两种。Layer1 层的扩容方案采用分片技术[13],即让区块链不同的节点子集处理区块链的不同部分,通过分割数据以减少区块链节点必须存储和处理的数量,由此来达到扩容效果。但由于分片涉及到区块链底层协议的更改,因此分片技术提出后并没有进行实际的应用。并且分片的数量受制于整个网络的节点数量和处理能力,因此Layer1 层的扩容方案逐渐被废弃。Layer2 层的扩容方案则是线下扩容[14],即区块链主链不作改变,而是将所有计算委托给一组强大的节点来完成,这组节点并不直接链在主链上,因此其计算能力并不会受区块链网络条件的制约。在交易速度上,以太坊目前的交易速度约是15 笔/s,而根据Layer2 层的解决方案,以太坊的交易速度可达2 000~4 000 笔/s。因此,Layer2层的解决方案成为目前主要的扩容方向。Layer2 层的扩容方案比较著名的有状态通道、Plasma、Rollup 等。

1.3 Plasma 方案和Loom 侧链

Plasma 方案是由BUTERIN(以太坊创始人)和POON(闪电网络创始人)在2017 年共同提出的,它是一个在以太坊上构建可扩展应用的框架,允许创建附加在以太坊主链上的子链;同时,这些子链也可以产生自己的子链。其结果就是这些子链只需与以太坊主链进行极少量的交互就能运行拥有数千名用户的整个应用程序[15]。由于子链上的操作不需要在整个以太坊区块链存留副本,因此子链的运行速度更快,交易费用更低。Loom 侧链则是一条实现了Plasma Cash 框架模型的高性能DPOS 侧链,它由以太坊底层网络安全背书,因此能够享受DPOS 算法带来的高性能共识。同时,Loom 团队设计了能够快速搭建属于用户自己区块链的Loom SDK(工具集),使用户可以根据自身需求设计自己的区块链。

1.4 工业物联网的数据访问与管理

物联网是一个以数据为核心的网络,尤其是在工业物联网中,各终端设备之间的互联互通都是以数据作为中介。因此,数据的访问和管理是整个工业物联网互联的关键所在。由于工业物联网中的终端设备存在类型复杂、存储能力、计算能力大小不一等问题,目前数据的访问和管理通常由一个集中式的可信第三方实体实现。可信实体通过集中式服务器进行管理,依据访控策略和其他属性信息进行决策[16]。同时,为解决终端节点传输的海量数据所带来的访问和管理压力,在工业物联网中主要通过建立多个数据中心、构建分布式架构等方式进行应对。

2 基于主侧链合作的区块链访问控制

2.1 策略架构

在物联网领域,访问控制需要做到对请求的快速响应和回复。为满足上述需求,在物联网领域使用区块链的访问控制策略中,常用的方法是将架构分为区块链端和物联网设备端两个部分[17]。但在工业物联网领域,不仅节点数目庞大,而且很多节点并不需要同时完成资源的请求和上传两项工作。同时,许多工业数据对厂商来说极为重要,因此不仅要确认访问控制模型的安全性,而且还要对连入物联网的各设备进行安全性验证。

针对上述工业物联网领域的访问控制架构问题,本文设计一种针对工业物联网的策略架构,如图1 所示。该架构根据对资源的使用情况分成客户端、区块链网络、设备端3 个部分,客户端和设备端分别是资源的上传者和请求者,其中:客户端负责资源上传、策略制定以及资源使用授权,同时客户端配置了与区块链相连接的SDK,实现客户端与区块链网络的连接;设备端则是对一些资源进行请求使用,这部分的设备通常为一些边缘终端,运算能力较弱,因此通过网关与区块链网络相连接,发送对资源的请求。通过统一各终端的请求流向并进行分离,避免了请求冲突的出现,实现了请求的高速传输。

图1 工业物联网策略架构Fig.1 Strategy architecture of industrial Internet of things

区块链网络是主要的策略逻辑部分,为保证区块链网络的安全,设计对物联网设备的身份验证,即对于连入区块链网络的终端都需要预先进行登录验证,之后才会被允许连入。对以太坊的数据确认过程进行分析可以发现,在以太坊上,每进行一次操作就需要进行一次全节点确认,这是以太坊吞吐率低的主要原因。但在工业物联网的环境下,由于终端操作存在批量重复请求的原因,其并不需要每一次操作都进行全节点的确认,仅需要对关键操作进行确认即可[18]。因此,本文区块链将智能合约模块放到侧链上,由侧链进行访问控制策略的执行。该方法大幅减少了以太坊上的确认次数,提高了区块链的使用效率。侧链的数据通过矿工Operator 打包发送给与以太坊相连的Plasma 合约,分批次进行发送。以太坊作为主链,仅需要按批次地通过Plasma 合约获取交易的哈希值,并将其同步到以太坊进行锁定即可,这样既提高了访问控制的速度,又实现了去中心化的访问控制。

2.2 访问控制模型

在工业物联网的访问控制中,既要做到对权限有简单明确的划分,又要防止发生过度授权,出现隐私数据泄露等风险。因此,需要根据使用场景特点进行有针对性的访问控制权限划分。对于工业物联网场景来说,最重要的是要防止数据的泄露,尽管研究人员对各常见的模型设计一些方法,如角色集、权限集等方法来防范非法访问,但这种方法对保护措施的设计都有很高的要求[19],并且如果防范方法被破解,不法者就能迅速获取各种数据资源,使工厂遭受无法挽回的损失。为更有效地防范数据泄露,本文设计一种基于主侧链合作的访问控制模型。通过执行点将资源与策略的管理相分离,每次的访问都仅能收到请求资源的返回,由此来从根源上切断数据的泄露,达到数据安全防范的效果。模型架构如图2 所示。

图2 访问控制模型架构Fig.2 Architecture of access control model

模型在与主客体直接相连的部分设计了主体信息点和客体信息点,主体信息点是与主体交互的访问控制执行点,负责传递主体的访问请求和主体信息,以及返回处理请求后的执行结果。客体信息点是与客体资源交互的执行点,负责收集客体以及资源的属性,当出现访问请求时上传所需客体资源信息,供访问控制策略参考。这种设计阻隔了外部实体对模型内部的直接访问,避免了非法入侵[20]。同时,数据的输出通过执行点直接返回给各自连接的实体,有效避免了数据的泄露。信息处理点的设计则是将访问控制策略的执行与存储分离,出现请求时处理点直接调取设计好的访问控制策略对请求进行判断,处理点只有调取访控策略的权限,并不能修改策略。并且每次查看策略的权限在完成本次访问请求后将会收回,有效地避免了访问控制策略的泄露,极大增强了模型的安全性。

2.3 合约设计

为实现上述访问控制策略,本文通过3 个部署在侧链上的智能合约来完成访问控制权限的决策授权和决策的信息管理,3 个合约分别是前置合约、访问控制合约和监管合约。合约的交互方式如图3所示。

图3 合约在侧链上的交互方式Fig.3 Interaction way of contracts on the sidechain

在侧链上,区块链的头部部署前置合约,它维护一张信息表用来记录监管合约和访问控制合约的相关信息。然后在下一个区块上部署监管合约,合约中包含了时间容忍度函数,用来对访问者的访问频率进行监控,对规定范围的访问进行批量允许访问。同时,监管合约维护一张违规访问表,用来记录违规的访问者并进行一定的惩戒。之后的区块用来放置访问控制合约,每个区块链连接不同的物联网设备,访问控制合约维护访问策略表和访问记录表,当出现访问请求时,访问控制合约会根据制定的访问策略以及监管合约的检测结果,对访问请求进行回应,并且当有新的访问控制策略加入时,只需继续在链上添加新的访问控制合约即可。

2.4 数据同步验证

为防止数据被篡改,区块链需要对数据进行同步验证。区块链中使用的是默克尔树算法,在该算法下各数据通过哈希算法求出哈希值,区块链中仅保留最终产生的根哈希即可对数据进行同步验证。但这种算法同样存在弊端,该算法在验证某个数据不存在于区块中时会十分困难。因此,Plasma Cash 框架中使用了稀疏默克尔树算法[21],该算法通过将链上数据按照元素序号顺序进行排列,由此形成一个有序的叶子节点序列。当某处没有交易时,叶子节点直接存储一个空值;当需要验证数据不存在性时,只需根据数据位置查找,找到空位置即可完成不存在性证明。访问控制信息存储到侧链上以后,使用稀疏默克尔树算法进行哈希锁定,并将默克尔根同步到以太坊主链。一旦信息被篡改,默克尔根也会随之改变[22],主链负责数据的验证,侧链负责数据的存储和请求的处理,既保证了数据的真实性,又大幅提高了区块链的吞吐率。稀疏默克尔树算法流程如图4 所示。

图4 稀疏默克尔树算法流程Fig.4 Procedure of sparse Merkel tree algorithm

3 实验结果与分析

通过仿真实验,对本文的访问控制模型以及侧链的性能进行测试,并对其安全性和存储占用进行分析。侧链通过Loom SDK 部署,采用DPOS 共识机制,使用10 个节点来处理交易;主链通过Geth 部署,采用POA 共识机制,部署5 个节点进行验证。主侧链实验环境如下:处理器Intel®CoreTMi7-9750H,主频2.60 GHz,内存大小为16 GB,操作系统为ubuntu18.04LTS,Node.js 版本为v8.10.0。

3.1 模型性能分析

访问控制策略的生成时间是衡量访问控制模型优劣的一个重要指标。为验证本文模型在策略生成方面的效果,设计了一个传统的区块链物联网访问控制模型来进行对比实验。此次实验准备了一组次数 为50 次、100 次、200 次、500 次、800次的并发实验,对2 个模型均进行测试并进行记录该访问次数下的平均时间。由于侧链无需进行区块确认,因此为更加直观地看到模型控制策略的生成速度,将本文模型放到以太坊测试链上进行实验,结果如图5所示。

图5 访问控制模型生成速度对比Fig.5 Comparison of generation speed of access control model

从图5 可以看出:传统访问控制模型的策略生成时间与本文模型相比,策略的生成时间会随着并发次数的增加有较高的上升;而主侧链合作访问控制模型能更快地生成访问策略,并且生成策略的延迟在高频访问时趋于稳定。由实验数据可知,主侧链合作访问控制模型更适用于工业物联网海量终端节点的应用情况。

3.2 侧链性能测试与分析

工业物联网下的访问控制要求区块链既要保障数据的稳定传输,又要降低数据传输的延迟以保证数据请求的时效性。为测试侧链的稳定性,实验选择将前置合约分别部署于以太坊测试链和Plasma 侧链上,模拟向合约中写入访问控制合约相关信息。实验进行的写入次数分别为50 次、100 次、200 次、500 次、800 次。实验结果如图6所示。

图6 以太坊测试链与侧链写入数据延迟对比Fig.6 Comparison of write data delay between Ethereum test chain and sidechain

从图6 数据可以看出:在以太坊测试链上由于受到区块同步等因素的影响,数据写入的延迟起伏较大,且延迟时间较高。对于工业物联网来说,保持数据传输的稳定是重中之重,因此以太坊区块链并不完全适配于工业物联网环境。但可以看到在Plasma 侧链上,写入数据的延迟一直维持在一个很低的时间,且在不同的写入次数下都能保持稳定。说明对于工业物联网环境,Plasma 侧链更加符合要求。

吞吐量是衡量一个访问控制模型策略传输速度的重要指标[23]。在测试侧链的稳定性之后,还需要测试侧链的吞吐量以保证面对海量数据传输时不会出现数据拥堵和侧链宕机的情况。为测试侧链应对不同数据量时的吞吐量,实验通过docker 容器模拟10个客户端节点向侧链发送50 次、100 次、200 次、400 次、700 次、1 100 次、1 600 次并发请求,分别对策略写入请求和访问资源请求进行记录,实验结果如图7、图8 所示。从图中数据可以看出:在面对不同数量级的并发请求时,侧链的吞吐量一直稳定在210 Transactions/s 左右,策略写入请求和访问资源请求基本没有差异,具备承载工业物联网访问控制的能力。

图7 写入请求测试结果Fig.7 Write request test result

图8 访问资源测试结果Fig.8 Access resource test result

3.3 安全性分析

安全性分析包括以下3 个方面:

1)透明性

本文通过区块链上的智能合约实现分布式的访问控制机制。客体的违规记录、资源的授权、访控策略的存储均由区块链负责,实现整个授权过程中的透明性。

2)不可伪造性

Loom 侧链基于Plasma Cash 框架模型实现,该框架下每进行一次操作就会分配一个唯一的ID,并将操作记录在稀疏Merkle树中[24]。通过这个ID 可以检索到Merkle 树结点的位置,进而找到操作记录。通过ID 的不可伪造性防止侧链作恶,实现侧链的安全。

3)隐私性

在整个访问过程中,客体和主体之间不发生直接接触,双方的请求和资源均由信息点收集和发送,互相无法得到对方的信息,保证了隐私性[25]。

3.4 访问控制策略存储占用分析

随着工业物联网中设备、请求数量的不断增加,访问控制合约的代码量也随之飞速增长,对区块链的存储造成了较大的压力。由于访问控制策略的架构不同,因此存储空间占用的大小和增速也不同。所以,在访问控制合约设计时,应当充分考虑对区块链造成的存储压力。目前常用的防控策略主要有基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)两种。RBAC 策略将角色和权限关联,用户通过系统给予的角色来获得相应的权限[26]。该策略能够支持物联网环境的跨域控制、设备异构等特性。ABAC 策略则是将属性作为控制权限的关键要素,通过属性关联权限实现动态化的节点安全接入[27]。为分析访控策略对区块链造成的存储压力,实验参考设计了两种常用的访控策略与本文策略进行对比实验,分析合约大小随设备数目增长情况。合约的相关信息如表1 所示。

表1 智能合约相关信息Table 1 Related information of smart contract kB

假设设备数量为n,每个设备都会发起访问控制请求,那么访控策略中设备端每需要部署a个合约,就会产生a个主体客体对,即该策略中就会部署na个合约。由此,可以得到合约大小随设备数量增长的表达式。

本文策略公式如下:

f(x)=65.13x+65.05

RBAC 策略公式如下:

g(x)=20.5x2+34.9

ABAC 策略公式如下:

h(x)=180.13x+160.07

根据函数表达式绘制如图9 所示的函数图像。从图9 可以看出:RBAC 策略的代码量随着设备数目的增加而迅速增长,在4 个设备以上就高于本文所设计的策略。ABAC 策略代码增长率虽然小于RBAC 策略,但与本文策略相比增速依然很快。相较于其他常用策略,本文提出的策略在保证数据传输效率的同时,节省了大量的存储空间,更适用于工业物联网海量节点的使用场景。

图9 访问控制合约存储空间增长对比Fig.9 Comparison of access control contract storage space growth

4 结束语

为解决海量数据传输时区块链传输性能不足的问题,本文提出一种基于主侧链合作的工业物联网访问控制策略。根据Plasma 方案对区块链进行侧链扩容,侧链负责智能合约执行,而主链以数据批量验证的方式实现主侧链合作的数据高效传输。在访问控制模型的设计上,在与主客体直接相连的部分设计执行点,将资源与策略的管理相分离,不仅从根源上切断数据的泄露,达到数据安全防范的效果,而且更有利于工业物联网中轻量级节点设备的请求和资源传输。实验结果表明,该策略能够提高控制模型的管理效率,满足工业物联网环境下访问控制的需求。下一步将横向对比各种侧链协议并进行线下部署实验,选取更加符合工业物联网环境的高性能侧链技术,以提高控制策略安全传输效果。

猜你喜欢
侧链以太访问控制
一种跨策略域的林业资源访问控制模型设计
酞菁锌的侧链修饰及光动力活性研究
基于活跃节点库的以太坊加密流量识别方法
以太万物理论概述
含聚醚侧链梳型聚羧酸盐分散剂的合成及其应用
内外网隔离中ACL技术的运用
车易链:做汽车业的“以太坊”
区块链技术在航运业的应用前景
云计算访问控制技术研究综述
A Study on the Contract Research Organization