Blcokchain Meets IoTL:An Architecture for Scalable Access Management in IoT

来源:IEEE INTERNET OF THINGS JOURNAL.VOL. 5,NO.2,APRIL 2018

作者:Oscar Novo

区块链在本文方案中的作用:存储和分发访问控制信息。除物联网设备和管理中心节点外,所有实体都将成为区块链技术的一部分。

1、论文背景

物联网(IoT)正在逐步走向成熟物联网(IoT)已经成为一种在许多垂直市场上具有很大影响力的技术。 预计到2022年全球将有180亿台设备[1],可以预见,许多物联网服务将为数以百万计的简单设备提供全球覆盖。

  • 挑战

在全球部署数十亿台设备的技术挑战之一是管理它们的能力。尽管物联网中存在访问管理技术,但它们基于集中模型,这些模型引入了各种技术限制以在全球范围内管理它们。

除此之外,许多物联网设备的受限能力,以及基于集中式和分层结构的当前访问控制系统,都在物联网领域带来了新的挑战。

2、论文方案

本文提出了一种新的体系结构,用于仲裁物联网中的角色和权限。 新架构是基于区块链技术的物联网完全分布式访问控制系统。 该体系结构由概念验证实现支持,并在实际的物联网方案中进行评估。 结果表明,区块链技术可以用作特定可扩展物联网场景中的访问管理技术。

  • 与集中式的方案相比,本论文方案的主要优势:

移动性:该体系结构可用于隔离的管理系统或域。因此,每个管理域都有自己的自由来管理物联网设备,而访问控制策略仍然由区块链中的规则强制执行。

可访问性:在一些物联网系统中,受约束的管理者可能会使用睡眠模式,这使得随时直接访问它们不可行的。而此解决方案使访问控制规则随时可用。此外,某些管理服务器中的故障不会破坏对信息的访问;所有访问控制信息都是分发的。

并发:受约束的设备可以同时拥有多个管理器,并且所有这些管理器可以同时访问或修改访问控制策略。

轻量级:物联网设备无需任何修改即可采用我们的解决方案。此外,管理器和物联网设备之间的通信通过区块链网络实现,实现跨平台通信。

可扩展性:受约束的管理器仍然可以使用我们的解决方案处理多个IoT设备,因为物联网设备不直接从管理器访问访问控制信息。此外,我们的解决方案支持通过不同约束网络连接到单个区块链的众多物联网设备。

透明度:系统隐藏物联网设备的位置以及如何访问资源。

特别是,本文方法与其他解决方案的不同之处在于它应用特定设计以避免将区块链技术集成到物联网设备中。 这增加该方案在大量具有有限功能的物联网场景中的可用性。 与其他解决方案相反,该设计在单个智能合约中运行,简化了区块链网络中的整个过程,并减少了节点之间的通信开销。 另外,访问控制信息被实时提供给IoT设备。

3、方案介绍

  • 系统结构

框架由6个组件组成

1)无线传感器网络
2)管理员
3)代理节点
4)智能合约
5)区块链网络
6)管理中心

1)无线传感器网络:
物联网设备不属于区块链网络。 因此,架构的要求之一是必须在区块链网络中全局唯一地识别所有设备。 公钥生成器可以为产生可接受的大且独特的随机数的问题提供可行的解决方案。 通常,使用现有的IoT加密技术会自动为每个设备创建公钥。 因此,强制加密连接将确保唯一标识符。 事实上,目前的物联网通信协议,如CoAP [13]已经通过DTLS支持安全通道[14]。

