访问控制是信息安全的核心机制,通过限制对资源的访问来保护信息资产的机密性、完整性和可用性。
一、访问控制概述
1.1 访问控制的目标
访问控制的三大目标:
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模型和信息流模型。
模型"] 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模型。
模型"] 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模型。
模型"] 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模型基于两种规则保障数据的机密性和敏感度:
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模型基于两种规则保障数据的完整性:
低于它的数据"] 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 访问控制策略类型
主要访问控制策略:
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) | 系统强制执行 |
七、总结
访问控制的核心要点:
- 机密性保护:使用Bell-LaPadula模型和信息流模型
- 完整性保护:使用Biba模型和Clark-Wilson模型
- 多边安全:Chinese Wall用于金融,BMA用于医疗
- BLP规则:上读下写,保护机密性
- Biba规则:下读上写,保护完整性
- 强制访问控制:需要安全标签,系统强制执行
🎯 关键要点
- 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都是多边安全模型
💡 实践建议
- 根据保护目标选择合适的安全模型
- 机密性和完整性可以同时实施
- 多边安全模型适用于特定行业
- 强制访问控制适用于高安全环境
- 定期审查和更新访问控制策略
系列文章: