一、模型背景与定义
BLP(Bell-LaPadula)模型是由David Bell和Len Adula在1973年提出的强制访问控制(MAC)模型,是最早的计算机安全模型之一,主要用于解决多用户系统中的信息机密性保护问题,尤其适用于军事和政府等高安全需求领域。
二、核心安全属性与原则
BLP模型基于两种核心安全属性和三大安全原则构建:
(一)安全属性
- 安全级别(Security Levels)
- 系统中每个主体(如用户、进程)和客体(如文件、数据库)都被分配一个安全级别,形成严格的层次结构,常见级别如:绝密(Top Secret)>秘密(Secret)>机密(Confidential)>公开(Unclassified)。
- 范畴(Categories)
- 在同一安全级别下,通过范畴(如项目组、部门)进一步细分,确保信息仅在特定范围内共享,例如“绝密”级别可包含“核武器项目”“卫星计划”等范畴。
(二)三大安全原则
- 简单安全特性(Simple Security Property)——下读(No Read Up)
- 主体只能读取安全级别小于或等于自身级别的客体信息。例如,秘密级用户不能读取绝密级文件,但可以读取机密级或公开级文件。
- *-特性(Star Property)——上写(No Write Down)
- 主体只能向安全级别大于或等于自身级别的客体写入信息。例如,秘密级用户不能向公开级文件写入内容,但可以向秘密级或绝密级文件写入。
- 自主安全特性(Discretionary Security Property)
- 基于访问控制列表(ACL)实现,作为强制访问控制的补充,允许主体在满足强制规则的前提下,自主管理其拥有客体的访问权限。
三、数学模型与形式化定义
BLP模型通过形式化语言严格定义安全规则,核心元素包括:
- 主体集合(S):用户、进程等主动实体
- 客体集合(O):文件、数据库等被动实体
- 安全级别函数(f):f(s)表示主体s的安全级别,f(o)表示客体o的安全级别
- 范畴集合(C):每个安全级别包含的范畴集合
- 访问模式集合(A):{读(R)、写(W)、执行(X)、追加(A)、控制(C)}
安全条件形式化表达:
- 简单安全特性:对于主体s和客体o,若s能读o,则f(o) ≤ f(s)且范畴(o) ⊆ 范畴(s)
- *-特性:对于主体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形成机密性-完整性的互补关系。
六、隐蔽信道
这是隐蔽通道的例子 。隐蔽通道是一种在安全模型下,被设计用于违反安全策略传输信息的通信信道。以下是图中流程解析:
- 创建文件(/data):绝密进程A创建文件/data ,这是信息传输的基础载体。
- 公开进程B创建并写入 /control:公开进程B创建文件/control并写入内容,/control在这里起到控制信号传递的作用。
- 绝密进程A观察 /control文件长度:绝密进程A通过观察/control文件长度增长获取同步信号,以此知晓公开进程B已完成相关操作,为后续信息传递做准备。
- 绝密进程A锁定和解锁 /data文件传递信息:绝密进程A利用锁定和解锁/data文件来编码信息,如解锁代表发送1,锁定代表发送0 。
- 公开进程B尝试写入 /data判断接收信息:公开进程B尝试写入/data文件,根据写入成功(接收1)或失败(接收0)来解读绝密进程A传递的信息。
在假定场景中,绝密进程A被植入恶意代码(如特洛伊木马),恶意代码可利用这种隐蔽通道绕过安全策略,将绝密信息以看似正常文件操作的方式传递给公开进程B,从而造成信息泄露。