【网络与系统安全】强制访问控制——BLP模型

一、模型背景与定义

BLP(Bell-LaPadula)模型是由David Bell和Len Adula在1973年提出的强制访问控制(MAC)模型,是最早的计算机安全模型之一,主要用于解决多用户系统中的信息机密性保护问题,尤其适用于军事和政府等高安全需求领域。

二、核心安全属性与原则

BLP模型基于两种核心安全属性和三大安全原则构建:

(一)安全属性

  1. 安全级别(Security Levels)
    • 系统中每个主体(如用户、进程)和客体(如文件、数据库)都被分配一个安全级别,形成严格的层次结构,常见级别如:绝密(Top Secret)>秘密(Secret)>机密(Confidential)>公开(Unclassified)。
  2. 范畴(Categories)
    • 在同一安全级别下,通过范畴(如项目组、部门)进一步细分,确保信息仅在特定范围内共享,例如“绝密”级别可包含“核武器项目”“卫星计划”等范畴。

(二)三大安全原则

  1. 简单安全特性(Simple Security Property)——下读(No Read Up)
    • 主体只能读取安全级别小于或等于自身级别的客体信息。例如,秘密级用户不能读取绝密级文件,但可以读取机密级或公开级文件。
  2. *-特性(Star Property)——上写(No Write Down)
    • 主体只能向安全级别大于或等于自身级别的客体写入信息。例如,秘密级用户不能向公开级文件写入内容,但可以向秘密级或绝密级文件写入。
  3. 自主安全特性(Discretionary Security Property)
    • 基于访问控制列表(ACL)实现,作为强制访问控制的补充,允许主体在满足强制规则的前提下,自主管理其拥有客体的访问权限。

在这里插入图片描述

三、数学模型与形式化定义

BLP模型通过形式化语言严格定义安全规则,核心元素包括:

  • 主体集合(S):用户、进程等主动实体
  • 客体集合(O):文件、数据库等被动实体
  • 安全级别函数(f):f(s)表示主体s的安全级别,f(o)表示客体o的安全级别
  • 范畴集合(C):每个安全级别包含的范畴集合
  • 访问模式集合(A):{读(R)、写(W)、执行(X)、追加(A)、控制(C)}

安全条件形式化表达

  1. 简单安全特性:对于主体s和客体o,若s能读o,则f(o) ≤ f(s)且范畴(o) ⊆ 范畴(s)
  2. *-特性:对于主体s和客体o,若s能写o,则f(o) ≥ f(s)且范畴(s) ⊆ 范畴(o)

四、模型优缺点分析

优点缺点
1. 严格保障信息机密性,防止高密级信息向低级别泄露1. 仅关注机密性,未考虑完整性和可用性(与Biba模型形成互补)
2. 形式化定义清晰,便于理论验证和系统设计2. 灵活性不足,主体和客体的安全级别变更复杂,难以适应动态环境
3. 适用于对安全性要求极高的静态系统3. 不支持主体权限的动态调整,如临时授权场景

五、与其他访问控制模型的对比

  • 与DAC(自主访问控制)对比:DAC基于用户自主设置权限(如Windows文件权限),而BLP通过系统强制规则控制,用户无法绕过安全级别限制。
  • 与RBAC(角色-based访问控制)对比:RBAC基于角色分配权限(如“管理员”“普通用户”),适合企业场景;BLP则基于密级和范畴,更适合分级保密场景。
  • 与Biba模型对比:Biba模型关注信息完整性,遵循“向上读、向下写”原则,与BLP形成机密性-完整性的互补关系。

六、隐蔽信道

