在Linux操作系统:
一提到自主访问控制,人们想到的是基于属主、属组的读写执行的访问控制体系。
一提到强制访问控制,人们想到的是Selinux,基于Se的策略控制主体对客体的访问。
自主访问控制、强制访问控制,是一种安全策略,不能将其与具体的安全实现划等号。即使我们使用基于属主、属组的安全机制,也同样能够实现强制访问控制。
什么是自主访问控制、强制访问控制?
(一)自主访问控制:
由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。也就是说,在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。 自主访问控制是保护系统资源不被非法访问的一种有效手段。但是这种控制是自主的,即它是以保护用户的个人资源的安全为目标并以个人的意志为转移的。 自主访问控制是一种比较宽松的访问控制,一个主题的访问权限具有传递性。
其强调的是自主,自己来决定访问策略,其安全风险也来自自主
(二)强制访问控制:
用户的权限和客体的安全属性都是系统管理员人为设置,或由操作系统自动地按照严格的安全策略与规则进行设置,用户和他们的进程不能修改这些属性。
其强调是强制,由系统来决定。
不能说强制访问控制相比较而言,漏洞会更少一些,就使用强制访问控制替换自主访问控制。
其原因在于,这两种安全策略适用的是不同的场合。
有些安全策略,只有用户知道,系统是无法知道的,那么适合自主访问控制。
有些安全策略,系统是已知的,是固定的,不受用户影响的,那么适合强制访问控制。
因此自主访问控制和强制访问控制的差别,不在于安全强度,而在于适用的场合不同。