如何深入理解引用监视器,安全标识以及访问控制模型与资产安全之间的关系
一、核心概念总结
-
安全标识(策略决策的 “信息载体)
-
是主体(如用户、进程)和客体(如文件、数据库、设备)的安全属性,用于标记其安全等级、权限、访问能力或受保护级别,即用于标识其安全等级、权限范围或约束条件。
-
是访问控制的 “基础数据”,为系统判断 “主体是否有权访问客体” 提供依据。
-
典型形式:
- 标签(Labels):如 MAC 中的分级标签(绝密>机密>秘密)、完整性标签(高>中>低);
- 标识符(Identifiers):如访问权限列表(ACL)中的用户ID、角色 ID、安全组。
- 属性(Attributes):如用户部门、设备位置、访问时间等动态属性。
-
-
访问控制模型(安全策略的规则集)
-
是一套形式化或系统化的规则集合,定义 “主体如何访问客体”,是引用监视器执行决策的依据,定义了如何利用安全标识来制定和实施访问策略。
-
访问控制分类与安全标识的关联:
- 强制访问控制(MAC):核心依赖安全标识(如主体 / 客体的安全标签),通过标签的层级关系(如 “机密”“绝密”)强制实施访问规则(如 “上读下写”);即主体的安全等级必须高于或等于客体的敏感度标签才能访问(如 “向下读,向上写”);
- 自主访问控制(DAC):基于主体身份(如用户 ID)或所有权(如文件属主),安全标识表现为 ACL 中的授权条目;
- 基于角色的访问控制(RBAC):安全标识体现为 “角色”(如 “管理员”“普通用户”),主体通过角色间接获得权限;即主体的角色决定其能访问的客体(如 “管理员” 角色拥有文件修改权限)。
- 属性基访问控制(ABAC):安全标识扩展为多维度属性(如主体部门、客体创建时间、环境 IP),规则基于属性组合动态判断。
-
-
引用监视器(访问控制的 “仲裁者)
- 是一个抽象的 “逻辑组件”,负责实时监控所有对系统资源(资产)的访问请求,根据访问控制模型和安全标识执行访问决策。通俗来讲负责对所有主体(如用户、进程)对客体(如文件、内存)的访问请求进行 “调解”,确保访问符合安全策略。
- 关键特性:
- 完整性:必须被正确实现且无法绕过;
- 隔离性:运行在安全的环境中,避免被恶意篡改;
- 可验证性:其设计和实现可被形式化验证,确保策略执行的一致性。
二:三者的逻辑关系分析
抽象层:
引用监视器(概念框架) ↓ 定义“调解访问”的机制(TRI原则)
策略层:
访问控制模型(规则集合) ↓ 依赖安全标识作为“策略参数”
实现层:
安全标识(属性载体) ↓ 被引用监视器用于具体访问决策
1. 引用监视器通过安全标识执行访问控制模型规则
核心流程(以强制访问MAC为例):
- 主体发起访问请求(如进程读取文件);
- 引用监视器捕获请求,提取主体安全标识(如进程的安全标签 “机密级”)和客体安全标识(如文件的标签 “秘密级”);
- 应用访问控制模型规则:根据 MAC 的 “简单安全条件”(主体标签≥客体标签时允许读取),判断是否允许访问;
- 执行决策:符合规则则放行,否则拒绝。
不同访问控制模型中安全标识的作用:
| 访问控制模型 | 安全标识的表现形式 | 引用监视器的检查逻辑 |
|---|---|---|
| MAC | 分级标签(如 Confidential/Secret) | 主体标签是否 “支配” 客体标签(如满足安全级 + 范畴包含) |
| DAC | 用户 ID/ACL 授权条目 | 主体 ID 是否在客体的 ACL 允许列表中 |
| RBAC | 角色 ID(如 Role=Admin) | 主体是否拥有目标操作对应的角色权限 |
| ABAC | 多维度属性(如 Attr=“财务部”+Time=9-18) | 属性组合是否满足策略表达式(如 “部门 = 财务部且时间在工作时段”) |
2. 安全标识作为访问控制模型的 “策略输入”
在 MAC 中的核心作用:
- 安全标识是 MAC 的 “灵魂”,如 Bell-LaPadula 模型通过主体 / 客体的标签实现 “信息流向控制”(不允许高保密级信息流向低保密级主体);
- 引用监视器通过比较标签的 “安全级” 和 “范畴”(如 “绝密级 + 国防部范畴”),确保访问符合 “不向上写、不向下读” 规则。
在 RBAC 中的间接作用:
- 安全标识表现为 “角色”,引用监视器通过 “角色 - 权限映射表” 判断主体的角色是否具备目标操作权限(如 “角色 = 数据库管理员” 是否有权修改表结构)。
在 ABAC 中的动态扩展:
- 安全标识突破静态标签,变为动态属性(如 “设备是否通过合规检查”“用户是否处于可信网络”),引用监视器需实时获取这些属性并计算策略表达式。
3. 引用监视器对安全标识的依赖与约束
(1)完整性要求:
引用监视器必须确保安全标识不可被未授权篡改(如 MAC 标签由系统强制分配,用户无法自行修改),否则策略失效。(2)最小化原则:
安全标识需仅包含访问控制模型所需的最小必要信息(如 MAC 中只需标签层级,无需额外属性),避免冗余导致的复杂度和漏洞。(3)可验证性基础:
安全标识的格式和逻辑必须清晰(如标签的层级关系可形式化定义),以便引用监视器的决策逻辑能被数学验证(如通过形式化方法证明 Bell-LaPadula 模型的安全性)。总结:
- 策略执行的一致性:
引用监视器通过统一检查安全标识,确保所有访问控制模型的规则被一致执行,避免 “策略孤岛”。- 安全边界的清晰性:
安全标识明确划分主体与客体的安全属性,引用监视器基于这些属性快速决策,降低系统攻击面。- 合规性与可审计性:
安全标识的标准化(如符合 FIPS 140-2、GDPR 等规范)使引用监视器的决策过程可追溯,满足合规要求。
三、三者与资产安全的关系
1. 安全标识:资产安全的 “数字身份证”
- 资产分类与保护的基础:通过为客体(资产)分配安全标识(如敏感度标签、权限属性),明确其重要性和受保护级别;主体的安全标识(如权限、角色)则限制其访问能力。
- 示例:将数据库中的用户数据标记为 “敏感个人信息”(客体标识),并为访问该数据的应用进程分配 “数据读取” 权限(主体标识),确保只有符合标识的主体才能接触资产。
2. 访问控制模型:资产安全的 “策略引擎”
- 策略落地的框架:基于安全标识制定规则,定义 “谁(主体)能以何种方式(操作)访问什么(客体)”,防止未授权或越权访问。
- 资产分层保护:不同模型适用于不同场景,例如:
- MAC 用于高安全等级场景(如军事系统),通过严格的标签匹配保护核心资产;
- RBAC 用于企业环境,通过角色权限划分避免员工过度访问业务资产。
- 风险控制:模型规则可限制资产的暴露面,例如 “最小权限原则” 通过访问控制模型落地,确保主体仅拥有完成任务所需的最小权限。
3. 引用监视器:资产安全的 “执行网关”
- 实时防护的核心:作为所有访问请求的 “守门人”,在主体试图访问客体时,强制检查双方的安全标识是否符合访问控制模型的规则。
- 防止攻击的最后一道防线:即使攻击者绕过部分安全机制(如获取了主体权限),引用监视器仍会基于标识和模型规则阻止非法访问(例如:低权限用户试图修改高敏感度文件时被阻断)。
- 审计与追溯:记录访问决策过程,为资产安全事件的审计和追责提供依据。
四、三者的协同工作机制
- 安全标识为 “输入”:主体和客体的标识(如标签、权限、角色)被输入到访问控制模型中,作为决策的条件。
- 访问控制模型为 “逻辑”:模型根据安全策略(如 “机密数据只能被授权用户读取”),将安全标识转化为具体的允许 / 拒绝规则(如 “主体 A 的 clearance ≥ 客体 B 的敏感度标签”)。
- 引用监视器为 “执行体”:在每次访问请求时,引用监视器检索主体和客体的安全标识,调用访问控制模型的规则进行验证,最终决定是否允许访问。
示例流程:
用户尝试访问加密文档流程如下:
用户(主体)的安全标识:角色 “普通员工”,权限 “文件读取”;
文档(客体)的安全标识:标签 “内部机密”,允许访问的角色列表 “普通员工、经理”;
访问控制模型(RBAC)规则:“角色拥有对应权限即可访问”;
引用监视器检查:主体角色在客体允许的列表中,且具备 “读取” 权限 → 允许访问。
若用户试图修改文档(权限不匹配),引用监视器则根据模型规则拒绝。
四、对资产安全的价值
- 机密性(Confidentiality):通过安全标识的标签匹配(如 MAC 模型)和引用监视器的强制检查,防止资产被未授权主体访问。
- 完整性(Integrity):访问控制模型中的 “写规则”(如 Biba 模型的 “不允许低完整性主体修改高完整性客体”)结合引用监视器的执行,避免资产被非法篡改。
- 可用性(Availability):通过合理的访问控制规则(如限制并发访问量)和引用监视器的流量控制,防止恶意耗尽资源(如 DDoS 攻击),保障资产可用。
- 合规性:三者协同实现安全策略(如 GDPR 的数据访问控制要求),确保资产处理符合法规标准。
五、总结
安全标识是资产安全的 “数据基础”,访问控制模型是 “策略大脑”,引用监视器是 “执行卫士”。三者缺一不可:
- 缺少安全标识,访问控制失去判断依据;
- 缺少访问控制模型,安全策略无法系统化落地;
- 缺少引用监视器,规则无法被强制实施,存在绕过风险。
在资产安全架构中,需从设计阶段将三者整合:
- 为资产和主体定义清晰的安全标识体系;
- 选择适合业务场景的访问控制模型(单一或混合模型);
- 在系统核心层实现引用监视器(如操作系统内核、数据库引擎),确保所有访问请求被监控和验证。
通过这种协同,形成 “标识定义→策略制定→强制执行” 的闭环,有效抵御未授权访问、越权操作、数据泄露等风险,最终保障资产的安全与合规。
相关文章:
如何深入理解引用监视器,安全标识以及访问控制模型与资产安全之间的关系
一、核心概念总结 安全标识(策略决策的 “信息载体) 是主体(如用户、进程)和客体(如文件、数据库、设备)的安全属性,用于标记其安全等级、权限、访问能力或受保护级别,即用于标识其安全等级、权限范围或约束…...
Linux的Socket开发补充
是listen函数阻塞等待连接,还是accept函数阻塞等待连接? 这两个函数的名字,听起来像listen一直在阻塞监听,有连接了就accept,但其实不是的。 调用listen()后,程序会立即返回,继续执行后续代码&a…...
Flutter异常Couldn‘t find dynamic library in default locations
Flutter项目在Windows系统使用ffigen生成代码时报下面的错误: [SEVERE] : Couldnt find dynamic library in default locations. [SEVERE] : Please supply one or more path/to/llvm in ffigens config under the key llvm-path. Unhandled exception: Exception: …...
Spring-AOP分析
Spring分析-AOP 1.案例引入 在上一篇文章中,【Spring–IOC】【https://www.cnblogs.com/jackjavacpp/p/18829545】,我们了解到了IOC容器的创建过程,在文末也提到了AOP相关,但是没有作细致分析,这篇文章就结合示例&am…...
[特殊字符] Prompt如何驱动大模型对本地文件实现自主变更:Cline技术深度解析
在AI技术快速发展的今天,编程方式正在经历一场革命性的变革。从传统的"人写代码"到"AI辅助编程",再到"AI自主编程",开发效率得到了质的提升。Cline作为一款基于VSCode的AI编程助手,通过其独特的pro…...
【专业解读:Semantic Kernel(SK)】大语言模型与传统编程的桥梁
目录 Start:什么是Semantic Kernel? 一、Semantic Kernel的本质:AI时代的操作系统内核 1.1 重新定义LLM的应用边界 1.2 技术定位对比 二、SK框架的六大核心组件与技术实现 2.1 内核(Kernel):智能任务调度中心 2…...
PHP 8 中的 Swow:高性能纯协程网络通信引擎
一、什么是 Swow? Swow 是一个高性能的纯协程网络通信引擎,专为 PHP 设计。它结合了最小化的 C 核心和 PHP 代码,旨在提供高性能的网络编程支持。Swow 的核心目标是释放 PHP 在高并发场景下的真正潜力,同时保持代码的简洁和易用性…...
你学会了些什么211201?--http基础知识
概念 HTTP–Hyper Text Transfer Protocol,超文本传输协议;是一种建立在TCP上的无状态连接(短连接)。 整个基本的工作流程是:客户端发送一个HTTP请求(Request ),这个请求说明了客户端…...
每天学一个 Linux 命令(29):tail
可访问网站查看,视觉品味拉满: http://www.616vip.cn/29/index.html tail 命令用于显示文件的末尾内容,默认显示最后 10 行。它常用于实时监控日志文件或查看文件的尾部数据。以下是详细说明和示例: 命令格式 tail [选项] [文件...]常用选项 选项描述-n <NUM> …...
【形式化验证基础】活跃属性Liveness Property和安全性质(Safety Property)介绍
文章目录 一、Liveness Property1、概念介绍2、形式化定义二、Safety Property1. 定义回顾2. 核心概念解析3. 为什么强调“有限前缀”4. 示例说明4.1 示例1:交通信号灯系统4.2 示例2:银行账户管理系统5. 实际应用的意义三. 总结一、Liveness Property 1、概念介绍 在系统的…...
技工院校无人机专业工学一体化人才培养方案
随着无人机技术在农业植保、地理测绘、应急救援等领域的深度应用,行业复合型人才缺口持续扩大。技工院校作为技能型人才培养主阵地,亟需构建与行业发展同步的无人机专业人才培养体系。本文基于"工学一体化"教育理念,从课程体系、实…...
PI0 Openpi 部署(仅测试虚拟环境)
https://github.com/Physical-Intelligence/openpi/tree/main 我使用4070tisuper, 14900k,完全使用官方默认设置,没有出现其他问题。 目前只对examples/aloha_sim进行测试,使用docker进行部署, 默认使用pi0_aloha_sim模型(但是文档上没找到对应的&…...
计算机视觉——利用AI幻觉检测图像是否是生成式算生成的图像
概述 俄罗斯的新研究提出了一种非常规方法,用于检测不真实的AI生成图像——不是通过提高大型视觉-语言模型(LVLMs)的准确性,而是故意利用它们的幻觉倾向。 这种新方法使用LVLMs提取图像的多个“原子事实”,然后应用自…...
性能测试工具和JMeter功能概要
主流性能测试工具 LoadRunner JMeter [本阶段学习] 1.1 LoadRunner HP LoadRunner是一种工业级标准性能测试负载工具,可以模拟上万用户实施测试,并在测试时可实时检测应用服务器及服务器硬件各种数据,来确认和查找存在的瓶颈支持多协议&am…...
《理解 Java 泛型中的通配符:extends 与 super 的使用场景》
大家好呀!👋 今天我们要聊一个让很多Java初学者头疼的话题——泛型通配符。别担心,我会用最通俗易懂的方式,带你彻底搞懂这个看似复杂的概念。准备好了吗?Let’s go! 🚀 一、为什么我们需要泛型通配符&…...
C#学习第17天:序列化和反序列化
什么是序列化? 定义:序列化是指把对象转换为一种可以轻松存储或传输的格式,如JSON、XML或二进制格式。这个过程需要捕获对象的类型信息和数据内容。用途:使得对象可以持久化到文件、发送至网络、或存储在数据库中。 什么是反序列…...
FlaskRestfulAPI接口的初步认识
FlaskRestfulAPI 介绍 记录学习 Flask Restful API 开发的过程 项目来源:【Flask Restful API教程-01.Restful API介绍】 我的代码仓库:https://gitee.com/giteechaozhi/flask-restful-api.git 后端API接口实现功能:数据库访问控制…...
CSS预处理工具有哪些?分享主流产品
目前主流的CSS预处理工具包括:Sass、Less、Stylus、PostCSS等。其中,Sass是全球使用最广泛的CSS预处理工具之一,以强大的功能、灵活的扩展性以及完善的社区生态闻名。Sass通过增加变量、嵌套、混合宏(mixin)等功能&…...
微信小程序中,将搜索组件获取的值传递给父页面(如 index 页面)可以通过 自定义事件 或 页面引用 实现
将搜索组件获取的值传递给父页面(如 index 页面)可以通过 自定义事件 或 页面引用 实现 方法 1:自定义事件(推荐) 步骤 1:搜索组件内触发事件 在搜索组件的 JS 中,当获取到搜索值时,…...
深度学习预训练和微调
目录 1. 预训练(Pre-training)是什么? 2. 微调(Fine-tuning)是什么? 3. 预训练和微调的对象 4. 特征提取如何实现? 预训练阶段: 微调阶段: 5. 这样做的作用和意义 …...
AI 速读 SpecReason:让思考又快又准!
在大模型推理的世界里,速度与精度往往难以兼得。但今天要介绍的这篇论文带来了名为SpecReason的创新系统,它打破常规,能让大模型推理既快速又准确,大幅提升性能。想知道它是如何做到的吗?快来一探究竟! 论…...
Qt通过ODBC和QPSQL两种方式连接PostgreSQL或PolarDB PostgreSQL版
一、概述 以下主要在Windows下验证连接PolarDB PostgreSQL版(阿里云兼容 PostgreSQL的PolarDB版本)。Linux下类似,ODBC方式则需要配置odbcinst.ini和odbc.ini。 二、代码 以下为完整代码,包含两种方式连接数据库,并…...
MobaXterm连接Ubuntu(SSH)
1.查看Ubuntu ip 打开终端,使用指令 ifconfig 由图可知ip地址 2.MobaXterm进行SSH连接 点击session,然后点击ssh,最后输入ubuntu IP地址以及用户名...
Lambda 函数与 peek 操作的使用案例
Lambda 函数和 peek 操作是 Java 8 Stream API 中非常有用的特性,下面我将介绍它们的使用案例。 Lambda 函数使用案例 Lambda 表达式是 Java 8 引入的一种简洁的匿名函数表示方式。 集合操作 List<String> names Arrays.asList("Alice", "B…...
C# 的 字符串插值($) 和 逐字字符串(@) 功能
这段代码使用了 C# 的 字符串插值($) 和 逐字字符串() 功能,并在 SQL 语句中动态拼接变量。下面详细解释它们的用法: 1. $(字符串插值) $ 是 C# 的 字符串插值 符号,允许…...
软考 中级软件设计师 考点知识点笔记总结 day13 数据库系统基础知识 数据库模式映像 数据模型
文章目录 数据库系统基础知识6.1 基本概念6.1.1 DBMS的特征与分类 6.2 数据库三级模式两级映像6.3 数据库的分析与设计过程6.4 数据模型6.4.1 ER模型6.4.2 关系模型 数据库系统基础知识 基本概念 数据库三级模式两级映像 数据库的分析与设计过程 数据模型 关系代数 数据库完整…...
蓝桥杯2024省A.成绩统计
蓝桥杯2024省A.成绩统计 题目 题目解析与思路 题目要求返回至少要检查多少个人的成绩,才有可能选出k名同学,他们的方差小于一个给定的值 T 二分枚举答案位置,将答案位置以前的数组单独取出并排序,然后用k长滑窗O(1)计算方差 问…...
Mac mini 安装mysql数据库以及出现的一些问题的解决方案
首先先去官网安装一下mysql数据库,基本上都是傻瓜式安装的流程,我也就不详细说了。 接下来就是最新版的mysql安装的时候,他就会直接让你设置一个新的密码。 打开设置,拉到最下面就会看到一个mysql的图标: 我设置的就是…...
俄罗斯方块-简单开发版
一、需求分析 实现了一个经典的俄罗斯方块小游戏,主要满足以下需求: 1.图形界面 使用 pygame 库创建一个可视化的游戏窗口,展示游戏的各种元素,如游戏区域、方块、分数等信息。 2.游戏逻辑 实现方块的生成、移动、旋转、下落和锁…...
STM32的启动方式
目录 一、从主闪存存储器启动(Main Flash Memory) 二、从系统存储器启动(System Memory) 三、从内置SRAM启动(Embedded SRAM) 四、从外挂存储介质启动的实现方式 1. 存储介质选型 2. 硬件连接 3. 引…...
