当前位置: 首页 > news >正文

软考-访问控制技术原理与应用

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)

本文为追加文章,后期慢慢追加

by 2023年10月

访问控制概念

访问控制是计算机安全的一个重要组成部分,用于控制用户或程序如何使用系统资源。访问控制的目标是确保只有经过授权的用户或程序可以访问特定的资源,例如文件、文件夹、系统设置、网络服务和数据库等。

访问控制由以下三个概念构成:

  1. 主体:主体是指被授权或未经授权试图访问系统的用户、程序或进程。

  2. 资源:资源是指需要被保护的系统资源,例如文件、数据、设备或服务等。

  3. 访问控制规则:访问控制规则是指由系统管理员定义的规则,用于限制主体对资源的访问权限。根据访问控制规则的不同,主体可以被授予不同的访问权限,例如读取、写入、执行或删除等。

在实现访问控制时,通常会采用多层次的安全措施,例如认证、授权、审计和加密等技术。这些技术可以帮助系统管理员有效地控制和保护敏感信息和系统资源。

访问控制的主要目标

确保只有经过授权的用户、程序或进程可以访问特定的系统资源。以下是访问控制的目标:

  1. 保护系统资源:访问控制的主要目标是保护系统资源免受未经授权的访问或恶意攻击。这可以防止数据泄露、系统崩溃或破坏等安全问题。

  2. 实现数据保密性:访问控制可以确保只有授权用户可以访问敏感信息,从而保护数据的保密性。

  3. 管理权限:访问控制可以帮助管理员控制和管理用户权限,即用户可以做什么和不能做什么。这可以确保用户只能执行必要的任务,防止滥用权限和误操作。

  4. 管理身份验证:访问控制可以提供身份验证机制,以确保只有经过身份验证的用户可以访问资源。这可以防止身份伪造和欺诈。

  5. 管理审计:访问控制可以记录用户活动和系统事件,以帮助管理员审计用户行为。这可以帮助发现潜在的安全问题和保证合规性。

综上所述,访问控制的目标是保护系统资源,实现数据保密性,管理权限,管理身份验证和管理审计。它是计算机安全的重要组成部分,可以帮助组织保护敏感信息和系统资源。

访问控制模型

参考监视器访问控制模型组成要素主要有主体(Subject).(Reference Monitor) 、客体(Object) 、访问控制数据库、审计库。
访问控制模型组成要素

  1. 主体:是客体的操作实施者。实体通常是人、进程或设备等,一般是代表用户执行操作的进程。
  2. 客体:是被主体操作的对象
  3. 参考监视器:是访问控制的决策单元和执行单元的集合体
  4. 访问控制数据库:记录主体访问客体的权限及其访问方式的信息,提供访问控制决策判断的依据,也称为访问控制策略库。
  5. 审计库:存储主体访问客体的操作信息,包括访问成功访问失败以及访问操作信息。
访问控制类型
  1. 访问控制列表(Access Control List,ACL)
  2. 基于角色的访问控制(Role-Based Access Control,RBAC)
  3. 强制访问控制(Mandatory Access Control,MAC)
  4. 自主访问控制(Discretionary Access Control,DAC)
  5. 基于属性的访问控制(Attribute-Based Access Control,ABAC)
自主访问控制

自主访问控制(DAC)是一种访问控制机制,它根据主体(如用户)对资源(如文件或目录)的自主权来控制对资源的访问。这意味着主体拥有对自己所拥有的资源进行控制的权力,例如,决定其他主体是否可以访问、修改或删除该资源。

基于行的自主访问控制方法是在每个主体上都附加一个该主体可访问的客体的明细表,根据表中信息的不同又可分成三种形式,即能力表(capability list) 、前缀表(profiles) 和口令(password)。

  • 能力表。能力是访问客体的钥匙,它决定用户能否对客体进行访问以及具有何种访问模式读、写、执行)。拥有一定能力的主体可以按照给定的模式访问客体。
  • 前缀表。前缀表包括受保护客体名和主体对它的访问权限。当主体要访问某客体时,自主访问控制机制检查主体的前缀是否具有它所请求的访问权。
  • 口令。在基于口令机制的自主存取控制机制中,每个客体都相应地有一个口令。主体在对客体进行访问前,必须向系统提供该客体的口令。如果正确,它就可以访问该客体。

基于列的自主访问控制机制是在每个客体上都附加一个可访问它的主体的明细表,它有两种形式,即保护位(protection bits)和访问控制表(Access Control List, ACL)。

  • 保护位。这种方法通过对所有主体、主体组以及客体的拥有者指明一个访问模式集合,通常以比特位来表示访问权限。UNIX/Linux 系统就利用这种访问控制方法。
  • 访问控制表。访问控制表简称ACL,它是在每个客体上都附加一个主体明细表,表示访问控制矩阵。表中的每项都包括主体的身份和主体对该客体的访问权限。