在这里插入图片描述
这是隐蔽通道的例子 。隐蔽通道是一种在安全模型下,被设计用于违反安全策略传输信息的通信信道。以下是图中流程解析:

  1. 创建文件(/data):绝密进程A创建文件/data ,这是信息传输的基础载体。
  2. 公开进程B创建并写入 /control:公开进程B创建文件/control并写入内容,/control在这里起到控制信号传递的作用。
  3. 绝密进程A观察 /control文件长度:绝密进程A通过观察/control文件长度增长获取同步信号,以此知晓公开进程B已完成相关操作,为后续信息传递做准备。
  4. 绝密进程A锁定和解锁 /data文件传递信息:绝密进程A利用锁定和解锁/data文件来编码信息,如解锁代表发送1,锁定代表发送0 。
  5. 公开进程B尝试写入 /data判断接收信息:公开进程B尝试写入/data文件,根据写入成功(接收1)或失败(接收0)来解读绝密进程A传递的信息。

在假定场景中,绝密进程A被植入恶意代码(如特洛伊木马),恶意代码可利用这种隐蔽通道绕过安全策略,将绝密信息以看似正常文件操作的方式传递给公开进程B,从而造成信息泄露。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913089.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTPS详解:原理 + 加解密过程 + 面试问答

一、HTTP 与 HTTPS 的区别 项目HTTPHTTPS全称HyperText Transfer ProtocolHyperText Transfer Protocol Secure端口80443协议层应用层应用层 TLS(安全层)加密方式明文传输加密传输(TLS)安全性易被劫持、中间人攻击可加密、防篡改…

Python-GUI-wxPython-控件

