RBAC0 RBAC1 RBAC2 RBAC3 -- 它们是什么意思?

信息安全 访问控制 术语 rbac
2021-09-07 18:51:19

我熟悉基于角色的访问控制的概念,但听说过 RBAC0 等术语。这些到底是什么意思?我在NIST 网站上找到了这句话

1996 年,Sandhu、Coyne、Feinstein 和 Youman 为 RBAC 模型引入了一个框架,该框架将上述 RBAC 特征整合到了模块化结构中。RBAC0 被定义为基本模型,通过用户、角色和权限进行定义。RBAC1 包括 RBAC0,但将层次结构合并为角色之间的偏序关系。RBAC2 也包含 RBAC0,但增加了约束。RBAC1 和RBAC2 彼此独立,因为系统可以实现一个而没有另一个。RBAC3 是一个功能齐全的 RBAC 模型,包含 RBAC0、RBAC1 和 RBAC2。RBAC3 基本上等同于 1992 年的 Ferraiolo 和 Kuhn 模型,不同之处在于 RBAC3 允许偏序层次结构,而 Ferraiolo-Kuhn 模型将层次结构定义为有根树。在面向对象的术语中,

但是这些定义有点令人困惑,听起来很接近技术混乱。

这些级别的真正意义是什么?他们在行业中具有价值,还是只是 CISSP 胡言乱语?系统只达到某些 RBAC 水平是否很常见?

1个回答

这些是 NIST RBAC 模型的“级别”,如:基于角色的访问控制的 NIST 模型:迈向统一标准(pdf)

它们分别指的是:

  • 扁平 RBAC
  • 分层 RBAC
  • 受约束的 RBAC
  • 对称 RBAC

Flat RBAC仅表示基本 RBAC 模型。NIST 模型要求可以确定分配给用户的角色,以及分配给特定角色的用户(称为用户角色审查)。

分层 RBAC意味着角色被组织成分层结构(DAG 或树),其中“较高”角色从连接的“较低”角色继承所有权限。分层 RBAC 进一步细分为通用和受限分层 RBAC。

受约束的 RBAC将职责分离 (SoD) 的实施添加到角色。NIST RBAC 模型中的 SoD 可以是静态的或动态的。

Symmetric RBAC增加了对权限角色审核的要求,类似于针对 Flat RBAC 描述的用户角色审核。


这些“水平”是业界感兴趣的参考点。它们使比较实现更容易,并且如果您想证明您的实现提供了理论模型所承诺的安全/保障,它提供了一个很好的基线。

然而,在实践中,许多访问控制实现称自己为基于角色的,但根本不遵守 (NIST) RBAC 模型。实现(NIST)RBAC 模型的模型通常实现平面和对称,但跳过层次和/或 SoD 约束,因为它们(很多)难以实现。