Clark-Wilson 完整性模型(1987 原始论文)
David E. Clark & Dan R. Wilson, “Comparing Commercial and Military Security Policies”, IEEE Symposium on Security and Privacy 1987。云盘路径:/田浩然上传的资料/0CI03 操作系统安全/课程参考文献/Clark-wilson Model/clark_wilson.pdf。这是信息安全领域被引最多的论文之一:商业完整性策略与军用保密策略的对比,以及 CW 模型的完整定义。
提取备忘:双栏排版 PDF 经 pdftotext 逐词断行、排版错乱,但内容可辨认。以下为本轮据原文整理的要点,个别引文措辞以重新排版后为准(标”待确认”处不逐字引用)。
核心论点
- 两种策略根本不同:军用策略(Orange Book / Bell-LaPadula 血统)管的是信息泄露(confidentiality);商业数据处理——尤其是资产管理和会计这条主线——首要目标是防止欺诈与错误的未授权修改(integrity)。
- 格模型(lattice model)不足以刻画完整性策略。完整性需要与保密性不同的机制:不是”读写方向翻转”就能解决。
- 商业完整性的真正基础是现实世界的数据处理实践:职责分离(separation of duties)、well-formed transaction、审计日志——这些在手工会计时代就已存在,模型只是把它们形式化。
模型要素
- CDI(Constrained Data Item,约束数据项):受完整性规则约束的数据,任何时候必须处于 well-formed state(满足内部一致性约束,如账目平衡)。
- UDI(Unconstrained Data Item,无约束数据项):系统外的原始数据(如客户交来的纸质单据),进入系统前不受约束。
- TP(Transformation Procedure,转换过程):唯一被授权修改 CDI 的程序。TP 必须保证把 CDI 从一个 well-formed 状态变到另一个 well-formed 状态。
- IVP(Integrity Verification Procedure,完整性校验过程):周期性检查 CDI 集合处于 well-formed 状态(如盘点、对账)。
认证规则(Certification Rules)
- C1:系统必须证明每个 IVP 能检测出 CDI 集合的任何非法(非 well-formed)状态;TP 执行前后都必须跑相关 IVP。
- C2:每个 TP 必须被认证为 valid——从合法初始状态出发到达合法终态。安全官员为每个 TP 定义认证集:
(TP_i, (CDI_a, CDI_c, ...)),TP 只允许按认证过的参数组合执行。TP 必须串行化执行(并发执行时中间态可以不合法,但序列化序必须保持终态合法——现代数据库事务机制正是为此)。 - C3:IVP/TP 关系的传递性约束(约束 3 类访问关系中哪些组合允许,具体表格见原文)。
- C4/C5:每个 CDI 必须归属于某个 IVP 的证明范围;每个用户-UWI/CDI 访问对必须认证为”只读”或”不可访问”——即写权限只能经 TP。
- C6:任何以 UDI 为输入的 TP 必须认证为只做合法转换——典型实现是编辑程序(edit program):校验/拒绝后把 UDI 转为 CDI。
- 绕过即失效:如果用户能自建并运行未经认证的 TP,整个模型 goals 归零。
执行规则(Enforcement Rules)
- E1:TP 的有效性可基于多用户职责分离(如同一 TP 只在特定时段有效则系统须提供可信时钟并认证 TP 会读时钟);审计日志可建模为”只能 append 的 CDI + 对应 TP”,无需特殊机制。系统必须维护 C2 认证关系表,任何 CDI 只能被表内认证的 TP 操作。
- E2/E3:对 UDI 的写入受控;用户只能经认证路径访问 CDI。
- E4:只有有权认证的 agent 才能修改认证关系表;认证某实体的 agent 不得对该实体有任何执行权——把职责分离提升为元规则(认证者与使用者分离)。
与其他模型对比
| 模型 | 思路 | CW 的批评 |
|---|---|---|
| Bell-LaPadula | 保密性:禁上读禁下写 | 与完整性目标无关 |
| Biba | 把 B-LP 方向翻转当完整性 | 完整性不是保密性的镜像;格上的读写约束表达不了 well-formedness 和职责分离 |
| 格模型统称 | 状态/对象分级 | 商业完整性是”非格”(non-lattice)策略,需要专门机制 |
(论文还对比了 Clark 早年的 SRC 86 完整性模型,CW 是其简化推广。)
对后续实践的遗产
- 职责分离 + 认证程序白名单 + 校验过程,直接对应现代:应用层最小权限(用户不碰表,只碰存储过程/API)、数据库事务与审计、财务系统的四眼原则。
- 与本书单其他安全笔记关联:SELinux 的 TE(type enforcement,进程域-类型白名单)在思想上与 C2/E1 的”CDI 只能被认证 TP 操作”同构——都是把”谁能改什么”从自主名单换成系统强制的认证关系。
待确认
- C3 的完整访问关系矩阵(论文表格 OCR 错乱,未能可靠还原),需要时对照 IEEE 原文。