用于定义可访问访问控制系统的基于区块链的方法
摘要
-
本文提出利用区块链技术来定义访问控制系统,以保证访问控制策略评估的可审计性。
我们提议的关键思想是将基于属性的访问控制策略编码为智能合约并将其部署到区块链上,从而将策略评估过程转换为完全分布式的智能合约执行。不仅政策,而且重估所需的属性都由部署在区块链上的智能合约管理。可审计性属性来源于区块链技术的不变性和透明性。
-
本文不仅对所提出的访问控制系统进行了总体介绍,而且还将其应用到了一个创新的参考场景中,即需要保护的资源本身就是智能合约。
-
为了证明我们方法的可行性,我们提出了一个利用XACML策略和部署在以太坊区块链上的可靠书面智能合约的参考实施方案。
-
最后,我们通过一组实验结果来评估系统的性能,并讨论我们的建议的优缺点。
关键词:区块链, 智能合约, 以太坊, 访问控制, XACML
论文成果
引言
资源需要通过适当的安全机制(如访问控制系统)进行保护。系统控制访问尝试,以便仅向在特定访问上下文中实际拥有相应权限的主体授予访问权限。
一种解决方案是资源所有者的解决方案是在其场所部署和运行自己的访问控制系统。
另一种解决方案是将访问控制功能外包给受信任的第三方提供的外部系统(例如,作为服务)。例如,在过去几年中,一些按照软件即服务(SaaS)模式作为云服务实现的访问控制系统被提出,如OpenPMF SCaaS、ACaaS等。
Amazon向Amazon Web Services(AWS)的用户提供了一种称为身份和访问管理(IAM)的访问控制服务。IAM允许Amazon用户通过创建和管理其用户和组,通过定义允许或禁止访问其资源的适当权限来管理对其AWS服务和资源的访问。
本文提出了一个基于区块链技术的通用属性访问控制系统的设计、实现和验证。该系统遵循了XACMLstandard定义的参考体系结构,其创新之处在于,大部分体系结构组件都是以智能合约的形式实现的,这些合约在(基于智能合约的)区块链上部署、存储和执行。我们的方法背后的关键思想是将访问控制策略的可执行智能合约编码并通过区块链进行管理,从而获得分散的自我评估策略,智能合约准入监管。将要保护的资源(即,智能合约)和保护它的系统都部署在同一个区块链上,将缓解通过采用我们建议的其他应用场景而可能出现的许多问题。我们的方法在将访问控制过程外包给第三方方面显示了一些相关的优势
在[4,5]中已经初步提出了利用区块链技术进行访问控制的想法,其中我们扩展了比特币协议,以表示,存储和检索声明用户对资源的权利的策略,并允许在其中转让此类权利。 用户,而策略评估过程则由传统的访问控制系统执行。 相反,在[6]中,我们通过利用智能合约功能在区块链上移动访问控制系统的主要功能(即策略评估过程),增强了[4]中提出的方法。 我们验证了我们的提案,该提案提出了基于XACML标准和以太坊协议[7]的初步实现,这是由于其对智能合约的原生支持。
已有工作
- 扩展了比特币协议,以表示、存储和检索声明用户对资源的权限的策略,并允许此类权限的转移。
- 通过利用智能合约功能在区块链上移动访问控制系统的主要功能(即策略评估过程)。
- 验证了我们的提案,该提案提出了基于XACML标准和以太坊协议的初步实现,这是由于其对智能合约的原生支持。
本文工作
- 为了定义一个通用的基于区块链的体系结构,对该方法进行了推广。对如何利用区块链技术来实现访问控制系统组件的描述已经大大扩展
- 介绍了一个新的应用场景,其中要保护的资源是智能合约,作为参考示例。我们详细描述了在这种情况下如何应用所提出的方法,提供了一个参考实现;
- 实验部分已经大大扩展,主要是为了更好地测量性能。为此,提出了一系列全新的实验。为了加强实验结果,实验不仅在一个学术测试网上进行,而且在一个更现实的环境中进行,一个真实的官方测试网,叫做Ropsten[8],实际上是我们实验环境的两倍。
论文结构
- 首先向读者提供区块链技术和智能合约以及访问控制系统所需的背景,特别是第2节中的XACML标准。
- 在第3节“应用场景”中展示了我们用作验证我们的建议的参考示例的场景。
- 第4节介绍了我们提议实施基于区块链技术的访问控制系统的总体思路的主要概念。
- 在第5节中,我们将详细解释所提出的访问控制系统可以在第3节介绍的参考实例中采用,并给出了一个工作参考实现。
- 在第6节中,我们对我们的建议提出了一些意见。
- 在第7节中,我们给出了大量的实验结果。
- 第8节提出了我们的结论和未来的工作。
重点笔记
本文关键思想:将访问控制策略的可执行智能合约编码并通过区块链进行管理,从而获得分散的自我评估策略,智能合约准入监管。将要保护的资源(即,智能合约)和保护它的系统都部署在同一个区块链上
相关知识
可扩展访问控制标记语言(XACML)
典型的访问控制和授权场景包括三个主要实体: 主体、 资源和 动作以及它们的属性。主体请求得到对资源执行动作的权限。比如,访问请求“允许财务经理在财务服务器上的发票文件夹中创建文件”中,主体是“财务经理”,目标资源是“财务服务器上的发票文件夹”,动作是“创建文件”。
在专有访问控制系统中,这些实体及其属性的信息保存在资料库中。这种资料库称为访问控制链表(ACL)。不同的专有系统有不同的实现 ACL 的机制,因此难以交换和共享信息。
某一主体请求访问目标资源,策略执行点(PEP)在决定将目标资源发布给主体之前,要使用策略决策点(PDP)进行检查。XACML 解决了 PEP 与 PDP 之间的策略决策交换问题。
XACML 的初衷是开发一项访问控制和授权系统的标准。目前多数系统都以专有的方式实现访问控制和授权。
XACML 主要将解决以下问题:
- 创建一种可移植的、标准的方式来描述访问控制实体及其属性。
- 提供一种机制,以比简单地拒绝访问或授权访问更细粒度的控制访问,也就是说,在“允许”或“拒绝”之前或之后执行某些操作。
授权请求到达 策略执行点(PEP)。PEP 创建一个 XACML 请求并发送到 策略决策点(PDP),后者评估请求并返回一个响应。该响应可以是允许访问的,也可以是拒绝访问的,并具有适当的义务。本文稍后部分将解释这些义务。
PDP 评估请求中的相关策略和规则后会作出决策。可以应用的策略有多种,PDP 并没有评估所有的策略,而是根据策略目标选择相关的策略进行评估。策略目标包括关于主体、动作和其他环境属性的信息。后面的 策略目标创建一节中将说明 PDP 选择评估策略的完整过程。
为了获得策略,PDP 要用到 策略访问点(PAP),PAP 编写策略和策略集,供 PDP 使用。PDP 也可以调用 策略信息点(PIP)服务检索与主体、资源或者环境有关的属性值。PDP 作出的授权决策被发送到 PEP。PEP 履行义务,并根据 PDP 发送的授权决策允许或拒绝访问。