Attribute-Based Access Control

警告
本文最后更新于 2020-04-24,文中内容可能已过时。

V. C. Hu, D. R. Kuhn, and D. F. Ferraiolo, “Attribute-Based Access Control,” Computer, vol. 48, no. 2, pp. 85–88, Feb. 2015, doi: 10.1109/MC.2015.33.

1. 引言

传统的访问控制基于用户身份(分配给该用户的角色或组),这种方式在管理上非常繁琐,策略的表达能力也不足。一种解决办法是基于用户和对象属性以及环境条件来授予或拒绝用户请求,这种方法称为基于属性的访问控制(Attribute-based access control,ABAC)。

2. ABAC 模型介绍

ABAC 是一个逻辑访问控制模型,它通过对实体(主体subject对象object)、操作、与请求相关的环境这三类属性定义评估规则来控制对对象的访问。由于它在决策逻辑中加入了更多的输入变量,提供了更大的可能性,使得策略规则的表示更加明确和详细。

使用 ABAC 使得我们无需针对每个主体和对象创建访问规则集。例如,南希·史密斯是心脏科的一名护士,我们将她作为主体,并且在她受雇时为她分配一组主体属性,将心脏病患者的病历文件夹作为对象,在文件夹被创建时分配一组对象属性,对象属性由创建者直接赋予或从自动扫描工具接收。管理者或者对象所有者可以利用主体和对象的这些属性创建一组访问控制规则,比如心脏科的护士被允许查看心脏病患者的病例文件夹,从而控制访问请求。

在 ABAC 模型中,只需要更改属性值即可影响最后的访问结果,而无需维护定义在主体和对象之上的规则集,这种方法提供了更加动态的访问控制管理能力。此外,ABAC 还允许管理员或对象所有者在事先不知道访问主体的情况下定义访问控制策略,也能够应对无限数量主体的访问请求。当新的主体加入组织时,也无需修改访问规则和对象属性,只需要为新加入的主体分配合适的主体属性即可,比如新入职的心脏科护士被分配部门为心脏科的属性。这种针对未知主体的适应性是 ABAC 的主要好处之一。

由于 ABAC 高度的灵活性,已经引起了整个行业甚至政府的兴趣,并且是当今发展最快的访问控制模型。但是除了为主体、对象和环境设置属性这一基本思路外,ABAC 模型的实现并没有统一的标准。

3. 企业环境下的实现

由于缺乏对 ABAC 特性的共识,用户无法准确评估与该模型相关的好处和挑战。为了解决这个问题,国家标准与技术研究所(NIST)发布了《Guide to Attribute Based Access Control (ABAC) Definition and Considerations》1。这个文档有两个作用,首先,它提供了 ABAC 的定义和功能组件的描述。其次,它描述了在企业中使用 ABAC 控制信息的计划、设计、实现和操作考虑。这本指南的重点是 ABAC 的实现,而不是成本和效率的权衡。

当跨企业部署 ABAC 用以增加不同组织之间的信息共享时,其实现可能会变得更加复杂,需要一个属性管理的基础设施、机器可执行的策略以及一系列支持访问决策和策略执行的功能。如下图所示,除了基本的策略、属性和访问控制机制要求外,企业还必须支持企业策略开发和分发、企业身份和主体属性、主体属性共享、企业对象属性、身份验证等管理功能,以及访问控制机制的部署和分发。启用这些功能需要仔细考虑影响企业 ABAC 解决方案设计、安全性和互操作性的许多因素,上面提到的指南可以帮助 ABAC 系统规划者、架构师、管理者和实现者来分阶段完成这些功能。

4. Attribute Assurance

ABAC 属性的元数据定义对属性标准化非常重要,通常,属性元数据可分为三类:

  • 准确性为在语义和句法上正确使用这些属性和环境条件奠定了基础,并且确保了属性是可信的
  • 完整性考虑用于在系统之间安全共享属性的不同标准和协议,以避免损害属性的完整性和机密性,或暴露属性提供者(AP)或依赖方(RP)系统或实体中的漏洞
  • 可用性确保属性的更新和检索支持 RP。此外,必须考虑属性存储库的故障转移和备份功能。请注意,某些属性可能会定期或随时间变化

AP 是提供主体、对象(或资源)或环境条件属性的任何人或系统,可以是原始的权威源,也可以从权威源接收信息,然后重新打包、存储和转发到 ABAC 系统。属性值可以是人工生成的(例如,员工数据库)或从公式(例如,信用评分)派生的。无论属性来源如何,系统都应确保从 AP 接收到的属性值与适用的主体、对象或环境条件准确关联。下表说明了基于准确性、完整性和可用性三个维度的属性保证的级别(Levels of attribute assurance, LOAA)的示例

5. 总结与收获

基于属性的访问控制是一种灵活的访问控制方法,它只受计算语言和可用属性丰富性的限制。这种灵活性使最大范围的主体能够访问最大范围的对象,而无需指定每个主体和每个对象之间的关系,使ABAC成为许多分布式或快速变化的环境的理想选择。更多关于保证属性准确性和可靠性的工作可以查看 http://csrc.nist.gov/projects/abac/index.html

了解了 ABAC 的主要优点,了解了 ABAC 在企业环境实现需要考虑很多的问题,实现比较复杂。不过最大的收获是知道了实现 ABAC 可以查看文章提到的指南。最后一部分 Attribute Assurance 没有看懂,似乎是属性定义需要满足的几个特性。


  1. V.C. Hu et al., Guide to Attribute Based Access Control (ABAC) Definition and Considerations, Nat’l Institute of Standards and Technology, Jan. 2014, [online] Available: http://nvlpubs.nist.gov/nistpubs/specialpublications/NIST.sp.800-162.pdf↩︎

支付宝
微信
0%