NIST RBAC 模型 —— 向统一标准化的努力
原文名称:The NIST Model for Role-Based Access Control Towards A Unified Standard
摘要
本文描述了一个RBAC(基于角色的访问控制)的统一模型。RBAC是一个已被证实可用于大规模授权控制应用的技术。但是,由于迄今RBAC还没有一个标准模型,对其使用和相关含义的确定造成很多不必要的混乱。NIST的模型就是希望通过整理过去的RBAC模型,已有的商业产品,以及研究原型中的思想,找出共同点,从而寻求解决目前这种混乱的情况。它致力于成为RBAC标准未来发展的基础。RBAC是一个内涵丰富且开放的技术,吸引着众多用户,研究人员和产品厂商去对它投入大量精力。NIST模型专注于RBAC已达成共识的方面,从功能上对其进行四个级别的划分:flat,hierarchical,constrained,symmetric。这四个级别是不断累积的,每一级别是在上一级别的基础上增加新的要求而成。文中也提到另一种做法:保持flat和hierarchical的级别关系,而将constrinats和symmetry作为额外特性[原文:An alternate approach comprising flag and hierarchical RBAC in an ordered sequence and two unordered features--constraints and symmetry--is also presented.]。本文还将列出NIST模型中不包含,但十分重要的其他RBAC特性。其中某些是由于业界没有达成共识,所以不适合写入此文档;其他则是在标准化之前还需要进行进一步的研究协商工作。
第1节 介绍
本文计划制定一个RBAC的标准参考模型。RBAC是一个既新而又有悠久历史的技术。虽然严格的RBAC模型最近才出现,其角色的基本概念已经作为控制权限的方法而使用了数十年。RBAC标准的缺失使得其出现了形形式式的实现,以致阻碍了RBAC的先进性的发挥。RBAC这个词本身没有一个广被认同的意义,而被不同产品厂商,用户以不同方式使用在不同的地方。本文目的就是建立这一领域的一个标准。
RBAC提供一个非常有用的抽象层次,以在业务企业级别而非个别用户级别去提升安全管理。角色基本概念很简单:根据企业里的功能角色进行权限分配,然后恰当的将一个或多个角色赋予用户。在RBAC中,访问控制是基于每个用户在企业内所拥有的角色。一个角色可以对应企业内的一种任务,职责,或者资格。相对用户信息和任务分配的频繁更改,企业内的角色是相对稳定的。因此RBAC可以提供一个强大的机制,以减少企业内分配用户权限过程中的复杂度,花销和犯错机会。由于企业内部的多个角色通常会拥有重复的权限,所以RBAC模型通常支持角色的层级结构,即一个角色可以继承另一个角色的所有权限。
RBAC支持各企业不同的安全策略,并集中到一个企业级的平台上[原文:RBAC allows for specification and enforcement of a variety of protection policies which can be tailored on an enterprise-by-enterprise basis.]。具体系统上的安全策略强化可以通过RBAC的配置来实现。这样的做法,对于访问控制和授权管理中传统的做法,如DAC和MAC(DAC和MAC中,安全策略是与访问控制模型紧密结合,不能更改的),是一个了不起的改变。由于权限管理是通过角色对企业功能进行组织,利益关系的冲突就更为明显了。因此很多RBAC模型支持角色间责任互斥的约束功能。这为管理员提供了比现有访问控制标准更为强大的功能去管理和增强企业策略。
由于客户对RBAC的需求,产品厂商都将RBAC的特性集成到他们的数据库,系统管理以及操作系统等产品中。这些开发都是在没有任何关于RBAC特性共识的情况下进行的。为了尝试严格定义RBAC的特性,出现了一系列RBAC模型及其实现(FK93,FCK95...)。这些模型都是各自为政,并没有就RBAC一些突出的特性进行标准化。因而RBAC依旧是一个不定型的概念。为了更好进一步开发和使用RBAC技术,需要订立标准。NIST的RBAC模型正是这一方向上的首次尝试。
RBAC是一个内涵丰富且开放概念,一定程度上很简单,也可以说很复杂。所以业界公认,以一个模型去概括RBAC是不现实。因为这样一来,该模型则需要包含或排除太多,和只能众多选择其中的一个。NIST的RBAC模型被组织为功能上不断增加的四个级别。这些级别是累加的,每一级别包含前一级别的要求。
1) Flat RBAC
2) Hierarchical RBAC
3) Constrained RBAC
4) Symmetric RBAC
本文以下内容织如下:第2节对NIST的RBAC模型以及其四个级别进行一个概述。第3节到第6节按顺序描述四个级别,以及对级别中包含的特性的基本原理进行说明。NIST模型专注于RBAC技术已达成共识的部分。第7节讨论NIST模型中没有包括但很重要的RBAC特性。其中某些是由于业界没有达成共识,所以不适合写入此文档;其他则是在标准化之前还需要进行进一步的研究协商工作。
第2节 概述
本节提供对NIST的RBAC模型进行一个概述,如表1中所示。对模型4个级别的基本原理也作了说明。熟悉RBAC概念和相关词汇的读者可以通过阅读本章大致了解这个模型。而对RBAC相对陌生的读者可以先跳过本节,等读完接下来几节中对模型中各级别的详细描述,再回过头来重新阅读第2节。
NIST的RBAC模型组织为四个级别,不断在功能上进行增强。这些级别是累积的,每个级别包含上一个级别的所有要求,并增加一项新的要求。以下将会描述各个级别的基础原理以及每个级别选择新增特性的考虑。更详细的描述会则在后面单独讨论各个级别的章节中。
2.1 Flat RBAC
Flat RBAC包括了RBAC最必要的几个方面。RBAC的基本概念是:用户分配给角色,许可分配给角色,用户通过角色来获得许可。NIST的RBAC模型要求用户——角色和许可——角色关系必须支持多对多。因此一个用户可以分配给不同角色,一个角色可以拥有多个用户。对于许可也类似。Flat RBAC要求用户——角色关系可以双向检索,即用户可以获取其已分配的角色,反过来角色也能获取其拥有的用户。(在Symmetric RBAC中,对于许可——角色关系也有类似要求。)最后,Flat RBAC要求用户能够同时行使多个角色上的许可。这一要求排除了那些限制用户同一时间只能激活一个角色的产品。
基本原理:Flat RBAC抓住了那些传统的基于组的访问控制特性。这些特性已经在当代的操作系统中有了很好的实现。因此这已经是一个应用广泛而成熟的技术。Flat RBAC所要求的这些特性是对于任何形式的RBAC都显然是必须实现的。定义Flat RBAC的重点在于决定排除哪些特性。Flat RBAC已经革命性地去除了很多内容,只保留最少的必需特性。尤其重要的是,这些特性都是与传统健壮的基于组的访问控制相兼容。然而反过来,由于以上的某些要求,并不是所有基于组的机制都可以满足Flat RBAC的要求。
2.2 Hierarchical RBAC
Hierarchical RBAC增加了对支持角色层级关系的要求。层级精确来说是一个定义角色之间上下级关系的偏序(原文:partial order)。这样上级角色将会拥有下级角色的所有许可。在这一方面,NIST模型划分了两个子级别。
General Hierarchical RBAC
支持在角色层级中使用任意的偏序。
Restricted Hierarchical RBAC
某些系统会在角色层级中实施限制。大多数情况下只会支持简单结构如树型,反向树型。
这两个子级别也体现在了后续的RBAC级别中,如表1所示。
角色层级可以是继承层级(一个角色的激活代表所有下级角色的激活),或者是激活层级(没有前者要求),或者两者皆有。具体实现哪种角色层级实就留待读者去决定。
基本原理:任意偏序形式的角色层级是通常在Flat RBAC上增添最实用的一个功能。这个特性在很多文献中提到,并且已经在多个产品中实现。文献[SCFY96]中对关于偏序中对传递,反射,非对称等性质的取舍问题,已有足够的讨论[原文:Justification for requiring the transitive, reflexive and anti-symmetric properties of a partial order have been amply discussed in the literature.]。这一方面已经有一个很强的共识。对于支持任意偏序带来的好处,也得到了很多的认同。尽管如此,还是有很多产品只对角色层级结构提供有局限性的支持,不过这实质上已经是Flat RBAC的功能的大大增强。因此本文对这两个子级别进行了划分。
2.3 Constrained RBAC
Constrained RBAC增加了对责任互斥(SOD)支持的要求。SOD作为一个减少欺诈机会和意外损失的手段,远在计算机出现之前已被采用,并且历经了时间的考验。SOD通过将一个动作或任务的职责和授权分散到不同的用户身上,由此提高了进行欺诈行为时的风险——因为该行为会涉及到多个人在内。许多文献中已对很多不同的SOD需求进行了阐述,包括了静态SOD(基于用户——角色关系)和动态SOD(基于角色激活机制)。NIST的RBAC模型将到底支持哪种形式的SOD留给了读者去决定。
基本原理:SOD经常被称为推动RBAC的主要动力。这一原则已经在组织的日常工作中得到实施,因此应该得到高级访问控制产品的支持。将SOD排在角色层级之后,主要是因为已有产品中角色层级是比SOD更为通常支持的特性。
2.4 Symmetric RBAC
Symmetric RBAC增加了对许可——角色关系可以双向检索的要求,这与第一级别(Flat RBAC)中对用户——角色关系的双向检索要求类似。因此可以确定一个具体许可到底分配给了哪些角色,以及一个具体角色到底拥有了哪些许可。许可——角色关系的双向检索必须保持与用户——角色关系的双向检索相当有效的性能表现。
基本原理:许可——角色关系的双向检索在第四级模型中才提出,主要因为在大型分布式的系统上,其实现较为困难。该特性有时候被称为RBAC区别与传统基于组的访问控制的一个内在特征。NIST模型从实用性方面考虑,将这一较难实现的特性放在了RBAC的较高级别模型中。
- 大小: 56.4 KB
分享到:
相关推荐
本文描述了一个RBAC(基于角色的访问控制)的统一模型。RBAC是一个已被证实可用于大规模授权控制应用的技术。
NIST RBAC模型的优势在于它的模块化和标准化,允许组织根据自身需求定制安全策略。此外,由于角色是权限的载体,变动管理变得更为简单,例如添加新用户或调整权限时,只需要调整角色配置即可。同时,该模型也有助于...
2001年,美国国家标准与技术研究院(NIST)发布了一份RBAC建议标准,其中包含了RBAC参考模型和功能规范两大部分。参考模型主要包括以下四个层次: - **核心RBAC**:这是所有RBAC系统的基础,定义了角色、用户和权限...
NIST标准RBAC模型由四个部件模型组成,分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)。RBAC0模型定义了能构成...
NIST(美国国家标准与技术研究院)对RBAC模型也有着重要贡献,它不仅定义了RBAC的术语和概念,还制定了相关的标准。通过这些标准,可以确保不同的系统和应用程序之间在权限控制方面的一致性和互操作性。 文档内容中...
RBAC模型由NIST定义了四个核心部件模型,分别是RBAC0、RBAC1、RBAC2和RBAC3。RBAC0是最基础的模型,它包括用户(users)、角色(roles)、目标(objects)、操作(operations)和权限(permissions)五个基本元素。...
NIST的RBAC模型包括四个组件:基本模型RBAC0、角色分级模型RBAC1、角色限制模型RBAC2和统一模型RBAC3。这些模型分别处理角色的层级结构、权限约束以及不同RBAC特性的组合。例如,RBAC1允许角色间的层次结构,使得...
这种模型由NIST定义的四个部件模型构成:RBAC0、RBAC1、RBAC2和RBAC3。RBAC0是最基础的模型,包括用户、角色、目标、操作和权限五个基本数据元素。用户通过角色获得权限,角色与权限的绑定减少了管理复杂性。RBAC1...
4. **统一模型RBAC3(Combined RBAC)**:综合了RBAC1和RBAC2的优点,支持角色继承的同时也支持权限的限制条件,从而提供了更为全面的安全保障。 #### 权限设计流程 基于RBAC的权限设计通常涉及以下几个步骤: 1....
4. **统一模型RBAC3**:综合了RBAC1和RBAC2的特点,提供了一种更为复杂但功能强大的访问控制框架。 通过采用RBAC模型,中山大学成功地实现了对用户权限的有效管理和控制,不仅提升了管理效率,还加强了信息安全保障...
RBAC模型是1992年由NIST(美国国家标准与技术研究所)提出的一种权限分配机制。它基于三个核心概念:用户、角色和权限。用户通过扮演不同的角色来获得相应的权限,而角色是权限的集合。这种模型降低了权限管理的...
NIST (The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)...
NIST定义的RBAC模型由四个基本组件构成: 1. **RBAC0(核心RBAC)**:这是RBAC模型的基础,包括用户(users)、角色(roles)、目标(objects)、操作(operations)和权限(permissions)五大数据元素。权限不直接...
1. **参考架构和分类**:利用现有标准化机构或其他组织的工作成果,结合NIST内部工作组的努力,开发一套适用于联邦政府的云计算路线图。该路线图将集成于联邦政府的整体云计算策略之中。相关成果包括SP500-292《NIST...
NIST定义了四种RBAC模型:RBAC0、RBAC1、RBAC2和RBAC3,它们在RBAC0的基础上逐步增加了继承关系和责任分离等特性。 1. **RBAC0模型**:这是RBAC的基础模型,包含用户、角色、目标、操作和权限五个基本元素。用户...
### NIST SP 800-22 随机数测试标准详解 #### 引言 随机数在密码学及信息安全领域扮演着至关重要的角色。它们被广泛应用于密钥生成、加密算法、数字签名等核心安全机制之中。为了确保这些机制的安全性和有效性,...