【网络信息安全】授权与访问控制,实战nginx张宴_普通网友的博客-程序员宅基地

技术标签: 程序员  面试  java  后端  

============================================================================

授权(Authorization)和访问控制(Access Control)表示ISO五大服务中的访问控制服务。

访问控制建立在身份认证基础上,通过限制对关键资源的访问,防止非法用户的侵入或因为合法用户的不慎操作而造成的破坏。

访问控制目的:限制主体对客体的访问权限,从而使计算机系统在合法范围内使用。

13.2 常用的实现方法

===============================================================================

13.2.1 访问控制矩阵


列表示客体(各种资源),行表示主体(用户),交叉点表示主体对客体的访问权限。

通常文件的Own权限表示可授予(Authorize)或撤消(Revoke)其他用户对该文件访问权限。在这里插入图片描述

13.2.2 访问能力表


实际系统中虽然可能有很多主体与客体,但两者之间的权限关系可能并不多。

为了减轻系统开销与浪费,我们可以从主体(行)出发,表达矩阵某一行的信息,这就是访问能力表(Capabilities)。

只有当主体对某个客体拥有访问能力时,它才能访问这个客体。

但要从访问能力表获得对某一特定客体有特定权限的所有主体就比较困难。

在安全系统中,正是客体需要得到可靠保护,访问控制服务应该能够控制访问某一客体的主体集合,便出现客体为中心的实现方式 —— ACL

在这里插入图片描述

13.2.3 访问控制表


从客体(列)出发,表达矩阵某一列的信息,就是 访问控制表(Access Control List)。

它可对某一特定资源指定任一用户的访问权限,还将有相同权限的用户分组授予访问权。

ACL 的优点:表述直观、易于理解,容易查出对某一特定资源拥有访问权限的所有用户。

在这里插入图片描述

将 ACL 应用到规模大的企业内部网时,有如下问题:

  1. 网络资源很多,ACL 需要设定大量的表项,而且修改起来比较困难,实现整个组织范围内一致的控制政策也比较困难。

  2. 单纯使用 ACL,不易实现 最小权限原则 及复杂的安全政策。

13.2.4 授权关系表


授权关系表(Authorization Relations)的每一行表示了主体和客体的一个授权关系。

  • 对表按客体进行排序,可以得到访问控制表的优势;

  • 对表按主体进行排序,可以得到访问能力表的优势。

  • 适合采用关系数据库来实现。

在这里插入图片描述

13.3 访问控制策略

==============================================================================

三种不同的访问控制策略:

  • 自主访问控制(DAC)

  • 强制访问控制(MAC)

  • 基于角色的访问控制(RBAC) 。

前两种属于传统的访问控制策略,而 RBAC 是90年代后期出现的,有一定的优势。

每种策略并非绝对互斥,可以把几种策略综合从

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

而获得更好更安全的系统保护 —— 多重的访问控制策略。

在这里插入图片描述

13.3.1 自主访问控制DAC


目前计算机系统中实现最多,如Windows、UNIX系统。

一个拥有一定访问权限的主体可以直接或间接地将权限传给其他主体——允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。

用户 A 可以将其对客体目标 O 的访问权限传递给用户 B,从而使不具备对 O 访问权限的 B 也可以访问 O。

主体访问者对访问的控制有一定的权利,但它使得信息在移动过程中其访问权限关系会被改变,这样做很容易产生安全漏洞,所以DAC的安全级别很低。

传统的DAC已很难满足访问控制服务的质量:不利于实现统一的全局访问控制;

由管理部门统一实施访问控制,不允许用户自主地处理。

13.3.2 强制访问控制MAC


系统强制主体服从访问控制政策。

MAC 主要用于多层次安全级别的军事系统中,它预先定义主体的可信任级别和客体的敏感程度,用户的访问必须遵守安全政策划分的安全级别的设定以及有关访问权限的设定。

典型应用中MAC的访问控制关系分为两种:

  1. 下读/上写:保证数据机密性

  2. 上读/下写:保证数据完整性

通过梯度安全标签实现信息的单向流通。

下读:低级别用户只能读比它信任级别更低的敏感信息;

上写:只允许将敏感信息写入更高敏感区域。

此时信息流只能从低级别流向高级别,保证数据的机密性(Bell-Lapadula模型) 。

在这里插入图片描述

Biba 模型是 Biba 等人于20世纪70年代提出的,它主要是针对信息完整性保护方面的。与 BLP 模型类似,Biba 模型用完整性等级取代了 BLP 模型中的敏感等级而访问控制的限制正好与 BLP 模型相反:高完整性文件的内容是由高完整性进程产生的(因为禁止向上写)。上面的两条规则限制了不可靠的信息在系统内的流动,保证了高完整性文件不会被低完整性文件或低完整性进程中的信息所损害,保证了信息的完整性,文件的完整性级别标识可以确保其内容的完整程度。

MAC能够阻止特洛伊木马:

  • 特洛伊木马是隐藏在执行合法功能程序中的代码,它利用运行此程序的主体权限违反安全策略,通过伪装成有用的程序在进程中泄露信息。

  • 阻止特洛伊木马的策略:基于非循环信息流,由于MAC是通过梯度安全标签实现信息的单向流通,从而它可以很好地阻止特洛伊木马的泄密。

  • 缺点:实现工作量太大,管理不便,不够灵活,且过于偏重保密性。

