对于访问控制模型,大家都知道有三种,分别是“自主访问控制”、“强制访问控制”、“基于角色访问控制”,下面介绍一下自主访问控制模型。
一、访问控制三要素:主体、客体、访问控制策略
主体(Subject) 指主动对其它实体施加动作的实体客体 (Object) 是被动接受其他实体访问的实体控制策略 (Policy) 为主体对客体的操作行为和约束条件
自主访问控制模型(DAC)
自助访问控制模型是根据自主访问控制策略建立的一种模型,允许合法用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体。拥有客体权限的用户,可以将该客体的权限分配给其他用户。
自主访问控制其中的一个最大问题是主体的权限太大,在不知不觉中可能泄露信息,而且不能防备特洛伊木马的攻击。通常DAC通过授权列表(或访问控制列表ACL)来限定哪些主体针对哪些客体可以执行什么操作,系统安全管理员通过维护ACL来控制用户访问有关数据。
但当用户数量多、管理数据量大时,ACL就会变得很庞大。当组织内的人员发生变化、工作职能发生变化时,ACL的维护就变得非常困难。另外,对分布式网络系统而言,DAC不利于实现统一的全局访问控制。
自主访问控制的实现方式往往包括目录式访问控制模式、访问控制列表、访问控制矩阵和面向过程的访问控制等方式。
ACL(访问控制列表)
访问控制列表 (ACL, Access Control List),每一个客体都配有一个列表,这个列表记录了主体对客体进行何种操作。当系统试图访问客体时,先检查这个列表中是否有关于当前用户的访问权限。ACL 是一种面向资源的访问控制模型,它的机制是围绕资源展开的。
访问控制矩阵
为实现完备的自主访问控制,由访问控制矩阵提供的信息必须以某种形式保存在系统中,访问控制矩阵中的每行表示一个主体,每列则表示一个受保护的客体。矩阵中的元素表示主体可对客体的访问模式。目前在操作系统中实现的自主访问控制都不是将矩阵整个保存起来,因为那样做效率很低。实际的方法是基于矩阵的行或列来表达访问控制信息。
基于行的自主访问控制方法
基于行的访问控制方法是在每一个主体上都可以附加一个该主体可访问的客体的明细表。按照表内信息的不同,可以将其分为三种方式:口令,口令机制是按行表示访问控制矩阵的。每个客体都相应地有一个口令。主体在对客体进行访问前,必须向操作系统提供该客体的口令;前缀表,包括受保护的客体名和主体对它的访问权;权利表,该表可确定用户是否可以对客体进行访问,以及可以进行何种访问。
基于列的自主访问控制方法
基于列的访问控制方法是在每个客体上都附加一份可访问它的主体的明细表,有三种形式:①访问控制表 ②保护位 ③访问模式