自主访问控制(DAC,Discretionary Access Control)比较基础和常用,在多种计算机系统中都会提供自主访问控制。此种访问控制的基本思想是:访问控制中访问客体的拥有者具有很大的权限,能够决定客体是否可以被相应主体访问,并且可以迁移和转让访问客体。在 DAC 模型中,访问权限是否进行授权需要根据主体情况并结合具体的安全规则从而做出判断。DAC 有访问控制矩阵和访问控制列表两种实施方式。
访问控制矩阵(ACM:Acess Control Matrix)中使用矩阵的列和行来分别对应访问主体和访问客体,二者交叉位置的元素则代表着相应的主体对客体的操作规则。
访问控制列表(ACL:Access Control List)是前面说介绍矩阵的一种变形。列表对应某个固定客体,其中的列表示能够对此客体进行一定操作的主体。第二列访问属性则表示二者对应的具体操作。如表 所示,是上表中客体 X 所对应的等价控制矩阵转化。通过 ACL 可以方便的理解和查询某个客体所对应的特定权限主体,适用于稳定的主客体不太复杂的系统。在信息系统发生较大改变时,需要重新对访问控制列表进行相应修改,容易影响系统安全性。
DAC 在进行授权时相对灵活,访问控制中客体的所有者可以将其所有用的权限进行转移,从而具有很好的灵活性,适用范围比较广,因而可以用于多个系统。但是,DAC 存在几个缺点:
1.由于权限可以进行委托,会导致资源管理比较分散,同时增加了系统的风险性。
2.不能够适应多域安全策略环境,以及在环境策略变化的情况下无法保证整体的安全性。
3.访问控制权限容易发生转移,同时,在主体与客体数量较多时,会给系统带来巨大开销,导致效率低下,不能很好的适应交大规模的网络环境。
强制访问控制(MAC)
强制访问控制(MAC:Mandatory Acess Control)在十八世纪七十年代就已经提出,在 Multics 模型上得到最早使用和验证,与前面介绍的自主访问控制相比,定义规则和策略相对更加严格。MAC 设计的基本思想是:在访问控制系统中,主体和客体被分配一定的安全属性,然后系统对二者所拥有的属性关系进行一定的评价比较,从而确定是否进行访问。也就是说这是一种多级表示模型。比较关系来源于安全属性,并且用(安全级别,类型集合)这样的组合代表安全属性。类型集合是指一定的元素的集体,而安全等级则表示相应信息的保密等级。在系统中安全属性是由维护系统的管理人员进行配置的,或者是系统自动生成的,这种安全属性是不能随意被修改的,具有强制认可性。
MAC 具有强制性和严格的单向不可逆性。MAC 系统规定高级别主体可以得到低级别主体的信息,而反过来却行不通。如果主体 A 的级别高于客体 B,那么主体 A 可以读取客体 B 中的信息和资源;如果主体 A 的级别低于主体 B 的级别,那么主体 A 可以对主体 B 进行一定的诸如写入的操作;如果主体 A 和客体 B的等级是相同的,那么主体 A 和客体 B 之间不能进行任何读与写的操作。这意味着在 MAC 模型的信息始终遵循单向流通的规则,因而可以保证系统信息的安全。如图 所示。
强制访问控制中最具有代表性的就是 BLP 模型。