黄苗,徐庭锐,刘洋廷,张媛媛
(1.四川大学计算机学院,成都610065;2.四川虹微技术有限公司,成都610000)
物联网与人类的生产、生活越来越密不可分,其普遍具有大规模、设备资源有限、异构等特点。特别是在工业领域,为了发掘异地、异构、异主的数据所蕴含的巨大价值,需要为数据提供联通的平台和访问的接口。而保证数据的安全和隐私是当前物联网面临的两大挑战。访问控制是通过监控访问记录,制定访问权限和规则,访问权限的授予和取消等决策实现信息开放并且保证数据安全性的一种重要技术手段。传统上多采用基于中心权威机构的访问控制方案,但这种方案会造成服务器性能瓶颈和遭受单点故障。智能合约基于去中心化的区块链网络,可事先定义一组状态和规则,并在满足规则后强制自动执行的计算机代码。以太坊创建之初便是以提供一个可编程的区块链应用平台,这也是其与比特币最主要的区别。随着以太坊智能合约的发展和成熟,新的访问控制方案也多基于以太坊智能合约进行对方案进行实现和验证。
访问控制的目的在于避免非授权用户访问操作权限受限的资源或者授权用户执行非权限范围内的操作。访问控制涉及的基本概念包括主体(subject)、客体(object)、操作(operation)、环境(condition)。主体即请求访问资源以执行某种操作的用户。客体即主体请求访问的资源,包括文件、应用、服务器、API 等。操作指的是主体想对客体执行的动作,常见的操作包括读、写、执行、修改、复制、删除等。环境指每一次访问请求的上下文信息,例如访问的时间、地点、通信协议、通信加密方式等。新型的去中心化的访问控制方案分为下面对本文介绍的研究工作涉及到的两个经典访问控制模型进行简单的介绍。
(1)基于属性的访问控制(Attribute-Based Access Control,ABAC)
也称为基于规则的访问控制(Policy-Based Access Control,PBAC),基于这种模型的访问控制方案由主体、客体、操作和环境的属性集确定主体对资源的访问权限。其中主体的属性包括ID、角色、组别、部门、级别、组织或公司等。客体的属性包括创建时间、资源拥有者、资源密级、资源类型等。这种模型支持使用自然语言描述访问规则,例如,工厂车间管理员可以读取生产设备数据。如果需要修改访问权限,只需要修改相关属性值。具备灵活、可扩展等优点,适用于物联网大规模应用场景。
(2)基于权能的访问控制(Capability-Based Access Control,CapBAC)
权能实质是一个访问主体持有的其可访问的客体及对应授权操作的数据结构,可以类比为令牌、门票、钥匙。这种权能凭证(capability token)的一个重要特性是可转移(transferable)以及可代理(delegable),无需通过中心实体的认证,即一个主体的访问权能可由一个主体自由转移或授予另一个主体。基于权能的访问控制方法需要保证权能不可被篡改,否则可能对访问客体进行未授权操作,危害客体信息安全。保证凭证不被篡改的方式主要有两种,一是将保存权能的数据结构保存在安全的位置,二是加密校验和(例如数字签名)。另外,凭证也存在被复制的风险。
在比特币最初由中本聪提出于2008 年提出,并于2009 年开发实现,而区块链则是比特币的底层技术。区块链(Blockchain)是一种不依赖中心权威机构的由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术[1]。所谓区块实际上是包含特定字段的文字记录。每个区块间通过指向前一个区块的散列值串联成一个链条。每个加入区块链网络的节点都拥有一条完整的区块链,参与即区块链中的数据记录对所有节点公开。区块链使用共识机制对在差不多时间内的发生的事务(即一条文字记录,transaction)进行共识,从而保证在不同节点的数据一致性。
以太坊的概念最初由Vitalik Buterin 于2013 年提出,该平台有类似比特币的数字货币以太(ether),但其最重要的技术贡献在于支持存储在区块链上的智能合约的开发。智能合约是一种可自动执行的计算机程序,即函数和状态的集合。因区块链的不可篡改特性,智能合约一旦部署在区块链网络中便很难篡改,事务参与者可事先约定一定的规则和操作,智能合约可在满足规则后强制执行预定操作并发送相应事务。基于以太坊完善的生态环境和用户广泛的接受度,近几年基于区块链的访问控制研究主要基于以太坊智能合约进行实验验证,因此本文调研了今年来影响力较大的基于以太坊智能合约的访问控制机制。基于区块链的访问控制方案具有不依赖第三方中心实体、可自主决策、资源拥有者可保持其资源所有权等优点。
文献[2]基于该作者之前的工作提出了一种访问控制参考模型并设想并实现了一种新型访问控制方案FairAccess。该方案基于访问凭证引入了包括授予、获取、代理和撤销凭证四种事务类型。但是基于区块链的事务机制也使得该方案不能满足对实时性有要求的应用场景,以比特币的工作量共识机制为例,一条事务大概需要十分钟的确认时间。
文献[3]提出一种基于区块链的和CapBAC 模型的访问控制方案BlendCAC。该方案提出一种支持多级凭证代理模型,探索了代理授权和撤回机制。同时基于智能合约提出了一种凭证生命周期管理策略,即实现了访问控制凭证的生成、传递和撤销函数。该方案的多级代理路径呈树形,同时其访问凭证以主体为单位表示。
文献[4]提出一种包含访问控制合约(Access Control Contract,ACC),决策合约(Judge Contract,JC),注册合约(Register Contract,RC)的访问控制框架。其中每一个访问控制合约都为一个主客体对提供一个访问控制接口函数,该函数可实现基于预定义访问策略的静态访问权限验证以及通过检测主体行为实现动态访问权限验证。JC 通过分析来自ACC 的异常行为报告生成判罚,辅助ACC 的动态访问权限验证。注册合约用于注册访问控制和异常行为判罚函数及其智能合约的信息以及这些函数的生命周期(注册、更新以及销毁)函数。但该方案不具备访问代理功能,不适合对灵活性要求较高的场景。
文献[5]是文献[3]的改进方案。不同于文献[3]以主体为单位创建机能凭证(capability token),该方案以访问操作为单位,以图的形式表示代理路径,实现了更加细粒度且灵活的凭证代理机制。除了凭证代理函数,该方案还实现了如凭证创建、撤销和验证的基于权能的访问控制的主要函数。但该方案中,凭证明文存储于区块链中且未对凭证进行加密,存在严重的安全隐患。
文献[6]提出了一种结合区块链的新的分布式架构,该架构包含无线传感网、管理员、代理节点、智能合约、区块链网络、管理中心节点六部分。考虑到大多数物联网设备资源有限的特性,该架构引入区块链网络以外(加入区块链的节点都拥有一份完整的数据拷贝)的管理中心节点作为无线传感网和区块链网络的中间节点。该方案的区块链网络共享一个不可删除的智能合约,该合约定义了所有允许的操作。该方案有轻量(无须修改物联网设备)、可扩展性强、透明(隐藏了物联网设备地址)、可并发修改访问规则等优点,但因规则的创建、撤销等操作都基于区块链的事务,无法满足实时要求较高的场景。
访问控制是物联网场景下对数据开放同时保护数据安全和隐私的一种重要技术。近几年的研究重心在于如何应对传统集中式访问控制的性能和安全问题。区块链作为支撑区块链的基础设施经过了时间的检验,越来越多的科研工作者开始探索使用区块链技术实现去中心化的应用。本文首先对访问控制作了基本概述,然后对区块链和智能合约作了简单的介绍,最后对于最新的五篇基于智能合约的访问控制方案的工作作了进行粗略的介绍和分析。