自主访问控制基于自主策略管理主体对数据的访问,主要机制包括基于主体的标识和授权规则。这些机制是自主的,即它们允许主体将数据权限授予其他主体。由于灵活方便,许多应用环境中都采用自主策略,这也是商业数据库采用这种策略的原因之一。
自主访问控制的一个重要方面是与授权管理策略密切相关。所谓授权管理,是指授予和撤销授权的功能。通过授权管理,可以将授权加入访问控制,也可以从访问控制中删除授权。通常,管理策略包括集中管理和拥有者管理。前者指只有某些被授权的主体能授予或者撤销授权,后者指在数据客体上的授权和撤销操作能由客体的创建者完成。基于拥有者的管理通常由管理委托来提供,它允许数据客体的拥有者赋予其他主体授予和撤销授权的能力。
访问控制矩阵模型由Lampson于1971年提出,并成为BLP模型的一部分。Graham和Denning在1972年进一步讨论该模型。Harrison等人在1976年提出了一种简单形式的访问控制矩阵(称为HRU模型),并成为随后研究工作的重点。
访问控制矩阵模型利用矩阵A表示系统中主体、客体和每个主体对每个客体所拥有的权限之间的关系。授权状态用一个三元组Q=(S,O,A)来表示。其中S是主体的集合,主体可以是用户、用户组、进程或域。O是客体的集合,是安全机制保护的对象。在数据库管理系统范畴内,O是数据库、关系、属性、记录以及记录内的字段等。由于某些主体也需要被保护,因此这里的客体也可以包括主体。A是访问控制矩阵。整个授权状态见表5-1。
表5-1 授权状态表
在矩阵A中,一列表示一个客体的访问控制列表,一行表示一个主体的能力列表。A中的每个元素A(si,oj)表示主体i对客体j的操作授权,它是访问模式的一个子集。访问模式取决于系统的功能和所考虑的客体内容。一般情况下,在数据库管理系统中,访问模式包括读、写、执行、附加和拥有。当A(si,oj)包含“拥有”时,称主体i是客体j的属主,拥有对该客体的所有权限。
访问控制矩阵原语是指对访问控制矩阵执行的、不使之中断或处于不完整状态的操作。当一个矩阵建立好后,就意味着建立了一个具体的安全控制机制或安全控制系统。用有限状态自动机的概念来说,就是用一个总的状态Q来表示该系统的某种特定的安全策略和授权,因此,对访问控制矩阵的操作就意味着改变该系统的安全策略或授权情况。在访问控制矩阵中,有6种命令操作能改变矩阵的状态,每种命令由一个可选的条件语句和一个命令体构成。系统状态Q被一个操作集合所改变,该操作集合范例见表5-2。(www.xing528.com)
表5-2 访问控制操作集合范例
在每种命令的可选的条件语句中,可以包含对该命令体执行时的时间或数据约束、上下文约束和历史记录约束。
利用模型中主体能够生成客体,从而拥有对该客体的最高权限这一特性,矩阵模型很容易支持自主访问控制的要求。因为在访问控制矩阵模型系统中,主体可以对客体的访问权限加以管理,所以可以将该客体的访问权限赋予其他主体或由其他主体撤销。当然,对该客体的“拥有”权限是不能转让的。
安全系统中普遍需要遵循权限衰减原则(Attenuation of Previleges),即权限在系统内的传递或管理过程中,不能增大,最多保持,一般要衰减,而且主体或用户不能将自己并不拥有的权限赋予其他主体或用户,也不能为自己生成超过原有等级的新权限。但是,在访问控制矩阵中客体的属主却可能将自己并不拥有的访问方式授予或撤销,这就部分地违背了权限衰减原则。当然,其他类型的主体还是无法违背这一原则的。
访问矩阵模型的缺点是每次用户提出访问请求时,需要对访问控制矩阵做一次扫描,因此时间效率方面不算最理想。一般建议尽量通过用户组等措施减少用户的数量,以减少扫描代价。另一个问题与存储空间有关,对于某些系统,访问控制矩阵可能会运行在稀疏矩阵状态。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。