2)管理员:
管理员是负责管理一组物联网设备的访问控制权限的实体。通常,管理员被认为是该系统中的轻量级节点。轻量级节点不存储区块链信息,也不像矿工节点那样验证区块链的事务。因此,受约束的设备也可以成为系统中的管理员,而不会对其硬件限制造成障碍。此外,使用管理人员不需要经常连接到区块链网络,这有助于减少其硬件资源的使用。
任何实体都可以注册为管理员。但是,注册为IoT设备的设备必须在管理员的控制下注册。这样做是为了避免管理员在未经设备许可的情况下注册其控制下的设备。此外,系统中所有已注册的IoT设备必须属于至少一个注册管理器。否则,没有人能够管理该设备。已注册的IoT设备可以同时属于多个管理器。在管理员控制下注册物联网设备后,管理员可以为它们定义特定的访问控制权限。

3)代理节点:
代理节点是架构中的特定区块链节点,负责在系统中部署唯一的智能合约。代理节点是访问控制系统生命周期内智能合约的所有者。一旦智能合约被接纳到区块链网络中,代理节点就会收到一个地址,用于识别区块链网络内的智能合约。为了与智能合约进行交互,区块链网络中的所有节点都需要知道智能合约的地址。

4)智能合约:
本文中描述的访问管理系统由单个智能合约中定义的操作控制。 此智能合约是唯一的,无法从系统中删除。 因此,访问管理系统中允许的所有操作都在智能合约中定义,并由区块链事务触发。 一旦通过交易触发操作,矿工将保持全局可访问的交易信息。 智能合约及其运营也可在全球范围内使用。

5)区块链网络:
为简单起见,架构中的区块链网络是一个私有区块链。选择一个私有区块链,是因为原型的所有元素都更加规模化,在评估系统时可以提供更可靠的结果。 但是,在实际情况中,应使用公共区块链来促进解决方案的采用。
私有区块链是任何人都可以读取但只能由私有节点写入的区域链。网络中的矿工通过批准交易和保留区块链的副本来帮助保持网络的安全性和稳定性。 节点可以使用区块链接口来存储和全局访问特定设备的访问控制策略。 信息完全分散,防篡改。

6)管理中心:
IoT设备不属于区块链网络。大多数物联网设备在CPU,内存和电池方面都受到很大限制。这些限制限制了物联网设备成为区块链网络的一部分。因此选择使用称为管理中心的节点。管理中心是一个接口,它将IoT设备在CoAP等消息中编码的信息转换为区块链节点可理解的JSON-RPC消息。管理中心直接与区块链节点(例如矿工)连接。多个传感器网络可以连接到管理中心节点,多个管理中心节点可以连接到同一个区块链节点。物联网设备只能使用管理中心从区块链请求访问信息。
管理中心节点不能是受约束的设备。这些设备需要高性能特性才能从IoT设备尽可能多地同时请求。
在最简单的情况下,不需要身份验证,任何物联网设备都可以直接连接到任何管理中心并访问区块链网络。但是,在许多情况下,需要访问控制。在这种情况下,物联网设备只能连接到某些特定的管理中心。在将IoT设备添加到系统中之后,该设备的管理器节点将必须向特定管理中心节点通知该设备的凭证,以及向设备通知管理中心节点的位置。

  • 系统接口

 I:每个管理员m的公钥 I(m)的集合;

G:每个IoT设备的公钥G(s)的集合;

P:策略P的集合,其中ps→s' r指的是具有公钥s的IoT设备对具有公钥s'的IoT设备的资源r的权限

管理员和物联网设备实体将通过其公钥在系统中识别。资源将通过其名称来识别; 可以通过AddAccessControl操作定义允许或阻止其他人查看,修改或执行它们的权限。

假设S是IoT设备的集合,s,u∈S;R是资源集合,es∈R;P是权限类型集合,其中{r,w,x}∈P和r,w和x指定 分别对读取,写入和执行访问,区块链节点将使用管理中心提供的信息查询区块链,如下所示:

  • 系统交互

组件之间的交互可以分为四个的阶段。

   1)设置管理区块链网络。
   2)将管理器和IoT设备注册到系统中。
   3)为上述组件定义策略。
   4)查询策略

