大家好,又见面了,我是你们的朋友全栈君。
访问控制是给出一套方法,将系统中的所有功能标识出来,组织起来,托管起来,将所有的数据组织起来标识出来托管起来, 然后提供一个简单的唯一的接口,这个接口的一端是应用系统一端是权限引擎。权限引擎所回答的只是:谁是否对某资源具有实施 某个动作(运动、计算)的权限。返回的结果只有:有、没有、权限引擎异常了。
访问控制是几乎所有系统(包括计算机系统和非计算机系统)都需要用到的 一种技术。访问控制是按用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术。访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。
授权用户可以自主地将权限转移给别人,权限的修改是由特权用户来修改的。linux,unix ,windows 都采用这样的形式。 权限信息存储(访问权限表): (1)访问控制表(ACL):以客体为核心,然后对客体联系所有的主体及其对应的权限。 (2)访问能力控制表(ACCL):以主体为核心,列出其所有允许访问的客体及权限。 (3)访问控制矩阵(ACM):二元矩阵表示权限关系,会有冗余。
特点:数据访问方式灵活,允许权限的自由转移,但是同时会带来安全问题,数据保护较低。
更为严格的权限管理,将主体和客体赋予一定的安全级别,每个用户根据自己的安全级别,就会有自己全部的访问权限,这种权限是于安全级别严格挂钩的,不允许转移,也不允许为单个用户改动。
读写权限实例:(军队常用的两种严格的机制) (1)向上写,向下读:有效防止信息向低安全级泄露,保护机密性。 (2)向下写,向上读:有效防止了下级篡改信息,保护完整性。
将用户不再单个考虑,而是将其组织为组,而将客体的权限也设置为角色,一种角色会有自己特定的能力,这样用户就可以以担任角色的方式来获取权限,而非直接得到权限。 这样,就即保留了自由的灵活性,即用户可以担任不同的角色来获取不同的权限,又保证了权限获取的严格性,即角色是固定的,不能有自由组合的角色出现,且角色的获取是可控的。 角色的获取和增删都是管理员决定,而非自由获得。这是RBAC和DAC的区别。 权限是由角色组织起来的,一个角色可能获取不同安全级的权限,所以就没有安全级的概念,按需添加角色。这是RBAC和DAC的区别。
(1)最小特权原则:根据主体所需权力的最小化分配,能少不多。 (2)最小泄露原则:对于权限的行使过程中,使其获得的信息最小。 (3)多级安全策略:对于信息安全级别要加以考虑,避免高级别信息向低级别主体泄露。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163458.html原文链接:https://javaforall.cn