CISP学习指南:访问控制

  1. 一、访问控制概述
  2. 二、安全模型分类
  3. 三、Bell-LaPadula模型(BLP)
  4. 四、Biba模型
  5. 五、访问控制策略
  6. 六、安全模型总结
  7. 七、总结

访问控制是信息安全的核心机制,通过限制对资源的访问来保护信息资产的机密性、完整性和可用性。

一、访问控制概述

1.1 访问控制的目标

访问控制的三大目标:

graph TB A["访问控制目标"] B["机密性
Confidentiality"] C["完整性
Integrity"] D["可用性
Availability"] A --> B A --> C A --> D B --> B1["防止未授权读取"] B --> B2["保护敏感信息"] C --> C1["防止未授权修改"] C --> C2["保证数据准确性"] D --> D1["确保授权访问"] D --> D2["保证服务可用"] style B fill:#e3f2fd,stroke:#1976d2 style C fill:#e8f5e9,stroke:#388e3d style D fill:#fff3e0,stroke:#f57c00

二、安全模型分类

2.1 机密性模型

保护分级信息机密性的模型:

保护分级信息机密性的模型包括:Bell-LaPadula模型信息流模型

graph TB A["机密性模型"] B["Bell-LaPadula
模型"] C["信息流模型"] A --> B A --> C B --> B1["军事和政府"] B --> B2["多级安全"] B --> B3["上读下写规则"] C --> C1["信息流向控制"] C --> C2["防止信息泄露"] C --> C3["格模型基础"] style B fill:#e3f2fd,stroke:#1976d2 style C fill:#e8f5e9,stroke:#388e3d

💡 机密性模型的选择

为什么选择这两个模型:

Bell-LaPadula模型

  • 专门设计用于保护机密性
  • 基于多级安全策略
  • 防止信息向下流动

信息流模型

  • 控制信息流向
  • 防止信息泄露
  • 支持机密性保护

不是机密性模型:

  • Biba模型 - 保护完整性
  • Clark-Wilson模型 - 保护完整性
  • Chinese Wall模型 - 多边安全

2.2 完整性模型

保护数据完整性的模型:

完整性模型包括:Biba模型Clark-Wilson模型

graph TB A["完整性模型"] B["Biba模型"] C["Clark-Wilson
模型"] A --> B A --> C B --> B1["下读上写"] B --> B2["防止污染"] B --> B3["完整性级别"] C --> C1["商业环境"] C --> C2["良构事务"] C --> C3["职责分离"] style B fill:#fff3e0,stroke:#f57c00 style C fill:#f3e5f5,stroke:#7b1fa2

💡 完整性模型对比

两种完整性模型的区别:

Biba模型:

  • 🔒 基于完整性级别
  • 📊 下读上写规则
  • 🛡️ 防止低完整性数据污染高完整性数据

Clark-Wilson模型:

  • 💼 面向商业环境
  • ✅ 良构事务(Well-Formed Transactions)
  • 👥 职责分离(Separation of Duties)
  • 🔐 访问三元组(用户-程序-数据)

完整性模型对比:

模型 适用场景 核心机制 特点
Biba 军事、政府 完整性级别、下读上写 简单、形式化
Clark-Wilson 商业、金融 良构事务、职责分离 实用、灵活

2.3 多边安全模型

多边安全模型:

多边安全模型包括:Chinese Wall模型BMA模型

graph TB A["多边安全模型"] B["Chinese Wall
模型"] C["BMA模型"] A --> B A --> C B --> B1["金融机构"] B --> B2["利益冲突防范"] B --> B3["动态访问控制"] C --> C1["医疗资料"] C --> C2["隐私保护"] C --> C3["患者数据安全"] style B fill:#e3f2fd,stroke:#1976d2 style C fill:#c8e6c9,stroke:#2e7d32

💡 多边安全模型的应用

Chinese Wall模型(金融机构):

  • 🏦 防止利益冲突
  • 🔒 动态访问控制
  • 📊 信息隔离墙
  • 💼 适用于投资银行、咨询公司

BMA模型(医疗资料):

  • 🏥 保护患者隐私
  • 📋 医疗数据安全
  • 🔐 访问权限管理
  • ⚕️ 符合医疗法规

多边安全模型应用对比:

模型 主要应用 保护对象 核心机制
Chinese Wall 金融机构 商业机密、利益冲突 动态访问控制、信息隔离
BMA 医疗机构 患者隐私、医疗数据 角色权限、数据分类

三、Bell-LaPadula模型(BLP)

3.1 BLP模型规则

BLP模型基于两种规则保障数据的机密性和敏感度:

graph TB A["BLP模型规则"] B["简单安全特性
Simple Security"] C["*特性
Star Property"] A --> B A --> C B --> B1["No Read Up"] B --> B2["上读规则"] B --> B3["主体不可读安全级别
高于它的数据"] C --> C1["No Write Down"] C --> C2["下写规则"] C --> C3["主体不可写安全级别
低于它的数据"] style B fill:#e3f2fd,stroke:#1976d2 style C fill:#fff3e0,stroke:#f57c00

💡 BLP模型的核心规则

两条规则:

📖 上读(No Read Up)

  • 主体不可读安全级别高于它的数据
  • 防止低级别用户读取高级别信息
  • 保护机密信息不被泄露

✍️ 下写(No Write Down)

  • 主体不可写安全级别低于它的数据
  • 防止高级别信息流向低级别
  • 防止机密信息降级

BLP模型示例:

安全级别(从低到高):
公开 < 内部 < 机密 < 绝密

用户级别:机密

✅ 可以读取:公开、内部、机密(向下读)
❌ 不能读取:绝密(不能上读)

✅ 可以写入:机密、绝密(向上写)
❌ 不能写入:公开、内部(不能下写)

3.2 BLP模型的应用

BLP模型适用场景:

场景 说明 示例
军事系统 多级安全分类 绝密、机密、秘密、公开
政府机构 文件分级管理 内部文件、公开文件
企业 商业秘密保护 核心机密、一般机密

四、Biba模型

4.1 Biba模型规则

Biba模型基于两种规则保障数据的完整性:

graph TB A["Biba模型规则"] B["简单完整性特性"] C["*完整性特性"] A --> B A --> C B --> B1["No Read Down"] B --> B2["下读规则"] B --> B3["主体不可读安全级别
低于它的数据"] C --> C1["No Write Up"] C --> C2["上写规则"] C --> C3["主体不可写安全级别
高于它的数据"] style B fill:#e8f5e9,stroke:#388e3d style C fill:#fff3e0,stroke:#f57c00

💡 Biba模型的核心规则

两条规则:

📖 下读(No Read Down)

  • 主体不可读安全级别低于它的数据
  • 防止低完整性数据污染高完整性数据
  • 保护数据完整性

✍️ 上写(No Write Up)

  • 主体不可写安全级别高于它的数据
  • 防止低完整性主体修改高完整性数据
  • 维护数据可信度

Biba模型示例:

完整性级别(从低到高):
未验证 < 已验证 < 可信 < 高度可信

用户级别:已验证

✅ 可以读取:已验证、可信、高度可信(向上读)
❌ 不能读取:未验证(不能下读)

✅ 可以写入:未验证、已验证(向下写)
❌ 不能写入:可信、高度可信(不能上写)

4.2 BLP vs Biba对比

两种模型的对比:

特性 BLP模型 Biba模型
保护目标 机密性 完整性
读取规则 上读(No Read Up) 下读(No Read Down)
写入规则 下写(No Write Down) 上写(No Write Up)
防止 信息泄露 数据污染
适用场景 军事、政府 商业、工业

⚠️ 记忆技巧

BLP vs Biba规则记忆:

BLP(机密性):

  • 📖 上读 - 不能读高级别(防泄密)
  • ✍️ 下写 - 不能写低级别(防降级)
  • 口诀:上读下写

Biba(完整性):

  • 📖 下读 - 不能读低级别(防污染)
  • ✍️ 上写 - 不能写高级别(防篡改)
  • 口诀:下读上写

关系:Biba是BLP的对偶模型

五、访问控制策略

5.1 访问控制策略类型

主要访问控制策略:

graph TB A["访问控制策略"] B["自主访问控制
DAC"] C["强制访问控制
MAC"] D["基于角色
RBAC"] E["基于属性
ABAC"] A --> B A --> C A --> D A --> E B --> B1["资源所有者控制"] B --> B2["灵活但不安全"] C --> C1["系统强制执行"] C --> C2["需要安全标签"] D --> D1["基于角色授权"] D --> D2["便于管理"] E --> E1["基于属性决策"] E --> E2["细粒度控制"] style B fill:#e3f2fd,stroke:#1976d2 style C fill:#ffebee,stroke:#c62828 style D fill:#e8f5e9,stroke:#388e3d style E fill:#fff3e0,stroke:#f57c00

5.2 强制访问控制(MAC)

需要安全标签的访问控制策略:

**强制访问控制(MAC)**策略需要安全标签。

💡 强制访问控制的特点

为什么MAC需要安全标签:

🏷️ 安全标签必需

  • 主体需要安全许可标签
  • 客体需要安全分类标签
  • 系统根据标签强制执行访问控制

🔒 系统强制执行

  • 用户无法改变访问控制
  • 基于安全策略自动决策
  • 防止特权滥用

📊 多级安全

  • 支持分级信息保护
  • 实现BLP或Biba模型
  • 适用于高安全环境

访问控制策略对比:

策略类型 需要安全标签 控制方式 灵活性 安全性 适用场景
强制访问控制(MAC) ✅ 是 系统强制 ⭐⭐ 低 ⭐⭐⭐⭐⭐ 高 军事、政府
自主访问控制(DAC) ❌ 否 用户自主 ⭐⭐⭐⭐⭐ 高 ⭐⭐ 低 一般企业
基于角色(RBAC) ❌ 否 角色授权 ⭐⭐⭐⭐ 高 ⭐⭐⭐ 中 企业应用
基于属性(ABAC) ❌ 否 属性决策 ⭐⭐⭐⭐⭐ 高 ⭐⭐⭐⭐ 高 云计算

六、安全模型总结

6.1 模型分类汇总

按保护目标分类:

安全模型分类:
├── 机密性模型
│   ├── Bell-LaPadula模型
│   └── 信息流模型
├── 完整性模型
│   ├── Biba模型
│   └── Clark-Wilson模型
└── 多边安全模型
    ├── Chinese Wall模型(金融)
    └── BMA模型(医疗)

6.2 模型选择指南

根据需求选择合适的模型:

需求 推荐模型 原因
保护分级信息机密性 Bell-LaPadula + 信息流 专门设计用于机密性保护
保护数据完整性 Biba + Clark-Wilson 防止数据污染和篡改
金融机构信息保护 Chinese Wall 防止利益冲突
医疗资料保护 BMA 保护患者隐私
需要安全标签 强制访问控制(MAC) 系统强制执行

七、总结

访问控制的核心要点:

  1. 机密性保护:使用Bell-LaPadula模型和信息流模型
  2. 完整性保护:使用Biba模型和Clark-Wilson模型
  3. 多边安全:Chinese Wall用于金融,BMA用于医疗
  4. BLP规则:上读下写,保护机密性
  5. Biba规则:下读上写,保护完整性
  6. 强制访问控制:需要安全标签,系统强制执行

🎯 关键要点

  • Bell-LaPadula模型和信息流模型保护机密性
  • Biba模型和Clark-Wilson模型保护完整性
  • Chinese Wall模型用于金融机构
  • BMA模型用于医疗资料保护
  • BLP模型:上读下写(No Read Up, No Write Down)
  • Biba模型:下读上写(No Read Down, No Write Up)
  • 强制访问控制(MAC)需要安全标签
  • Chinese Wall和BMA都是多边安全模型

💡 实践建议

  • 根据保护目标选择合适的安全模型
  • 机密性和完整性可以同时实施
  • 多边安全模型适用于特定行业
  • 强制访问控制适用于高安全环境
  • 定期审查和更新访问控制策略

系列文章:

分享到