1)网络创建:
访问管理系统在区块链网络中创建。在创建区块链网络后,代理节点将智能合约部署到区块链网络中。这个单一的智能合约定义了访问控制管理系统的所有操作。

2)注册:
访问管理系统中的任何区块链节点都可以注册为管理员。它可以将注册自己的交易发送到智能合约中定义的函数RegisterManager。此后,一旦交易成功被接纳到区块链中,注册设备将收到其注册地址。该地址将标识访问管理系统中的管理员。管理员可以将设备注册到自己的控制范围。物联网设备可以拥有的管理员数量没有限制。管理员将接收注册设备的地址,该地址将用于将设备识别到访问管理系统中。物联网设备应该能够在区块链中接受操作之前验证管理员。否则,任何管理员都可以注册任何设备到其管理范围。为简单起见,论文框架的实施避免了验证。这种假设使得该系统在恶意管理员的情况下基本上不安全,但本论文的目标是证明架构的可行性而不是安全性。

3)管理修改:
每个IoT设备必须属于至少一个管理员。此外,系统支持多个管理员控制同一设备。系统有多种方法可以将管理控制从一个管理员转移到另一个管理员,或者从系统中添加或删除多个管理员。
管理员不能从系统中删除其他管理员。只要IoT设备至少受另一个管理器节点的控制,系统将始终让管理员移除自己对该设备的控制。否则,智能合约将不允许该操作,将被取消。
另一方面,只有控制IoT设备的管理器节点才能在该设备的控制下注册其他管理器。
我们解决方案的一个优点是,转移物联网设备的管理控制是一个简单的过程,因为系统中的所有操作都是使用单个智能合约定义和实施的,而管理员不需要与每个操作进行交互。其他。管理人员只需知道设备的地址和智能合约的区块链地址即可修改管理关系。

4)策略定义:
管理员可以为其物联网设备的资源定义访问控制规则。实现中的权限列出了有权访问特定资源的设备。 此后,管理人员不仅需要知道其控制下的设备的地址,还需要知道有权访问其IoT设备的设备的地址。 管理员可以执行策略,使用所有信息为智能合约创建交易。

5)策略修改:
与策略定义类似,管理员可以随时修改和删除策略。如果管理器使用AddAccessControl操作添加现有策略,则会自动修改该策略。

6)策略查询:
设备S2希望访问由设备S1托管的资源时,S2发送请求S1的资源信息的CoAP消息。因此,S1可以通过管理中心请求S2的访问控制信息。在物联网设备可以连接到最近的管理中心之前,设备首先需要发现管理中心的IP地址。可以有多种机制来发现最近的管理中心节点,但实现中使用的方法假设每个设备都有一个默认位置。
然后,管理中心将设备的消息转换为RPC消息[16],并将其发送给与其相连的区块链网络中的矿工。该操作查询来自存储在矿工中的区块链的信息。一旦矿工将S1的访问策略通知管理中心,管理中心就将答案转换回S1。 S1根据管理中心收到的信息采取相应的行动。图中给出了成功的答案,因此,S1将资源的信息发送到S2。

  •  模型实现

A.区块链网络
为PoC(概念证明)实施选择的区块链技术是以太坊[10]。但是,此实现的目标是在实际场景中将其部署在公共区块链中。

1)智能合约:
系统中的单一智能合约是使用Solidity编程语言实现的。 受约束的设备信息,管理员信息和访问控制策略细节存储在智能合约中的两个不同的数据结构中,如上图所示。用于存储信息的数据结构称为map。 map结构类似于散列表,其中值从一开始就使用所有可能的键初始化。map有助于组合不同的数据类型以形成统一的数据类型。

2)管理中心:
管理中心是一个JavaScript接口,可帮助IoT设备与区块链网络连接。 该接口使用Web3 JavaScript API通过RPC调用与以太坊节点通信,并使用名为node-coap5的CoAP JavaScript库与IoT设备连接。 

