《安全等级模型深度解读:从基础到实践》
第4章 TCSEC的B1级深度解读

4、TCSEC的B1级深度解读:标记、强制访问控制、安全策略模型

TCSEC(Trusted Computer System Evaluation Criteria,可信计算机系统评估准则)的B1级是“标记安全保护”级别。它是从自主访问控制(DAC)迈向强制访问控制(MAC)的关键分水岭。B1级要求系统不仅具备C2级的所有功能,还必须引入敏感度标记和强制访问控制机制,并基于一个形式化的安全策略模型进行构建。

TCSEC B1级 核心三要素 🔖 敏感度标记 • 主体/客体标记 • 分级分类标签 • 完整性标签 🛡️ 强制访问控制 • 基于规则的控制 • 不可旁路 • 系统强制执行 📐 安全策略模型 • Bell-LaPadula • 形式化证明 • 状态机模型

4.1 敏感度标记(Sensitivity Labels)

B1级要求系统为每个主体(用户/进程)和客体(文件/目录/设备)分配一个敏感度标记。标记通常包含两个维度:

  • 分级(Hierarchical):如 绝密 > 机密 > 秘密 > 公开
  • 范畴(Category):如 {核武器, 外交, 财务}
表1:敏感度标记示例
实体 分级 范畴 完整标记
用户A(主体) 机密 {核武器, 外交} (机密, {核武器, 外交})
文件X(客体) 秘密 {外交} (秘密, {外交})
进程P(主体) 绝密 {核武器, 财务} (绝密, {核武器, 财务})
🔖 敏感度标记层级结构 绝密 (Top Secret) 机密 (Secret) 秘密 (Confidential) 公开 (Unclassified) 范畴: {核, 外交, 财务} 范畴: {外交, 财务} 范畴: {财务} 范畴: 无

4.2 强制访问控制(Mandatory Access Control, MAC)

MAC是B1级的核心安全机制。与DAC(自主访问控制)不同,MAC由系统根据主体和客体的安全属性强制实施,用户无法绕过或修改。其核心规则基于Bell-LaPadula模型:

📌 Bell-LaPadula 基本安全公理

  • 简单安全属性(ss-property):主体只能读取安全级别 不高于 其自身级别的客体(向下读)。
  • 星属性(*-property):主体只能写入安全级别 不低于 其自身级别的客体(向上写)。
  • 强星属性(Strong *-property):主体只能读写与自身安全级别 相同 的客体(可选增强)。
🛡️ 强制访问控制规则(BLP模型) 主体 (机密) 客体A (秘密) ✅ 允许读 (向下读) 客体B (绝密) ✅ 允许写 (向上写) 客体C (公开) ❌ 禁止写 (向下写) ➡ 允许读 (向下读) ➡ 允许写 (向上写) ➡ 禁止写 (向下写)

4.3 安全策略模型(Security Policy Model)

B1级要求系统必须有一个形式化的安全策略模型,该模型需满足:

  • 状态机模型:系统被定义为一组状态,安全状态转换必须遵守安全规则。
  • 模型一致性:所有系统操作(读、写、执行)都必须在模型框架内定义。
  • 形式化证明:提供数学证明,表明模型能够维持安全状态。
// 安全策略模型伪代码示例(状态机验证)
State currentState = { subjects, objects, accessMatrix }

function checkAccess(subject, object, accessMode):
    if accessMode == READ:
        return subject.clearance >= object.classification
               AND subject.category ⊆ object.category
    if accessMode == WRITE:
        return subject.clearance <= object.classification
               AND object.category ⊆ subject.category
    return false

function transition(subject, object, accessMode):
    if checkAccess(subject, object, accessMode) == true:
        performOperation(subject, object, accessMode)
        return new SecureState()
    else:
        return SecurityViolation()
📐 安全策略模型状态机 安全状态 S₀ 安全状态 S₁ 不安全 S₂ 合法操作 违规操作

4.4 B1级与其他级别的对比

表2:TCSEC各级别关键特性对比
特性 C2(受控访问保护) B1(标记安全保护) B2(结构化保护)
自主访问控制 ✅ 有 ✅ 有 ✅ 有
敏感度标记 ❌ 无 ✅ 有 ✅ 有
强制访问控制 ❌ 无 ✅ 有 ✅ 有
形式化安全模型 ❌ 无 ✅ 有(非形式化也可) ✅ 有(形式化)
隐蔽信道分析 ❌ 无 ❌ 无 ✅ 有

4.5 实践要点与挑战

  • 标记的完整性:所有客体在创建时必须被正确标记,系统需防止标记被篡改。
  • 策略的不可旁路性:所有访问路径(包括系统调用、IPC、网络)都必须经过MAC检查。
  • 可信计算基(TCB):B1级要求TCB必须保护自身免受篡改,并维护域隔离。
  • 审计增强:所有与安全标记相关的操作(如标记修改、MAC违规)必须记录审计日志。

💡 核心总结:TCSEC B1级通过引入敏感度标记和强制访问控制,将安全策略从用户自主提升到系统强制层面。基于Bell-LaPadula模型的“向下读、向上写”规则,有效防止了高敏感信息向低级别主体的泄露。B1级是构建多级安全(MLS)系统的基石,也是后续B2/B3级别更严格形式化验证的基础。