访问控制技术原理与应用
目录
- 访问控制概述
- 实现访问控制目标
- 访问控制参考模型
- 常见访问控制模型
- 访问控制模型-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岁,肯定拒绝,这个是基于属性的访问控制,相对而言,他会比较灵活,可以根据我们主客体的属性去自定义,第一个是自主访问控制,第二个是强访问控制,第三个基于决策的访问控制
相关文章:
访问控制技术原理与应用
目录 访问控制概述实现访问控制目标访问控制参考模型常见访问控制模型访问控制模型-DAC自主访问控制访问控制模型-MAC强制访问控制访问控制模型-RBAC基于角色的访问控制访问控制模型-ABAC基于属性的访问控制 访问控制概述 访问控制是对资源对象的访问授权控制的方法以及运行机…...
详解Rust标准库:Vec向量
查看本地官方文档 安装rust后运行 rustup doc查看The Standard Library即可获取标准库内容 std::vec::Vec定义 Vec除了可以作为动态数组还可以模拟为一个栈,仅使用push、pop即可 Vec默认分配在堆上,对于一个容量为4,有两个元素a、b的向量…...
网络原理(初一,TCP/IP五层(或四层)模型面试问题)
TCP/IP五层(或四层)模型 TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。 TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。 • 应⽤层:负责…...
Unity引擎材质球残留贴图引用的处理
大家好,我是阿赵。 这次来分享一下Unity引擎材质球残留贴图引用的处理 一、 问题 在使用Unity调整美术效果的时候,我们很经常会有这样的操作,比如: 1、 同一个材质球切换不同的Shader、 比如我现在有2个Shader,…...
Flutter鸿蒙next中封装一个列表组件
1. 创建Flutter项目 首先,确保你已经安装了Flutter SDK,并创建一个新的Flutter项目: flutter create podcast_app cd podcast_app2. 封装列表组件 我们将在lib目录下创建一个新的文件,命名为podcast_list.dart,用于…...
层次与网络的视觉对话:树图与力引导布局的双剑合璧
目录 目的内容树图绘制目的步骤参考代码结果与分析 力引导布局算法目的参考代码结果与分析 总结 目的 掌握常用可视化软件与工具:学习和熟练使用常用的数据可视化软件和工具,如Matplotlib、Seaborn、Plotly、Tableau等。这些工具提供了用于创建图表、图…...
python将数据集中所有文件名升序制作txt文件(医学影像)
import os import re # 设定图像文件所在的路径 img_path ./2d/images/ #需修改路径 # 获取该路径下的所有文件名 img_list os.listdir(img_path) # 过滤出以.nii结尾的文件名 nii_list [f for f in img_list if f.endswith(.nii)] # 使用正则表达式从文件名中提…...
【The Art of Unit Testing 3_自学笔记06】3.4 + 3.5 单元测试核心技能之:函数式注入与模块化注入的解决方案简介
文章目录 3.4 函数式依赖注入技术 Functional injection techniques3.5 模块化依赖注入技术 Modular injection techniques 写在前面 上一篇的最后部分对第三章后续内容做了一个概括性的梳理,并给出了断开依赖项的最简单的实现方案,函数参数值注入法。本…...
【VSCode】配置
安装插件 C vscode-icons gdb调试 https://www.bilibili.com/video/BV15U4y1x7b2/?spm_id_from333.999.0.0&vd_sourcedf0ce73d9b9b61e6d4771898f1441f7f https://www.bilibili.com/video/BV1pU4y1W74Z?spm_id_from333.788.recommend_more_video.-1&vd_sourcedf0…...
Linux 常用命令整理大全及命令使用心得
本文章是为了总结自己用过的命令,以及一些心得,网上有很多类似的,但自己总结才能更好的理解。 文章目录 一、文件和目录管理01、 ls :列出目录内容02、cd:更改当前目录03、pwd:显示当前工作目录04、mkdir&a…...
计算器的实现
计算器的⼀般实现 计算器的一般实现:优化:使⽤函数指针数组的实现: 计算器的一般实现: #include <stdio.h> int add(int a, int b) {return a b; } int sub(int a, int b) {return a - b; } int mul(int a, int b) {retur…...
这个工具帮你快速实现数据集成和同步
在这个信息爆炸的时代,数据的流动和同步逐渐成为企业运营的命脉。然而,企业正面临着前所未有的数据挑战,无论是跨地域的分公司协作,还是云服务与本地数据库的交互,数据的集成、清洗、转换和加载(ETL&#x…...
论文阅读:Computational Long Exposure Mobile Photography (一)
这篇文章是谷歌发表在 2023 ACM transaction on Graphic 上的一篇文章,介绍如何在手机摄影中实现长曝光的一些拍摄效果。 Abstract 长曝光摄影能拍出令人惊叹的影像,用运动模糊来呈现场景中的移动元素。它通常有两种模式,分别产生前景模糊或…...
项目解决方案:多地连锁药店高清视频监控系统建设解决方案(设计方案)
目录 一.项目背景 1.1背景描述 1.2需求分析 二.设计依据和建设目标 2.1设计依据 2.2建设目标 三.系统设计实现 3.1系统方案设计 3.2网络组网说明 四.建设系统特色 4.1安全性 4.2节约建设成本 4.3原有资源的再利用 4.4可扩展性 五.产品介绍 5.1概述 5.2设备…...
utf-8、pbkdf2_sha
#utf-8加密、解密 import base64 base64.b64encode(lienlien123.encode(utf-8)) bbGllbmxpZW4xMjM base64.b64decode(bbGllbmxpZW4xMjM.decode(utf-8)) blienlien123 #pbkdf2_sha加密,校验 # 该种密码在不同时刻会有产生不同的加密结果 # 该加密方法使用的是散列…...
Java之包,抽象类,接口
目录 包 导入包 静态导入 将类放入包 常见的系统包 抽象类 语法规则 注意事项: 抽象类的作用 接口 实现多个接口 接口间的继承 接口使用实例 (法一)实现Comparable接口的compareTo()方法 (法二)实现Comp…...
HarmonyOS鸿蒙开发入门,常用ArkUI组件学习(二)
书接上回,让我们继续来学习ArkUI的其他组件 目录,可以点击跳转到想要了解的组件详细内容 组件四:Button组件五:Slider组件六: Column & Row组件七:循环控制组件八: List 组件四:…...
斩!JavaScript语法进阶
一、DOM 概述 DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model)。当网页被加载时,浏览器将网页转为一个DOM,并用JS进行各种操作。比如:改变页面中的HTML 元素及其属性&am…...
UFO:Windows操作系统的具象智能代理
近年来,随着AI技术的发展,智能代理在各种应用中扮演着越来越重要的角色。微软推出的UFO(User-Focused Operator)正是这样一个出色的多代理框架,旨在通过无缝导航和操作,满足用户在Windows操作系统中跨多个应…...
win10/11无休眠设置和断电后电池模式自动休眠而不是睡眠-用以省电
1、打开休眠设置选项 打开控制面板\所有控制面板项\电源选项\ 左侧的选择电源按钮的功能 默认状态没有休眠 1、管理员权限打开cmd或者power shell 2、输入一下指令,打开休眠选项 powercfg -hibernate on关闭后重新打开 控制面板\所有控制面板项\电源选项\左侧的选…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
FTXUI::Dom 模块
DOM 模块定义了分层的 FTXUI::Element 树,可用于构建复杂的终端界面,支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...