自主访问控制优点:访问机制简单、灵活
自主访问控制缺点:实施依赖于用户的安全意识和技能,不能满足高安全等级的安全要求。

强制访问控制
强制访问控制(Mandatory Access (ontrol,MAC)是指系统根据主体和客体的安全属性,以强制方式控制主体对客体的访问。与自主访问控制相比较,强制访问控制更加严格。BLP和Biba模型都属于强制访问控制

在政府部门、军事和金融等领域,常利用强制访问控制机制,将系统中的资源划分安全等级和不同类别,然后进行安全管理。

基于角色的访问控制

基于角色的访问控制(Role-Based Access Control,RBAC)是一种常见的访问控制机制,用于控制用户对系统资源的访问。在基于角色的访问控制中,用户被分配到一个或多个角色,而每个角色具有一组权限,用于访问系统中的不同资源。用户可以访问与他们角色相对应的资源,而不能访问与他们角色不符合的资源。
基于角色的访问控制(RBACL是指根据完成某些职责任务所需要的访问权限来进行授权和管理。RBAC 由用户(U)、角色(R)、会话(S) 和权限(P)四个基本要素组成。

基于角色的访问控制有以下优点:

  1. 管理简单:通过角色来定义权限,降低了管理的复杂性,避免了在管理多个用户时需要分别分配权限的麻烦。

  2. 安全可控:基于角色的访问控制控制了用户对系统资源的访问权限,从而保证了系统的安全性。

  3. 可扩展性好:当系统需要增加新的用户或资源时,只需要将新用户分配到相应的角色,或将新资源的权限分配给现有的角色即可。

  4. 便于审计:基于角色的访问控制记录用户访问资源的信息,便于对系统的安全性进行审计。

基于属性的访问控制

基于属性的访问控制(ABAC)是一种访问控制模型,它使用多个属性(如用户、资源、环境和行为特征)进行决策。这种访问控制模型允许管理员为每个属性定义规则,并将其组合以形成访问控制策略。属性可以包括任何与访问控制相关的信息,例如时间、位置、设备等。基于属性的访问控制可以增强访问控制的精度和灵活性,还可以帮助组织遵守安全合规性要求。

访问控制策略

访问控制策略由所要控制的对象、访问控制规则、用户权限或其他访问安全要求组成。访问控制策略常见类型机房、拨号服务器、路由器、交换机、防火墙、主机、数据库、客户端、网络服务访问控制策略等。

访问控制规则
主要的访问控制规则:

  • 基于用户身份的访问控制规则
  • 基于角色的访问控制规则
  • 基于地址的访问控制规则
  • 基于时间的访问控制规则
  • 基于异常事件的访问控制规则
  • 基于服务数量的访问控制规则

访问控制过程
要实现访问控制管理,一般需要五个步骤

  • 第一步,明确访问控制管理的资产,例如网络系统的路由器、Web 服务等
  • 第二步,分析管理资产的安全需求,例如保密性要求、完整性要求、可用性要求等;
  • 第三步,制定访问控制策略,确定访问控制规则以及用户权限分配;
  • 第四步,实现访问控制策略,建立用户访问身份认证系统,并根据用户类型授权用户访问资产;
  • 第五步,运行和维护访问控制系统,及时调整访问策略。

最小特权原则(Principle of Least Privilege) 指系统中每一个主体只能拥有完成任务所必要的权限集。特权的分配原则是”按需使用(Need to Use)"这条原则保证系统不会将权限过多地分配给用户,从而可以限制特权造成的危害。用户管理是网络安全管理的重要内容之一,其主要工作包括用户登记、用户权限分配、访问记录、权限监测、权限取消、撤销用户。

口令安全管理原则

  • 口令选择应至少在8 个字符以上,应选用大小写字母、数字、特殊字符组合;
  • 禁止使用与账号相同的口令;
  • 更换系统默认口令,避免使用默认口令;
  • 限制账号登录次数,建议为3次;
  • 禁止共享账号和口令;
  • 口令文件应加密存放,并只有超级用户才能读取;
  • 禁止以明文形式在网络上传递口令;
  • 口令应有时效机制,保证经常更改,并且禁止重用口令;
  • 对所有的账号运行口令破解工具,检查是否存在弱口令或没有口令的账号。
访问控制主要产品

访问控制的主要产品类型有4A 系统、安全网关、系统安令增强等

  • 4A系统:4A 是指认证(Authentication)、授权(Authorization)、账号(Account)、审计(Audit),中文名称为统安全管理平台平台集中提供账号、认证、授权和审计等网络安全服务。该产品的技术特点是集成了访问控制机制和功能,提供多种访问控制服务。平台常用基于角色的访问控制方法,以便于账号授权管理。
  • 安全网关:安全网关产品的技术特点是利用网络数据包信息和网络安全威胁特征库,对网络通信连接服务进行访问控制。这类产品是一种特殊的网络安全产品,如防火墙、统一威胁管理(UTM)等

系统安全增强系统安全增强产品的技术特点是通常利用强制访问控制技术来增强操作系统、数据库系统的安防止特权滥用。如Linux的安全增强系统SELinux、Windows 操作系统加固等

访问控制主要技术指标:

  1. 产品支持访问控制策略规则类型。一般来说,规则类型多,有利于安全控制细化和灵活授权管理。
  2. 产品支持访问控制规则最大数量:访问规则的数量多表示该产品具有较高的控制能力。
  3. 产品访问控制规则检查速度:产品的主要性能指标,速度快则意味着产品具有较好的性能;
  4. 产品自身安全和质量保障级别:针对产品本身的安全所采用的保护措施,产品防范网络攻击的能力,产品所达到的国家信息安全产品的等级。
Linux 访问权限与方式

访问权限分为读(read)、写(write)、执行(execute)三种,

并且涉及到文件所有者(user)、文件所属组(group)、其他人(other)三个主体。

选取上图红框中的两行为例,结合下面的表格先讲一下基本结构:
复制于https://zhuanlan.zhihu.com/p/44162944
复制于https://zhuanlan.zhihu.com/p/44162944
复制于https://zhuanlan.zhihu.com/p/44162944

改变文件/目录的放我权限命令:chomd [mode] filename
例:chmod 755testsh //755表示”创建者拥有读写可执行权限、同一组用户以及其他用户拥有读和执行权限

windows访问控制权限

Windows 用户登录到系统时,WinLogon 进程为用户创建访问令牌,包含用户及所属组的安全标识符(SID)作为用户的身份标识。文件等客体则含有自主访问控制列表(DACL),标明谁有权访问,还含有系统访问控制列表(SACL),标明哪些主体的访问需要被记录。
DACL主要用于设置用户以及用户组对安全对象的访问权限
SACL用于配置对安全对象的访问的审计(生成日志)
每个ACL由多个 ACE(Access Control Entries)构成

IIS服务器访问控制权限

IIS(Internet Information Services)服务器是一种Web服务器,可以用来托管Web应用程序和网站。在IIS服务器上,可以通过访问控制权限来限制用户对网站的访问。

以下是一些常见的访问控制权限:

  1. IP地址限制:可以通过设置某些IP地址或IP地址范围来限制用户的访问。只有在指定的IP地址范围内的用户才能访问网站。

  2. 身份验证:可以设置必须进行身份验证才能访问网站或特定页面。可以使用基本身份验证、Windows身份验证或其他第三方身份验证方式。

  3. 目录权限:可以设置目录级别的权限来限制用户对文件和文件夹的访问。可以使用NTFS权限或IIS权限来实现。

  4. SSL证书:可以通过安装SSL证书来加密传输数据,并限制只有拥有证书的用户才能访问网站。

以上是一些常见的访问控制权限,可以根据实际情况进行选择和设置。

网络访问控制

网络通信连接控制常利用防火墙、路由器、网关等来实现,通常将这些设备放在两个不同的通信网络的连接处,使得所有的通信流都经过通信连接控制器,只有当通信流符合访问控制规则时,才允许通信正常进行。

基于VLAN的网络隔离:根据网络的功能和业务用途,将网络划分为若干个小的子网(网段),或者是外部网和内部网,以避免各网之间多余的信息交换。

相关文章:

软考-访问控制技术原理与应用

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 访问控制概念 访问控制是计算机安全的一个重要组成部分,用于控制用户或程序如…...

优测云测试平台 | 有效的单元测试

一、前言 本文作者提出了一种评价单元测试用例的质量的思路,即判断用例是否达到测试的“四大目标”。掌握识别好的用例的能力,可以帮助我们高效地写出高质量的测试用例。 评判冰箱的好坏,并不需要有制造一台冰箱的能力。在开始写测试用例之…...

Java设计模式之外观模式

定义 又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,…...

MyBatis实现延时加载的方式

MyBatis实现延时加载的方式有两种: 使用resultMap的association和collection标签配置延时加载:在查询语句中,使用association标签配置一对一关联关系,使用collection标签配置一对多关联关系。然后在查询结果映射的resultMap中配置…...

计算未来:微软眼中的人工智能

计算未来 :人工智能及其社会角色(The Future Computed. Artificial Intelligence and its role in society )这本书于2018年09月由北京大学出版社出版。 书籍的作者是:沈向洋(微软全球执行副总裁),(美&…...

字号和磅的对应关系

字号「八号」对应磅值5 字号「七号」对应磅值5.5 字号「小六」对应磅值6.5 字号「六号」对应磅值7.5 字号「小五」对应磅值9 字号「五号」对应磅值10.5 字号「小四」对应磅值12 字号「四号」对应磅值14 字号「小三」对应磅值15 字号「三号」对应磅值16 字号「小二」对应磅值18 …...

Bag of Tricks for Efficient Text Classification(FastText)

主要的有点就是快,用途就是用于文本分类,模型结构如上,主要是通过embedding将文本转换成向量,然后进行mean-pooling,然后输入到hidden隐向量中,通过softmax输出多分类,损失函数是对数似然损失函…...

vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法

vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法 先看一下效果图&#xff08;想在表单里动态的增删 form-item&#xff0c;然后添加rules&#xff0c;校验其必填项&#xff1b; &#xff09;: html部分 <div v-for"(item, index) in …...

使用 ClickHouse 深入了解 Apache Parquet (一)

​ 【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 自2013年作为Hadoop的列存储发布以来&#xff0c;Parquet几乎已经成为一种无处不在的文件交换格式&#xff0c;它提供了高效的存储和检索。这种采纳使其成为更近期的…...

【每周一测】Java阶段二第四周学习

目录 1、request中的getParameter(String name)方法的功能是 2、request中的getParameter(String name)方法的功能是 3、spring创建bean对象没有以下哪个方式 4、spring依赖注入中没有以下哪个方式 5、RequestParam、RequestBody、PathVariable的应用场景及区别 6、Cooki…...

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第四部分:微服务架构

本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第四部分&#xff1a;微服务架构前言典型的微服务架构是什么样的微服务的优势 微服务最佳实践在开发微服务时&#xff0c;我们需要遵循以下最佳实践&#xff1a; 微服务通常使用什么技术堆栈…...

顺序表ArrayList

作者简介&#xff1a; zoro-1&#xff0c;目前大二&#xff0c;正在学习Java&#xff0c;数据结构等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 顺序表 概念Arraylist构造方法相关方法遍历操作 自…...

python软件安装技巧

安装软件时候加上源地址去安装&#xff0c;快速稳 pip install openni -ihttps://pypi.tuna.tsinghua.edu.cn/simple...

解析Apache Kafka中的事务机制

这篇博客文章并不是关于使用事务细节的教程&#xff0c;我们也不会深入讨论设计细节。相反&#xff0c;我们将在适当的地方链接到JavaDocs或设计文档&#xff0c;以供希望深入研究的读者使用。 为什么交易? 我们在Kafka中设计的事务主要用于那些显示“读-进程-写”模式的应用…...

Vue虚拟节点和渲染函数

1.虚拟节点 虚拟节点&#xff08;dom&#xff09;本质上就是一个普通的JS对象&#xff0c;用于描述视图的界面结构 2.渲染函数render()&#xff1a;接收一个 createElement()函数创建的VNode Vue.component("board", {render: function(createElement) {return cr…...

后台交互-首页->与后台数据进行交互,wsx的使用

与后台数据进行交互wsx的使用 1.与后台数据进行交互 // index.js // 获取应用实例 const app getApp() const apirequire("../../config/app.js") const utilrequire("../../utils/util.js") Page({data: {imgSrcs:[{"img": "https://cd…...

【微服务保护】Sentinel 流控规则 —— 深入探索 Sentinel 的流控模式、流控效果以及对热点参数进行限流

文章目录 前言一、快速掌握 Sentinel 的使用1.1 什么是簇点链路1.2 Sentinel 的简单使用示例 二、Sentinel 流控模式2.1 直接模式2.2 关联模式2.3 链路模式 三、流控效果3.1 快速失败3.2 预热模式3.3 排队等待 四、对热点参数的流控4.1 热点规则4.2 热点规则演示 前言 微服务架…...

ZXing.Net 的Core平台生成二维码

一、引用 二、代码 帮助类 /// <summary>/// ZXing.NET 二维码帮助类/// </summary>public class ZXingHelper{/// <summary>/// 站点二维码的目录/// </summary>private static string QRCodeDirectory "QRCode";/// <summary>/// 使…...

【C++】假设给类分配的是栈的空间,那么计算机是如何访问栈中不同位置的对象的数据的呢?

2023年10月22日&#xff0c;周日上午 当在栈上创建一个对象时&#xff0c;计算机会为该对象分配一块连续的内存空间。该内存空间的位置在栈帧中&#xff0c;栈帧是用来存储函数调用信息和局部变量的一块内存区域。 栈帧中包含一个指针&#xff0c;称为栈指针&#xff08;stack…...

iOS使用CoreML运用小型深度神经网络架构对图像进行解析

查找一个图片选择器 我用的是ImagePicker 项目有点老了&#xff0c;需要做一些改造&#xff0c;下面是新的仓库 platform :ios, 16.0use_frameworks!target learnings dosource https://github.com/CocoaPods/Specs.gitpod ImagePicker, :git > https://github.com/KevinS…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...