访问控制矩阵
1.保护系统描述了哪些条件下被保护的系统是安全的。访问控制矩阵是一种描述保护系统
的经典方法。
2.保护状态
系统状态是由所有内存、二级缓存、寄存器和系统中其他设备的状态构成的集合,这个集合中涉及安全保护的子集称为保护状态。
访问控制矩阵是用于描述当前保护状态的最精确的模型,它准确的描述了一个主体(活跃的实体,如一个进程)相对于系统中其他实体的权限。
只有系统中影响保护状态的状态转换才是指的关心的。
3.访问控制矩阵模型
访问控制矩阵是用矩阵的形式描述系统的访问控制的模型,它由三元组(S,O,A)来定义,其中:
S是主体的集合——行标对应主体
O是客体的集合——列标对应客体
A是访问矩阵,矩阵元素A[s,o]是主体s在o上实施的操作
客体以及在其上实施的操作类型取决应用系统本身的特点
访问控制矩阵模型只是描述保护状态的抽象模型。
在访问控制矩阵中客体一般意味着文件、设备或者进程,但是客体其实可以小到进程之间发送的一条消息,也可以是大到整个系统。
4.保护状态转换
进程执行操作——》保护系统的状态发生转换——》表示系统保护状态的访问控制矩阵也要做相应的更新。
定义影响访问控制矩阵的原语命令:
1)create subject s
这个原语用于创建一个主体s,注意在本命令执行之前,s 不能作为一个
客体或者主体在系统中存在。这个操作没有添加任何权限,它只是改变
了访问控制矩阵本身。
2)create object o
这个原语命令用于创建一个新客体o,注意在本命令执行之前,o在系统
中并不存在。和create subject操作类似,这个操作没有添加任何权限,
它只是改变了访问控制矩阵本身。
3)enter r into a[s , 0]
这个原语命令用于将权限r添加到矩阵元素a[s ,o]中,注意在本命令执
行前,a[s , o]可能已经有了某些权限,这样添加权限的意义和系统的具体
实现是相关的(可以添加另一种权限,也可以多少都不做)4)delete r from a[s , 0]
这个原语命令用于将权限r从矩阵元素a[s,o]中删除。注意在本命令执行之前,a[s,o]
不一定要包括权限r,这种情况下,这个命令不做任何事情。
5)destroy subject s
这个原语命令用于删除主体s 。访问控制矩阵中相关s的行和列也要相应的删除。
6)destroy object o
这个原语用于删除客体o。访问控制矩阵中相关o的列也要相应地删除。