[音乐]
[音乐]
同学们好, 今天我们讲一下这个 NIST 的 RBAC 的标准。
前面我们提到过这个 Stanford 他们提出了这个 RBAC96,
那么后来在这个美国的 NIST 标准这个组织,
他们认可了这样一些模型,所以的话把它列入了几个标准。
那么这个标准呢其实是在前人的那些就是 RBAC 96 还有前人一些工作的基础之上做的一个统一的一个描述。
这个标准在 01 年的时候呢,纳入了这个 NIST 标准的。
那么它的作者呢,Stanford 和前面的这个 f 作者他们是主要的完成人。
那么现在也成为了 ANSI 的这个标准。
我们来看一下这个标准它的这个主要 给出的这个 RBAC 模型,那么这个模型里面其实也分为四个部分。
第一部分呢是关于厚 RBAC,有点对应于 RBAC
的 9600 的 RBAC0,另外呢还有
可继承的 RBAC,这个 Hierarchical 也可以对应于 RBAC 的 1,
另外就是它又分了静态职责隔离和动态隔离两部分。
这个其实是相当于是 RBAC2 里面的 两部分,就是静态的和动态的之间的隔离。
我们来看一下这个 RBAC core RBAC 跟 RBAC0 的区别在哪里?
通过这张图我们可以看到,这个模型里面的模型元素有一个部分是不一样的。
那么在RBAC0 里面,这边是有用户角色还有绘画。
另外就是许可级,那么在 RBAC,core RBAC
里面是多了一个 这个许可级是明确的划分出来是操作和个体
之间的这个许可,把这个做了一个明确的这个约束关系。
所以它的这个形式化的描述,也把这一部分 permission 这一部分进行了形式化的刻画。
那么其他的部分也是指派关系,其实跟前面的 RBAC0 没有区别,它是一样的。
那么可继承的 RBAC,
我们再来看一下,它跟前面的这个 RBAC1 也基本上是对应的。
那么无非是在这个角色上面增加了一个 RH 的关系。
所以它在形式化的刻画的时候,把这个角色之间的继承关系用形式化的方法做了一个描述。
这是第二个,第三个就是关于 静态职责隔离,就是其实也是 constrained RBAC 里面的第一种。
这个 constrained RBAC
大家可以看到,它做的一个约束是,其实是通过这个这个图示大家可以看到 它是在这个
UA 指派的过程当中,就是用户和角色指派过程当中。
还有在这个角色继承关系当中都做了相关的约束。
那么这个约束是主要做了什么呢?其实主要约束就是说
用户在承担相关角色,用户在分配静态角色的时候 他到底能够分配什么样的角色,
那么这个关系上,他是不是说是要受到一些 约束的,这个约束就是要在系统里面可能额外定义出相关的这样的。
一个静态的父子关系,如果有个静态的 父子关系存在,那么它在分配这个角色的时候就要受他的这个约束。
我们来举个例子看一下, 假设系统里面有
四个角色,那么有用户 U1,U2 两个用户。
那么现在呢假设系统里面定义了这样一个约束关系。
就是按照我们这边给出的一个约束关系啊,
就是角色集合和一个数字,假设系统里面有这样一个约束关系就是 r1,r3
然后这边是个 2, 这就是我们所说增加的一个
静态约束关系,那么这个约束关系呢, 其实是说明每个用户能够指派这个
集合里面的 r1 到 r3 里面的,只能指派其中一个角色。
如果指派了一个角色,就不能指派第二个角色,比如说加入 U1,
已经承担了 r1 的角色。
现在你要想让 u1 再去承担 r3 的角色。
这个就会不允许。
这就是在静态指派的时候我们只能够在这样一个满足这个约束条件的基础之上。
去做这样的一个指派关系,这是静态指派在 UA 指派的时候所遇到的。
第二个呢是关于这个动态指派关系,
这个动态指派关系呢,事实上跟前面的静态指派关系唯一不同的是在这个
fashion和这个角色过程当中所用到的,
这个静态指派关系,那么这个指派关系呢,其实是指的用户 他可能静态的比如说按照前面的例子,
按照前面的例子这个 user1 承担了 r1 的角色。
我们假设 user1 呢又指派了 r4 的角色。
这是静态指派,就是在这个 UA 指派的时候。
这个是,如果是静态授权,是允许的, 那么现在呢,用户一想启动一个进程。
这个进程它是以用户一的身份,然后他想去按照这个 r1
的角色去运行,那么这种情况下它是允许的。
假设 r1 和 r4 被列在了这个约束,静态动态约束关系里面。
比如说 r1,r4 是这个 就是我们所说 DST 的一个约束。
那么这个 user1 这个时候
如果想去以 r4 的
角色的方式去继续运行另外一个进程的话,这个时候它是会被拒绝的。
这就是关于这个动态约束的这个情况,好,这部分内容主要介绍的是这个 list
RBAC 的这个标准,那么它主要是在 传统的 RBAC96 的基础上做了一些扩展。
这次课就讲到这,谢谢!