通常文件的Own权限表示可授予(Authorize)或撤消(Revoke)其他用户对该文件访问权限。
实际系统中虽然可能有很多主体与客体,但两者之间的权限关系可能并不多。
为了减轻系统开销与浪费,我们可以从主体(行)出发,表达矩阵某一行的信息,这就是访问能力表(Capabilities)。
只有当主体对某个客体拥有访问能力时,它才能访问这个客体。
但要从访问能力表获得对某一特定客体有特定权限的所有主体就比较困难。
在安全系统中,正是客体需要得到可靠保护,访问控制服务应该能够控制访问某一客体的主体集合,便出现客体为中心的实现方式 —— ACL。
从客体(列)出发,表达矩阵某一列的信息,就是 访问控制表(Access Control List)。
它可对某一特定资源指定任一用户的访问权限,还将有相同权限的用户分组授予访问权。
ACL 的优点:表述直观、易于理解,容易查出对某一特定资源拥有访问权限的所有用户。
将 ACL 应用到规模大的企业内部网时,有如下问题:
-
网络资源很多,ACL 需要设定大量的表项,而且修改起来比较困难,实现整个组织范围内一致的控制政策也比较困难。
-
单纯使用 ACL,不易实现 最小权限原则 及复杂的安全政策。
授权关系表(Authorization Relations)的每一行表示了主体和客体的一个授权关系。
-
对表按客体进行排序,可以得到访问控制表的优势;
-
对表按主体进行排序,可以得到访问能力表的优势。
-
适合采用关系数据库来实现。
==============================================================================
三种不同的访问控制策略:
-
自主访问控制(DAC)
-
强制访问控制(MAC)
-
基于角色的访问控制(RBAC) 。
前两种属于传统的访问控制策略,而 RBAC 是90年代后期出现的,有一定的优势。
每种策略并非绝对互斥,可以把几种策略综合从而获得更好更安全的系统保护 —— 多重的访问控制策略。
目前计算机系统中实现最多,如Windows、UNIX系统。
一个拥有一定访问权限的主体可以直接或间接地将权限传给其他主体——允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。
用户 A 可以将其对客体目标 O 的访问权限传递给用户 B,从而使不具备对 O 访问权限的 B 也可以访问 O。
主体访问者对访问的控制有一定的权利,但它使得信息在移动过程中其访问权限关系会被改变,这样做很容易产生安全漏洞,所以DAC的安全级别很低。
传统的DAC已很难满足访问控制服务的质量:不利于实现统一的全局访问控制;
由管理部门统一实施访问控制,不允许用户自主地处理。
系统强制主体服从访问控制政策。
MAC 主要用于多层次安全级别的军事系统中,它预先定义主体的可信任级别和客体的敏感程度,用户的访问必须遵守安全政策划分的安全级别的设定以及有关访问权限的设定。
典型应用中MAC的访问控制关系分为两种:
-
下读/上写:保证数据机密性
-
上读/下写:保证数据完整性
通过梯度安全标签实现信息的单向流通。
下读:低级别用户只能读比它信任级别更低的敏感信息;
上写:只允许将敏感信息写入更高敏感区域。
此时信息流只能从低级别流向高级别,保证数据的机密性(Bell-Lapadula模型) 。
Biba 模型是 Biba 等人于20世纪70年代提出的,它主要是针对信息完整性保护方面的。与 BLP 模型类似,Biba 模型用完整性等级取代了 BLP 模型中的敏感等级而访问控制的限制正好与 BLP 模型相反:高完整性文件的内容是由高完整性进程产生的(因为禁止向上写)。上面的两条规则限制了不可靠的信息在系统内的流动,保证了高完整性文件不会被低完整性文件或低完整性进程中的信息所损害,保证了信息的完整性,文件的完整性级别标识可以确保其内容的完整程度。
MAC能够阻止特洛伊木马:
-
特洛伊木马是隐藏在执行合法功能程序中的代码,它利用运行此程序的主体权限违反安全策略,通过伪装成有用的程序在进程中泄露信息。
-
阻止特洛伊木马的策略:基于非循环信息流,由于MAC是通过梯度安全标签实现信息的单向流通,从而它可以很好地阻止特洛伊木马的泄密。
-
缺点:实现工作量太大,管理不便,不够灵活,且过于偏重保密性。
在自主访问控制中,某一合法用户可任意运行一段程序来修改该用户拥有的文件的访问控制信息,而操怍系统无法区别这种修改是用户自己的非法操作,还是“特洛伊木马”的非法操作,也没有办法防止“特洛伊木马”将信息通过共享客体(文件、内存等)从一个进程传递给另一个进程。
强制访问控制则提供一个不可逾越的、更强的安全防护层,以防止其他用户偶然或故意滥用自主访问控制。强制访问控制不可避免地要对用户的客体施加一些严格的限制,这使得用户无意泄霹机密信息的可能性大大地减少了。
可以减少授权管理的复杂性,降低管理开销,是一种有效的实施企业访问安全策略的方式。
基本概念:
在很多商业部门中,访问控制是由各个用户在部门中所担任的角色来确定的,而不是基于信息的拥有者。
角色:一个或一群用户在组织内可执行的操作的集合。
RBAC根本特征:依据RBAC策略,系统定义各种角色,不同用户根据其职能和责任被赋予相应角色。
RBAC通过角色沟通主体与客体,真正决定访问权限的是用户的角色标识。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后,附一张自己面试前准备的脑图:
面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典
- Java核心知识整理
- Spring全家桶(实战系列)
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
图片转存中…(img-GVe3vB0w-1713424603206)]
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!