权能表决定用户是否可以对客体进行访问以及进行何种形式的访问(读、写、改、执行等). 一个拥有某种权力的主体可以按一定方式访问客体, 并且在进程运行期间访问权限可以添加或删除.
前缀表包括受保护的客体名以及主体对它的访问权. 当主体欲访问某客体时, 自主访问控制系统将检查主体的前缀是否具有它所请求的访问权.至于口令机制, 每个客体(甚至客体的每种访问模式) 都需要一个口令, 主体访问客体时首先向操作系统提供该客体的口令.
基于列的自主访问控制是对每个客体附加一个可访问它的主体的明细表. 它有两种形式: 保护位(Protection bits) 和访问控制表(ACL: Access Control List). 保护位是对所有的主体指明一个访问模式集合, 由于它不能完备地表达访问控制矩阵, 因而很少使用.
访问控制表可以决定任一主体是否能够访问该客体, 它是在客体上附加一主体明细表的方法来表示访问控制矩阵.表中的每一项包括主体的身份和对客体的访问权. 访问控制表是实现自主访问控制的最好的方法.
尽管DAC 已在许多系统中得以实现(如UNIX) , 然而DAC 的一个致命弱点是: 访问权的授予是可以传递的. 一旦访问权被传递出去将难以控制, 访问权的管理是相当困难的,会带来严重的安全问题; 另一方面,DAC 不保护受保护的客体产生的副本, 即一个用户不能访问某一客体, 但能够访问它的拷贝, 这更增加了管理的难度; 而且在大型系统中主、客体的数量巨大, 无论使用哪一种形式的DAC, 所带来的系统开销都是难以支付的, 效率相当低下, 难以满足大型应用特别是网络应用的需要.
MAC 源于对信息机密性的要求以及防止特洛伊木马之类的攻击. MAC 通过无法回避的存取限制来阻止直接或间接的非法入侵. 系统中的主/客体都被分配一个固定的安全属性, 利用安全属性决定一个主体是否可以访问某个客体. 安全属性是强制性的, 由安全管理员(SO: Security Officer) 分配,用户或用户进程不能改变自身或其它主/客体的安全属性.
MAC 的本质是基于格的非循环单向信息流政策. 系统中每个主体都被授予一个安全证书, 而每个客体被指定为一定的敏感级别. 访问控制的两个关键规则是: 不向上读和不向下写, 即信息流只能从低安全级向高安全级流动. 任何违反非循环信息流的行为都是被禁止的.
MAC 起初主要用于军方的应用中, 并且常与DAC 结合使用, 主体只有通过了DAC 与MAC 的检查后, 才能访问某个客体. 由于MAC 对客体施加了更严格的访问控制, 因而可以防止特洛伊木马之类的程序偷窃受保护的信息, 同时MAC对用户意外泄漏机密信息的可能性也有预防能力. 但如果用户恶意泄漏信息, 则可能无能为力; 而且, 由于MAC 增加了不能回避的访问限制, 因而可能影响系统的灵活性; 另一方面, 虽然MAC 增强了信息的机密性, 但不能实施完整性控制, 而一些完整性控制策略却可以实现机密性的功能; 再者网上信息更需要完整性, 这影响了MAC 的网上应用; 最后, 在MAC 系统中实现单向信息流的前提是系统中不存在逆向潜信道. 逆向潜信道的存在会导致信息违反规则的流动.而现代计算机系统中这种潜信道是难以去除的, 如大量的共享存储器以及为提升硬件性能而采用的各种Cache 等. 这给系统增加了安全性漏洞.
基于角色的访问控制(RBAC)是一种较新的访问控制模型,它的基本思想是:定义一组用户集和角色集,在特定的环境里,权限被赋予角色,而角色被指定给一个用户,此用户就拥有了该角色所拥有的权限。在RBAC中,角色是安全策略的核心,用户和角色是多对多的关系。RBAC解决了具有大量用户,数据客体和各种访问权限的系统中的授权管理问题,有效地克服了传统访问控制技术存在的不足,为管理员提供一个比较好的安全策略实现。
RBAC 包含了如下的基本概念
· 主体(Subject) 可以对其它实体实施操作的主动实体. 通常是系统用户或代理用户行为的进程.
· 客体(Object) 接受其它实体动作的被动实体. 通常是可以识别的系统资
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>