1 需求 2 接口 3.* 控件:wx.StaticText import wxclass MainFrame(wx.Frame):def __init__(self, *args, **kwargs):super(MainFrame, self).__init__(*args, **kwargs)self.init_ui()self.Center()self.Maximize()def init_ui(self):static_text wx.StaticText(pa…

3-1 PID算法改进(积分部分)

目录 1、积分限幅 2、积分分离 3、变速积分 在位置式PID的基础上进行改进 定速用PI控制,定位置用PD控制 1、积分限幅 在定速控制上体现 第一种方法确定上下限方法:Out最大时,除以Ki,得到一个值,上限不能超过这个…

Linux探秘坊-------13.进程间通信

1.进程间通信⽬的 2.管道 2.1 匿名管道 -----通常用来实现 父子通信 创建子进程时,需要把父进程的进程内容全部拷贝一份,但文件管理是不需要拷贝的 但是我们把父进程的文件描述符表给拷贝下来了,文件描述符表里是一堆指针,他们仍…

深入理解Vapnik-Chervonenkis(VC)维度:机器学习泛化能力的理论基础

引言 通过本篇阅读,从理论上去理解为什么: 要选择复杂度低的模型 过拟合的时候,增加样本量有用 以及如何根据样本量选择特征个数 PAC机器学习框架, VC 维是机器学习最重要的基础理论之一 在机器学习领域,模型泛化能力是衡量算法性能的核心指标…

redis持久化-纯缓存模式

redis持久化-纯缓存模式 文档 redis单机安装redis常用的五种数据类型redis数据类型-位图bitmapredis数据类型-基数统计HyperLogLogredis数据类型-地理空间GEOredis数据类型-流Streamredis数据类型-位域bitfieldredis持久化-RDBredis持久化-AOFredis持久化-RDBAOF混合模式 官…

HTML DOM 访问

HTML DOM 访问 引言 HTML DOM(文档对象模型)是现代Web开发中不可或缺的一部分。它允许开发者通过JavaScript操作HTML文档中的元素,从而实现丰富的交互效果。本文将详细介绍HTML DOM的访问方法,包括如何获取元素、如何修改元素属…

双系统如何做接口认证-V1

现有A系统,B系统,A系统启动的时候调用B系统的注册接口API1(把A系统配置信息注册到B系统),A系统定时向B系统接口AP2发送心跳信息,B系统根据业务情况,调用A系统的业务接口AP3,请设计两…

Wireshark TS | 诡异的光猫网络问题

前言 来自于朋友分享的一个案例,最后定位的原因是光猫问题,而类似这类的设备所产生的网络问题,也曾碰到过两三次,但这一次的数据包现象挺特别,分析思路和过程也有所不同,故记录分享一下。 问题背景 用户所反…

mac mini m4安装node.js@16以下版本方法

设备:mac mini m4 目的:使用nvm 安装 node.js14.x 版本 结果:安装不上 原因:Node.js 14 发布时,Apple Silicon(M1/M2)尚未普及,因此 没有官方预编译的 macOS ARM64 版本 处理方案&am…

系统安全设计方案,软件系统安全设计方案

1.1 总体设计 1.1.1 设计原则 1.2 物理层安全 1.2.1 机房建设安全 1.2.2 电气安全特性 1.2.3 设备安全 1.2.4 介质安全措施 1.3 网络层安全 1.3.1 网络结构安全 1.3.2 划分子网络 1.3.3 异常流量管理 1.3.4 网络安全审计 1.3.5 网络访问控制 1.3.6 完整性检查 1.…

Python入门Day3

Python的基础数据类型 1.Python中提供了六种内置的数据类型,一般用于存储数据: –数值Number –字符串String –列表List –元组Tuple –字典Dictionary –集合Set 2.Python中的数据类型可以做以下几个分类: –有序:可以使用下标…

前端富文本添加录音功能方案

为富文本编辑器添加录音功能可以增强内容创作的多样性。以下是几种实现方案: 方案一:基于Web Audio API原生实现 实现步骤获取用户麦克风权限 navigator.mediaDevices.getUserMedia({ audio: true }).then(stream > { /* 处理音频流 */ }).catch(err …

解锁阿里云Hologres:开启实时数据分析新时代

引言在当今这个数字化浪潮汹涌澎湃的大数据时代,数据就如同企业和组织的 “数字石油”,成为了最具价值的资产之一。随着信息技术的飞速发展,各行业所产生和收集的数据量正以指数级的速度增长,从社交媒体上的用户互动信息&#xff…

python学习打卡day59

DAY 59 经典时序预测模型3 知识点回顾: SARIMA模型的参数和用法:SARIMA(p, d, q)(P, D, Q)m模型结果的检验可视化(昨天说的是摘要表怎么看,今天是对这个内容可视化)多变量数据的理解:内生变量和外部变量多变…

java中agent的作用

一 java中agent1.1 agent-javaagent 是 Java 虚拟机 (JVM) 提供的一个启动参数,用于在 Java 程序 main 方法执行之前,加载一个特殊的 Java 代理程序(Java Agent)。它的核心作用是对运行中的 Java 程序进行字节码层面的动态修改、监…

[C/C++内存安全]_[中级]_[如何避免数组访问越界]

场景 C/C的标准在C26以前还没支持内存安全的访问连续内存的类或特性。在开发分析内存数据或文件数据的程序时,经常需要把一段内存数据复制到另一个堆空间里。 这时目标内存空间由于起始地址的移动,剩余大小的计算错误,经常会导致访问越界错误…

rabbitmq 与 Erlang 的版本对照表 win10 安装方法

win10 64位系统 安装的版本 otp_win64_27.3.3.exe rabbitmq-server-4.1.1.exe rabbitmq 与 Erlang 的版本对照表 Erlang Version Requirements This guide covers Erlang/OTP version requirements https://www.rabbitmq.com/docs/which-erlang Erlang 28 is not currently…

kali安装教程

kali教程 我下载的是kali的集成环境,可以直接进行打开,无需进行安装。 Get Kali | Kali Linux, 官网下载路径 直接按enter键 安装完成 生成一个小皮安装链接 会给你生成一个外网和内网地址, 可以进行浏览 点击我同意这个协议…

微信小程序入门实例_____快速搭建一个快递查询小程序​

🌷🌷之前几篇博文我们一起开发了天气查询、单词速记和待办事项小程序,这次我们来对生活中常用的功能 —— 快递查询来探索相关的小程序。网购已经成为大家生活的一部分,有了自己的快递查询小程序,不用切换多个应用&…