B.物联网设备
设备使用LibCoAP库实现.LibCoAP是CoAP的C实现。它可以利用tinydtls7框架支持传输层安全性。 LibCoAP代码已修改为每个设备自动生成公钥/私钥。 密钥长度为20个字节,用于唯一标识管理系统中的设备。 该库实现CoAP客户端和CoAP服务器。 CoAP服务器用于在CoAP客户端创建CoAP请求消息时侦听CoAP请求并对其进行响应。

4、系统评估

评估区块链系统中管理中心节点的引入如何影响架构的整体延迟。评估DTLS库的集成以及物联网设备与管理中心节点的连接是否是本文提出的方法的技术限制。 (目前的物联网通信协议,如CoAP [13]已经通过DTLS支持安全通道[14])

A.实验设置
实验在具有Intel Core i7-950@3.07 GHz的Ubuntu-16.04台式机上完成。我们使用了Docker11和一个名为vertigo / ethereum12的图像,它来自以太网协议ethereum / client-go的golang实现图像client-go。 Vertigo经过轻微修改,使运行私有以太坊网络变得更加简单。物联网设备在同一台机器上运行我们修改版的LibCoAP库。
为了确定实验的大小,使用了一个名为CoAPBench13的基准测试工具(设置对比实验)。该工具使用Californium14作为CoAP实现基线。 CoAPBench是一个类似于ApacheBench的工具,它使用虚拟客户端来满足定义的并发因子。 CoAPBench在发出下一个请求之前发送可确认的请求并等待响应。如果消息丢失,客户端会在10秒后超时并将损失记录在单独的计数器中。CoAPBench是CoAP唯一可用的基准工具。但是,该工具对于测试目的而言太有限了,所以决定使用新功能扩展它。修改之后,CoAPBench能够发送POST,PUT和DELETE消息,并允许在请求消息中指定有效负载。

B.实验结果(略)

5、安全性分析

安全在任何管理系统中都具有至关重要的意义。 尽管该系统的设计旨在促进受限场景中的资源访问控制,但该解决方案应提供令人满意的安全级别。 在本节中,确定了架构中可能存在的主要线程,并提供了保证最佳安全级别的解决方案。
为了识别系统中的威胁,通过询问一个或多个线程类型是否适用来使用STRIDE模型[17]。 STRIDE将威胁分为六类,其首字母缩写词源于:1)欺骗; 2)篡改; 3)否认; 4)信息披露; 5)拒绝服务; 6)特权提升。

1)物联网设备不是区块链网络的一部分,必须依赖于管理中心节点上的访问控制决策。恶意管理中心可能欺骗(冒充管理中心),篡改(修改发送到IoT设备的访问控制信息),拒绝(声称尚未执行操作),DoS(降低发送到IoT设备的信息),或披露未经授权的物联网设备信息。签署的证书可以解决这个问题。管理中心节点可以从证书颁发机构获得签名证书,IoT设备可以通过它们验证管理中心节点的真实性。
2)由于物联网设备到管理中心节点的查询不是区块链上的操作,所以可以获得明显的性能益处。但也因此区块链失去了验证管理中心节点正确实施哪些访问控制规则的能力。对于关键访问控制系统,区块链可能会强制管理中心节点使用交易而不是查询。此解决方案会导致性能下降,但在某些特定情况下可能会提高系统的安全性。
3)网络中最近的管理中心节点的发现应该是可靠的,管理器和管理中心节点发现智能合同的地址也应该是可靠的。可以从代理节点查询该信息,也可以私密地将其存储在可信网络可访问存储上。
4)一旦物联网设备首次在系统中注册,区块链中的恶意管理器就可以声称对该设备进行控制。但是,在区块链中接受操作之前,IoT设备应对管理器进行验证。否则,任何管理器都可以注册控制任何设备。当恶意IoT设备冒充其他设备时,可能会发生类似的威胁。在这种情况下,设备之间的通信是通过DTLS完成的,这可以防止欺骗以及窃听和篡改。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值