基于区块链和智能合约的物联网访问控制架构
2021-03-15马嘉杰沈海波陈升卢宇忠黄良振
马嘉杰 沈海波 陈升 卢宇忠 黄良振
摘要:为解决传统的中心化的物联网(Internet of Things,IoT)访问控制解决方案中存在的单点失效、规模受限等安全问题,基于以太坊区块链和智能合约技术,采用中心化与去中心化相结合的方法,提出了一个面向IoT的访问控制架构。该架构中设计了多个访问控制合约、一个设备管理合约、一个管理员管理合约等多种合约,来实现去中心化的和可信的访问控制功能;利用访问控制列表机制来表示资源访问策略,利用智能合约来实现基于策略的授权决策。该架构将IoT访问控制过程分为智能合约注册、IoT设备和管理员注册、IoT设备访问策略的制定和资源访问授权决策四个阶段。最后,还对架构的安全和性能进行了分析。
关键词:物联网; 区块链; 智能合约; 访问控制; 以太坊
中图分类号:TP309.2 文献标识码:A
文章编号:1009-3044(2021)03-0071-04
Abstract:To solve the security problems such as the single point of failure, limited scalability that existed in the traditional and centralized access control schemes for the Internet of Things (IoT), an Ethereum blockchain and smart contract based access control framework is proposed in this paper by introducing a centralized-decentralized combined architecture. To achieve decentralized and trustworthy access control for IoT systems in the proposed framework, multiple access control contracts(ACCs), one device management contract(DMC), one manager management contract(MMC) are designed, the mechanism of access control list to represent the access policy of resources is adopted, and the smart contracts are used to make authorization decisions based on predefined polices. This framework consists of four different phases including registering smart contracts, registering managers and IoT devices, defining the access polices for resources and making authorization decisions to resources access. In the end, the security and performance of the proposed framework are analyzed.
Key words:Internet of Things(IoT); blockchain; smart contract; access control; Ethereum
1 引言
由于通信技术、网络技术的快速发展和智能设备的广泛应用,导致物联网(Internet of Things,IoT)技术受到研究机构、政府、企业的更大关注[1]。在典型的物联网应用中,大量的IoT设备通过物联网网关构成簇,这些簇通过P2P (Peer-to-Peer)网络,与其他簇、用户设备、存储设备、应用服务器相连接,它们收集、处理和共享数据,提供各种资源(如数据、服务、存储空间、计算单元等)服务。这些端(Peer)都拥有相应的资源供其他端访问使用,因此需要相应的访问控制机制来阻止未授权的资源访问,同时保护那些敏感的隐私数据。例如,IoT设备需要能够拒绝抽取其数据或控制其执行器的未授权访问请求。但大多数传统的IoT访问控制系统通常采用中心化的客户端(IoT设备)-服务器模式,用户或IoT设备需要通过服务器(可信第三方)与IoT设备交互,访问IoT设备中的数据或控制IoT设备的执行器,授权验证工作则由中心服务器来完成。一旦中心服务器遭到攻击,容易造成系统单点失效。同时,这些大量异构的、分散的、资源受限的IoT设备的规模化管理,也是IoT系统应用面临的一大问题[2]。因此需要新的访问控制模式,来为IoT提供分布式的、去中心化的、可信的访问控制机制。区块链(BlockChain,简称BC)和智能合约技术给我们带来了希望[3-4]。
BlockChain是由区块数据按产生、验证和加入的时序而构成的链式数据结构,开始是作为密码数字货币系统中一种分布式的和不可篡改交易存储账本,主要保存交易数据,具有去中心化、不可篡改、可追溯、多方共同维护的特点[5]。但智能合约(Smart Contract,SC)的发明,使BlockChain进化成了一个能够开发分布式的、可信应用的平台,特别适用于IoT这种P2P分布式网络中[6]。许多研究者对如何将区块链和智能合约技术应用于IoT环境的访问控制和安全管理中,进行了探究[7-11]。文献[7]和文献[8]中的解决方案主要利用区块链来存储访问控制策略,并没有使用智能合约,从而不能充分利用区块链的计算能力,也存在存储空间限制和隐私等问题;尽管文献[9]中提出了使用智能合约,但他们的架构是基于Bitcoin区块链,也难以发挥区块链和智能合约的计算效能。文献[10]中提出了将ABAC(Attribute Based Access Control)方法与区块链技术结合,來实现对IoT 的访问控制,也提出了利用智能合约进行授权决策,但没有详细说明智能合约的设计与实现。文献[11]中比较详细地提出了一种利用区块链和智能合约来解决IoT 访问控制的方案,但整个系统只设计了一个智能合约,不符合智能合约使用的原则[12],也没有说明访问策略的设计方案。
本文根据IoT和Ethereum区块链[13]的特点,通过创建介于IoT设备与区块链网络之间的Gateway这一构件来中心化管理IoT设备,并充分利用区块链的去中心化能力和智能合约的计算能力,通过中心化与去中心化相结合的方法,提出了一个面向IoT的访问控制架构。该架构将IoT访问控制过程分为智能合约注册、IoT设备注册、IoT设备访问策略的制定和资源授权访问四个阶段;并设计了访问控制合约(Access Control Contract,ACC)、设备管理合约(Device Management Contract,DMC)、管理员管理合约(Manager Management Contract,MMC)等多种合约,来实现相应的功能,提高系统的执行效率。该架构利用访问控制列表机制来表示资源访问策略,并利用智能合约来实现基于策略的授权决策。
2 系统架构与工作流程
本节将详细说明我们提出的面向IoT的基于区块链和智能合约的系统设计和系统的工作流程。
2.1 系统架构
本文提出的面向IoT的基于以太坊区块链和智能合约的访问控制架构如图1所示。
架构共包括如下七类不同构件: Private Networks(专有网络)、Domain Managers(专有网络域管理者)、Gateways(网关)、Blockchain Network(区块链网络)、Contract Creator(合约创建者)、Smart Contracts(智能合约)、User Device(用户设备)。其中各构件的主要功能说明如下:
(1)Private Network。一个专用网络是一个网络管理域,通常是无线传感器网络,由许多资源受限的IoT Device (IoT設备)构成,IoT设备之间通过Bluetooth、Wi-Fi、Zigbee等方式互联并交互。IoT设备既可以充当资源请求者,也可以充当被访问的资源。这些IoT设备之间采用基于DTLS[14]的CoAP[15]协议进行通信。
(2)Gateways。由于大多数IoT设备的资源受限性(存储空间、电池容量、计算能力等都有限),不能存储区块链信息和验证区块链交易,需要采用基于网关的设计模式[12]。因此本架构中规定IoT设备不属于区块链,代之每个专用网络专门构建了一个IoT网关构件,用于代表IoT设备与区块链网络之间传递访问控制信息,IoT设备只能通过IoT网关请求访问控制信息。IoT网关直接与区块链网络节点--Miner(矿工)连接,它将IoT设备的产生的CoAP访问请求消息转化为区块链网络节点能够理解的RPC格式的消息,并以Call方式(直接调用合约中的相关函数)可免费从区块链网络获取访问控制信息。Gateways 的引进,可使得IoT设备易于连接到网络中,解决IoT的规模性问题。
(3)Domain Managers。一个网络域管理者可管理一个或多个专用网络中的IoT设备,负责这些IoT设备的设置和注册、资源访问控制策略的制定,也可以查询区块链。一个IoT设备至少要注册到一个网络域管理者,也可以注册到多个网络域管理者。
(4)Contract Creator。以太坊区块链中,需要使用图灵完备的专用语言Solidity[16]来开发。考虑到智能合约存储于区块链中,合约代码的功能对区块链质量有至关重要的影响。因此,本架构中专门设计了一个唯一的角色—合约创建者,负责区块链网络中所有智能合约的开发和注册、合约地址列表的维护。合约创建者可以是Web服务器中的一个应用,也可以是区块链网络的一个独立节点,使得智能合约的创建过程可以自动化。合约创建者需要将Solidity代码转换成EVM(Ethereum Virtual Machine)能够执行的二进制代码。
(5)Smart Contracts。智能合约是一个拥有相关代码(包括可实现某些具体功能的多个函数)和数据的特殊账户。一个智能合约被创建并注册后,就有了地址;通过向智能合约的地址发送区块链交易,可触发智能合约的执行,从而实现设计的相关功能。本架构中设计了多个访问控制合约、一个设备管理合约、一个管理员管理合约,来实现分布式的和可信的访问控制功能。
(6)Blockchain Network。区块链网络由区块链网络节点--Miner(矿工)及 Blockchain构成,智能合约存储在区块链中。一个旷工节点可以利用区块链中的智能合约来存储和访问设备的访问控制策略。我们采用私有区块链网络,主要是为了能定制负责授权决策的Miner节点。
(7)User Device。用户设备是用户的代理,用户可使用用户设备(如智能电话、平板电脑等)通过区块链网络访问IoT设备中的资源。
2.2 工作流程
访问控制架构中各构件之间的交互过程如图2所示。访问控制系统工作流程可分为如下四个主要阶段:
(1)定义并注册智能合约阶段。Contract Creator通过交易,将Smart Contracts注册到区块链网络中。一旦智能合约注册到区块链网络,Contract Creator就可接收到智能合约的地址,并负责智能合约地址列表的维护。区块链网络中的其他构件需要利用此地址来调用相应的智能合约,实现合约中提供的功能。
(2)设置并注册IoT设备阶段。Domain Manager通过交易,将其管理的IoT Devices注册到区块链网络中。一旦IoT设备注册到区块链网络,Domain Manager就可接收到IoT设备的地址,并负责IoT设备地址列表的维护。IoT设备地址用于标识IoT设备,其他IoT设备或其他构件通过此地址来访问该IoT设备。一个IoT设备的地址通常用其公钥的HASH值来表示,其注册地址在不同Domain Manager中是唯一的。
(3)访问策略定义并注册阶段。Domain Manager通过交易,定义其管理的IoT设备的访问控制策略并注册到区块链网络中。一旦注册完成,IoT设备的访问控制策略列表存储到区块链中,由ACCs负责维护。资源请求者可查询IoT设备的访问策略。
(4)资源访问和授权决策阶段。假定一个客户端C(可以是另一个IoT设备D2或用户设备),希望访问IoT设备D1中的资源R1,主要过程为:(a)D2首先向D1发送一个请求资源R1的CoAP消息;(b)C向其Gateway发送一个获取D2访问控制信息的访问请求;(c) Gateway将访问请求消息转换为RPC消息格式后,前传给与其直接连接的Miner;(d) Miner向R1对应的访问控制合约ACC发送授权请求交易;(e) ACC执行,进行策略检查,并向Miner返回策略決策结果(Allow/Deny);(f) 策略决策结果经Gateway返回给D1;(g)D1根据策略决策结果,决定是否允许C的资源访问请求;如果策略决策结果是Allow,则给予C请求的资源;如果策略决策结果是Deny,则拒绝请求。
3 访问策略和智能合约设计
本文提出的访问控制系统是利用智能合约实现基于策略的访问控制机制,因此资源访问策略和智能合约的设计就显得尤其重要,本节说明我们的访问策略和智能合约的设计方案。
3.1 访问策略设计
访问控制系统是根据资源的访问策略来进行授权决策的,访问策略由若干访问规则构成,每条规则规定了哪个客户端对哪个IoT设备在约定的时间内是否能进行指定的操作,如“设备D1能读取设备D2中的数据两个小时”。本文利用访问控制列表机制来设计访问策略,策略列表样例如表1所示,其中每一行用一个(请求者,资源,操作)即(主体,客体,操作)三元组来表示一个访问策略。
上述访问策略列表中,Requester是指请求访问资源的客户端C,用其地址标识;Resource是指被访问的某IoT设备上的资源,用其地址标识;Action是指请求者对请求资源的操作方式,如read、write等;Permission是指对资源进行某种操作的许可权限,有allow和deny两种取值;ToLR(Time of Last Access)是指请求者的最近的访问请求的时间,利用它和系统当前时间可决定访问时间长度。访问策略列表由访问控制合约ACC维护和查询使用。当请求者请求对某资源进行某种操作时,相应的ACC通过查询维护的访问策略列表,即可确定是否许可请求的操作,并返回授权决策结果。
3.2 智能合约设计
不像文献[11]中只设计一个智能合约,使得它过于复杂影响执行效率,我们的访问控制系统共设计了访问控制合约、设备管理合约、管理员管理合约等三种智能合约。访问控制合约完成资源访问策略的注册、管理(策略更新、删除)和授权决策功能;设备管理合约完成IoT设备的注册和管理;管理员管理合约完成网络管理员的注册和移除。
(1)访问控制合约ACCs
一个ACC实现某一个客户端对某个设备(即一个“主体-客体-操作”三元组)的访问请求的授权决策,它通过检查预先定义的访问策略,判断客户端的访问请求是否被许可。因此,访问控制合约是一个合约集。由于ACCs的执行结果会被区块链中所有Miner节点验证,确保了访问控制的可信性。每个ACC提供如下函数来实现策略管理和访问控制授权决策。
?policyAdd():注册访问策略,接收新访问策略的信息并将信息添加到策略列表
?policyUpdate():更新访问策略,接收需要更新的策略的信息,并更新该策略
?policyDelete():删除访问策略,接收需要删除的策略的信息,并从策略列表中删除该策略
?accessControl():授权决策函数,接收访问授权请求信息,根据预先定义的访问策略进行授权决策,并返回决策结果。
(2)管理员管理合约MMC
MMC合约提供如下函数来实现网络域管理员的注册和管理。
?managerAdd():注册管理员,接收新管理员的信息并将信息添加到管理员列表
?managerDelete():删除管理员,接收需要删除的管理员的信息并从管理员列表中删除该管理员
(3)设备管理合约DMC
DMC提供如下函数来实现设备注册和管理。
?deviceAdd():注册IoT设备,接收新IoT设备的信息并将信息添加到设备列表
?deviceRemove():移除IoT设备,接收需要删除的IoT设备的信息并从IoT设备列表中删除该IoT设备
?addManagertoDevice():将指定设备注册到指定管理员名下
?removeManagerfromDevice():将指定设备从指定管理员名下删除。
4 安全和性能分析
考虑到大多数IoT设备的资源受限性和保证IoT应用的规模性,我们提出的基于区块链和智能合约的访问控制系统,将IoT设备排除在区块链之外,特别设计了一个Gateway构件来作为IoT设备与区块链的中介,这样IoT设备可借助Gateway与区块链交互,发送资源访问请求或从区块链获取访问控制授权决策结果。这种设计也带来如下两个需要考虑的问题:
(1)IoT设备是否许可客户端的访问请求,完全依赖于Gateway传递过来的授权决策结果。如果Gateway是恶意的,则会带来安全问题。恶意的Gateway可以篡改授权决策结果或假冒IoT设备进行未授权操作。考虑到IoT设备和Gateway一般位于同一个管理域,可以在IoT设备和Gateway之间建立共享密钥,实现相互认证从而建立信任关系。或者通过互换公钥,对发送的消息进行签名验证,都可以较好地解决这个安全问题。
(2)在我们提出的访问控制架构中,Gateway是通过查询而不是交易方式,从区块链网络(与其直接连接的Miner处)获取访问控制授权决策结果,这既不需要交易费用,也可实时向IoT设备传递授权决策结果,但也因此让区块链失去了验证哪些访问控制规则是否被Gateway正确地执行的能力,因为这些信息通常局部存储在IoT设备所在的管理域中而不是存储在区块链中。由于IoT设备的动态移动性,可能造成很难审计和追踪这些信息。因此,某些访问控制系统希望Gateway是用交易而不是查询方式与区块链交互(这样相关信息可永久存储于区块链),这增强了安全性,但也可能失去了执行效率和增加了交易费用。在具体的应用场景需要具体权衡。
5 结语
区块链和智能合约技术在物联网领域的应用,越来越受到各国政府、学术界和工业界的重视。本文探讨了区块链技术和智能合约在IoT应用环境中对大量资源受限IoT设备的访问控制,提出了一个基于区块链的资源访问控制架构,并且详细说明了智能合约和访问策略的设计。由于Gateway的引进,可使得资源受限的IoT设备非常容易地加入区块链访问控制系统,能较好解决IoT的规模性问题。本文还对提出的访问控制系统的安全性和性能进行了分析。接下来的主要工作,一是继续优化设计方案,解决存在的局限性,特别是要设计合约管理合约,实现对智能合约的管理,如向智能合约中添加方法(函数)、更新或删除智能合约中的方法;二是针对智能家居的实际应用场景,进行概念模型的验证。
参考文献:
[1] Yaqoob I, Ahmed E, Hashem I A T, et.al. Internet of Things Architecture: Recent Advances, Taxonomy, Requirements, and Open Challenges[J]. IEEE Wireless Communication, 2017, 24(3):10-16.
[2] Choi S S, Burm J W, Sung W, et al. A Blockchain-based Secure IoT Control Scheme[C]//Proc of IEEE 2018 International Conference on Advances in Computing and Communication Engineering (ICACCE). Washington DC: IEEE Xplore, 2018:74-78.
[3] Khan M A, Salah K. IoT Security: Review, Blockchain Solutions, and open challenges[J]. Future Generation Computer Systems, 2018, 82(5):395-411.
[4] Reyna A, Martin C, Chen J, et al. On Blockchain and its Integration with IoT, Challenges and Opportunities[J]. Future Generation Computer Systems, 2018, 88(11):173-190.
[5] 邵奇峰,金澈清,張召,等. 区块链技术:架构及进展[J]. 计算机学报, 2017, 40(157): 1-21.
[6] Christidis K, Devetsiotis M. Blockchains and Smart Contracts for the Internet of Things[J]. IEEE Access: The Plethora of Research in Internet of Things (IoT), 2016, 4: 2292-2303.
[7] Maesa D D F, Mori P, Ricci L. Blockchain Based Access Control[C]//Proc of the IFIP International Conference on Distributed Applications & Interoperable Systems. Berlin: Springer-Verlag, 2017:206-220.
[8] Dorri A, Kanhere S S, Jurdak R, et al. Blockchain for IoT Security and Privacy: The Case Study of a Smart Home[C]//Proc of 2017 IEEE International Conference on Pervasive Computing and Communications Workshops. Washington DC: IEEE Xplore,2017:618-623.
[9] Ouaddah A, Elkalam A A, Abdellah A A. FairAccess: A New Blockchain-Based Access Control Framework for Internet of Things[J]. Security and Communication Networks, 2016, 9(18):5943-5964.
[10] Dukkipati C, Zhang Y P, Cheng L C. Decentralied, Blockchain Based Access Control Framework for the Heterogeneous Internet of Things[C]// Proc of the 3rd Workshop on Attribute Based Access Control. New York: ACM Presss, 2018:61-69.
[11] Novo O. Blockchain Meets IoT: An Architecture for Scalable Access Management in IoT[J]. IEEE Internet of Things Journal, 2018, 5(2):1184-1194.
[12] Fotiou N, George C.P. Smart Contract for the Internet of Things: Opportunities and Challenges[C]// Proc of the 2018 European Conference on Networks and Communications: Application Areas and Services. Washington DC: IEEE Xplore, 2018:256-260.
[13] Buterin V. Ethereum: A Next-Generation Cryptocurrency and Decentralized Application Platform. [EB/OL]. (2014-01-22) [2020-09-18]. https://genius.com/Ethereum-ethereum-whitepaper-annotated.
[14] Rescorla E, Modadugu N. Datagram Transport Layer Security (DTLS) Version 1.2 [EB/OL]. (2014-01-10) [2020-08-28]. https://www.rfc-editor.org/info/rfc6347.
[15] Shelby Z, Hartke K, Bormann C. Constrained Application Protocol (CoAP) [EB/OL]. (2014-06-12) [2020-08-28]. https://www.rfc-editor.org/info/rfc7252.
[16] Solidity—A Contract-oriented, High-level Language for Implementing Smart Contract. (2016-01-01) [2020-09-18]. https://solidity.readthedocs.io/en/develop.
【通聯编辑:代影】