在自主访问控制中,某一合法用户可任意运行一段程序来修改该用户拥有的文件的访问控制信息,而操怍系统无法区别这种修改是用户自己的非法操作,还是“特洛伊木马”的非法操作,也没有办法防止“特洛伊木马”将信息通过共享客体(文件、内存等)从一个进程传递给另一个进程。

强制访问控制则提供一个不可逾越的、更强的安全防护层,以防止其他用户偶然或故意滥用自主访问控制。强制访问控制不可避免地要对用户的客体施加一些严格的限制,这使得用户无意泄霹机密信息的可能性大大地减少了。

13.3.3 基于角色的访问控制

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_64867293/article/details/121862413

智能推荐

Kotlin协程入门初级篇_CodeInfo_的博客-程序员宅基地

协程包含很多的功能点,这边只是一些基本功能点的介绍,只适合小白,已经掌握的可以忽略~协程入门(一):协程介绍与调用方式协程入门(二):挂起与取消协程入门(三):调度器协程入门(四):启动模式协程入门(五):异常处理式协程入门(六):调度方案比较协程入门(七):异常处理方案比较微信公众号...

(19)Spring Boot 添加JSP支持【从零开始学Spring Boot】_AndyLizh的博客-程序员宅基地

【来也匆匆,去也匆匆,在此留下您的脚印吧,转发点赞评论;      您的认可是我最大的动力,感谢您的支持】 看完本文章您可能会有些疑问,可以查看之后的一篇博客:81. Spring Boot集成JSP疑问【从零开始学Spring Boot】 ---------------------------------------------------------------------

matlab编程求卫星轨道长度,matlab-绘制开普勒轨道卫星的速度矢量_書生大人的博客-程序员宅基地

我必须画出一个物体围绕中心物体旋转的速度矢量。这是开普勒的背景。物体的轨道由经典公式(r=p/(1+e*cos(theta))推导出,其中e=偏心率。我设法画出了椭圆轨道,但现在,我想画出这个轨道上每一点物体的速度。为了计算速度矢量,我从经典公式(转换为极坐标)开始,下面是两个分量:v_r=d r/dt和v_theta=r d(theta)/dt为了计算时间步长dt,我提取了与时间成正比的平均异常...

linux shel scripting cookbook pdf,Linux Shell Scripting Cookbook - Third Edition_任念辰的博客-程序员宅基地

摘要:Do amazing things with the shell About This Book Become an expert in creating powerful shell scripts and explore the full possibilities of the shell Automate any administrative task you could imagi...

苹果电脑如何改id?这篇文章帮你搞定_白驣的博客-程序员宅基地

你遇到过买了二手Mac电脑不知道如何改ID和密码?或者不知道怎么更改绑定的ID号?下面这篇文章或许能够帮助大家彻底解答疑惑,苹果电脑更改ID必须保证iCloud、App Store以及网页版的Apple ID管理中心都是同一个ID账号才算修改过来。Apple ID管理中心可以去这里:查看**第一步:**我们先登录Apple ID管理中心,输入自己有的ID号码,如果没有ID账号,那么就先去注册一...

python 异常处理try,except_weixin_30745641的博客-程序员宅基地

try:要做的事情exceptException as e:try执行失败执行这条命令else:try 正常做完了转载于:https://www.cnblogs.com/zhujunsheng/p/10472222.html

随便推点

mybatis generator完整配置_qq_40656662的博客-程序员宅基地

原文出处见:https://www.jianshu.com/p/e09d2370b796<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""ht...

ubuntu系统启动qtceator时提示:Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库_lesliefish的博客-程序员宅基地

在ubuntu系统下安装好qt5.5后启动qtceator时提示: Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so:(libgstapp-0.10.so.0: 无法打开共享对象文件: 没有那个文件或目录)解决

Android 第一节之安卓的基础概念_云胡同学的博客-程序员宅基地

开发环境搭配jdk,去oracle官网下载android studioAndroid sdkAndroid系统架构linux内核层为安卓设备的各种硬件提供了底层的驱动系统运行库层,c++库为安卓系统提供主要的特性支持,SQLite库提供数据库的支持,OpenGL|ES库提供3D绘图的支持,Webkit库提供了浏览器内核的支持。应用框架层 api的支持应用层 安装在手机的应用属于这一层

黑马程序员——String类,包装类及List,Set集合_Jiaming84的博客-程序员宅基地

------- android培训、java培训、期待与您交流! ----------String类概述1,字符串是一个特殊的对象;2,字符串一旦初始化就不可以被改变;3,String str="abc";与String str=new String("abc");的区别:str代表一个对象,str代表两个对象。String类复写了Object类中的equals方法

Linux下zookeeper配置文件zoo.cfg中配置参数详解_柒️星的博客-程序员宅基地

(1)clientPort客户端连接server的端口,即对外服务端口,一般设置为2181吧。(2)dataDir存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir,事务日志的写性能直接影响zk性能。(3)tickTimeZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,以毫秒计,用来调节心跳和超时。例如,s...

吉利安卓应用市场API_iffy1的博客-程序员宅基地

BaseURLcom\ecarx\appstore\global\http\HttpUtil.smali# static fields.field private static final BASE_URL:Ljava/lang/String; = "http://api.xchanger.cn/api/v1/"APIsmali\com\ecarx\appstore\...