目录
- 访问控制概述
- 实现访问控制目标
- 访问控制参考模型
- 常见访问控制模型
- 访问控制模型-DAC自主访问控制
- 访问控制模型-MAC强制访问控制
- 访问控制模型-RBAC基于角色的访问控制
- 访问控制模型-ABAC基于属性的访问控制
访问控制概述
访问控制是对资源对象的访问授权控制的方法以及运行机制
访问控制又叫访问者,又称为主体,他可以是我们的用户,也可以是系统的进程或者应用程序,资源对象又称为客体,他是被访问的对象,可以是文件应用服务或者数据,另外两个关键字授权和控制
它指的是访问者可以对资源对象进行访问的方式,是读、写、删除或者是有其他的这种权力,不同的用户群体权力是不一样的
就对访问者是否允许用户访问的资源对象做出决策,本来是只可以读的用户,你搞一个可以写的文件,这个肯定是有问题的,我们做出的决策可以是拒绝访问,或者是允许、禁止操作,根据我们相应的权限来对我们访问的过程进行控制
访问控制的目标有两个,第一个防止非法的用户进入系统,通过认证进入我们的系统,第二个阻止合法用户对系统资源非法的访问,以及禁止合法用户的越权访问,你本来只能读的,你就不能写,这就是访问控制的目标
实现访问控制目标
首先要对用户进行身份认证,然后根据不同的用户授予不同的访问权限。第二个就是授权,从而保护系统的资源,同时还可以进行系统的安全审计和监控检测,检测用户对系统的攻击企图,我们的审计一般是事后的,我们来做分析,所以实际的应用当中一般是访问控制,他会与认证、授权、审计机制相互去协同使用,这是访问控制跟其他安全机制的一个关系,前置有一个认证,后置有一个审计,中间是访问控制,这三个是经常联合起来用的
访问控制参考模型
主体比如说是我,文件就是客体,中间有访问控制数据库、参考监视器、审计库这三个东西来控制我们访问的,参考监视器,具体能不能访问是在这里去执行和决策的,相当于它就是一个判断机制,根据我们的访问控制数据库去判断能不能访问,访问控制数据库它里面存的是一些访问控制的策略,比如说,我能访问这个文件吗,是能读还是能写,审计库主要是存储我们操作的信息,比如说访问成功或者失败、连续失败,比如说我在访问这个文件,可能需要密码,我尝试了一万遍,都没有成功,最后我们审计库里面是不是会有记录,证明我可能是攻击者,我在攻击这个文件,我想去获得越权的访问,但是没成功,所以审计库记录下这些信息可以供我们管理员来进行安全的防护、安全的加固
常见访问控制模型
常见的访问控制模型有这几种,重点理解的是标黄的这几种,其中重点是自主访问控制、强制访问控制和基于角色的访问控制模型,他们常被用于操作系统、数据库等等这些资源的访问
基于属性的访问控制模型,比如张三是个男人,这个就是属性,像女厕所肯定只有女人能进,男人进不了
基于行为的访问控制模型,常见的上网管理,它可以对我们的用户一些行为进行控制,比如你要浏览非法的网站,他给你阻止了,干违法的操作把你阻止了,比如说典型的上网行为管理、电子支付等等
基于时间的访问控制,我们写acl的时候,可以写time range,时间范围,比如,我上班的时候不能聊QQ,不能下迅雷,不能看在线的视频,但是你下下来就可以随便看
访问控制模型-DAC自主访问控制
自主访问控制(Discretionary Access Control,DAC)指客体的所有者按照自己的安全策略授予系统中的其他用户对其的访问权,他实现方式有两大类,基于行的访问控制和基于列的自主访问控制
自主访问控制是最常用的一种对网络资源进行访问约束的机制,其好处是用户自己根据其安全需求,自行设置访问控制权限,访问机制简单、灵活。但这种机制的实施依赖于用户的安全意识和技能,不能满足高安全等级的安全要求。例如,网络用户由于操作不当,将敏感的文件用电子邮件发送到外部网则造成泄密事件。所以在一些高安全场景不太适用
访问控制模型-MAC强制访问控制
强制访问控制(MAC)是指根据主体和客体的安全属性,以强制方式控制主体对客体的访问。安全操作系统中的每个进程、每个文件等客体都被赋予了相应的安全级别和范畴,当一个进程访问一个文件时,系统调用强制访问控制机制,当且仅当进程的安全级别不小于客体的安全级别,并且进程的范畴包含文件的范畴时,进程才能访问客体,否则就拒绝。
我们现在常用的一些操作系统,他底层都是有用强制访问控制的
与自主访问控制相比较,强制访问控制更加严格,用户使用自主访问控制虽然能够防止其他用户非法入侵自己的网络资源,但对于用户的意外事件或误操作则无效,因此,自主访问控制不能适应高安全等级需求。在政府部门、军事和金融等领域,常利用强制访问控制机制,将系统中的资源划分安全等级和不同类别,然后进行安全管理。
访问控制模型-RBAC基于角色的访问控制
基于角色的访问控制(RBAC)是目前国际上流行的先进的安全访问控制方法。它通过分配和取消角色来完成用户权限的授予和取消,并且提供角色分配规则。RBAC包括用户(U)、角色®、会话(S)和权限§四个基本要素。
不同的角色,他的权限是不一样的,你也可以理解成不同的分组,他的权限也不一样,像我们windows里面,他其实有很多用户组,administrator超级管理员、user、power、back-up 备份,这些就是用户组,其它对应的就是角色
角色简单理解就是用户组,我们通过用户组来集中的授权,我们权限管理就会简单很多,比如我这个系统里面有1千个用户,我要实现1千个用户的一个授权管理,对1千个用户进行操作是不是很麻烦,但是我如果把1千个用户划分成不同的角色,一个是管理员,一个是访客,或者三个,还有一个是内部工作人员,相当于只是对三个角色的权限进行划分,整个操作就简单很多,这是基于角色的访问控制,应用非常广泛
访问控制模型-ABAC基于属性的访问控制
基于属性的访问控制(ABAC):访问控制方法是根据主体的属性、客体的属性、环境的条件以及访问控制策略对主体的请求操作进行授权许可或拒绝。
比如说有些电影要求我们满18岁才能看,这个电影是涉及到暴力血腥,这里面我们对主体属性的要求是你要大于等于18岁,客体属性就是暴力血腥这一类的,如果小于18岁,肯定拒绝,这个是基于属性的访问控制,相对而言,他会比较灵活,可以根据我们主客体的属性去自定义,第一个是自主访问控制,第二个是强访问控制,第三个基于决策的访问控制