一个专业的论文、出书、专利服务平台

品质、专业的

论文指导服务

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

时间:2021-09-17 分类:智能科学技术

  摘 要:由于传统区块链技术处理交易能力弱、吞吐量低,不仅难以处理工业环境下的海量数据,而且其访问控制策略权限管理效率低,安全性不足。针对上述问题,提出了基于主侧链合作的区块链访问控制模型策略,该策略首先通过 plasma 方案对区块链进行侧链扩容,其次针对工业物联网的节点特点和主侧链区块链的运行环境,设计了适用于主侧链环境的访问控制模型,编写成智能合约后放至侧链上;以侧链负责合约执行,主链负责数据批量验证的方式实现设备的访问控制。最后,通过实验结果表明,该策略既对基于工业物联网的区块链传输速度和稳定性进行了有效的优化,又提高了控制策略的管理效率和安全性,满足了工业物联网中的使用需求。

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

  刘晶; 朱炳旭; 梁佳杭; 任女尔; 季海鹏, 计算机工程 发表时间:2021-09-16

  关键词:工业物联网;区块链;访问控制;智能合约;扩容技术

  0 概述

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

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

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

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

  综上所述,针对工业物联网环境下访问控制需要同时解决单点故障和高效传输的问题,本文提出了一种基于主侧链合作的工业物联网访问控制模型策略。与现有方法相比,该方法引入侧链来对区块链进行扩容,进一步提高区块链的数据承载能力;并设计了适用于主侧链区块链结构的访问控制模型,满足数据高速传输的需求。

  本文创新点如下:

  (1)为应对区块链性能无法满足工业物联网海量终端节点的问题,提出主侧链合作的方式来对区块链进行扩容,使其满足工业物联网的应用需求。

  (2)针对传统访问控制模型不适配主侧链高速传输环境和工业物联网设备节点特点的问题,提出一种适应主侧链区块链的访问控制模型,实现主侧链环境下的高速传输以及访控策略管理效率和安全性的提升。

  1 相关理论基础

  1.1 区块链技术

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

  1.2 以太坊扩容

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

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

  1.3 Plasma 方案和 Loom 侧链

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

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

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

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

  2.1 策略架构

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

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

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

  2.2 访问控制模型

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

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

  2.3 合约设计

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

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

  2.4 数据同步验证

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

  3 实验分析

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

  3.1 模型性能分析

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

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

  3.2 侧链性能测试与分析

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

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

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

  3.3 安全性分析

  (1) 透明性

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

  (2) 不可伪造性

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

  (3) 隐私性

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

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

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

  因此这里假设设备数量为 n ,每个设备都会发起访问控制请求。那么访控策略中设备端每需要部署 a 个合约,就会产生 a 个主体客体对,即该策略中就会部署 a n 个合约。由此可以得到合约大小随设备数量增长的表达式:本文策略: f x x ( ) 65.13 * 65.05   RBAC 策略: 2 g x x ( ) 20.5 * 34.9   ABAC 策略: h x x ( ) 180.13 * 160.07

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

  4 结束语

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

  下一步的研究中将横向对比各种侧链协议进行线下部署实验,从中选取更加符合工业物联网环境的高性能侧链技术,最终实现策略的实际落地实现。

获取免费资料

最新文章