《安全等级模型深度解读:从基础到实践》
第3章 TCSEC的C2级深度解读
3. TCSEC的C2级深度解读:自主访问控制、审计、身份认证、客体复用保护
TCSEC(Trusted Computer System Evaluation Criteria) 的 C2级 是“受控访问保护”的起点,也是现代操作系统安全的基础。它要求系统实现 自主访问控制(DAC)、审计(Audit)、身份认证(Identification & Authentication) 和 客体复用保护(Object Reuse) 四大核心机制。下面我们逐一深度解读。
1. 自主访问控制(DAC)
核心思想: 客体的所有者(Owner)可以自主决定谁可以访问该客体(文件、目录、设备等),以及以何种权限(读、写、执行)访问。
C2级要求:
- 系统必须支持 用户-客体 的访问控制矩阵。
- 支持 访问控制列表(ACL) 或等效机制。
- 能够控制 单个用户 或 用户组 的访问权限。
- 防止未授权的 传播(如:防止低权限用户将文件共享给更高权限用户)。
▲ 图示:DAC模型中,文件所有者(用户A)通过ACL自主设置其他用户的访问权限
2. 审计(Audit)
核心思想: 系统必须能够记录与安全相关的事件,以便事后追踪和审查。
C2级要求:
- 必须能够记录 谁(用户身份)在 什么时间 对 哪个客体 执行了 什么操作。
- 审计日志必须 受保护,只有授权管理员才能读取或修改。
- 系统必须提供 审计工具 用于分析日志。
- 必须记录的事件包括:登录/登出、文件访问、权限变更、创建/删除客体等。
▲ 图示:审计子系统记录所有安全相关事件,并存储到受保护的审计日志中
3. 身份认证(Identification & Authentication)
核心思想: 每个用户必须拥有 唯一标识,并且在访问系统前必须 证明自己的身份。
C2级要求:
- 系统必须为每个用户分配 唯一的用户ID(UID)。
- 用户必须通过 密码 或其他机制(如令牌)进行身份验证。
- 身份认证信息(如密码)必须 加密存储(如使用哈希算法)。
- 系统必须能够 追踪 所有用户的操作到具体的用户身份。
▲ 图示:用户通过登录界面提交凭证,认证模块验证后返回结果,密码以哈希形式存储
4. 客体复用保护(Object Reuse)
核心思想: 当一个客体(如内存块、磁盘扇区、文件句柄)被释放并重新分配给另一个用户或进程时,系统必须 清除所有残留数据,防止信息泄露。
C2级要求:
- 当客体被释放时,系统必须 清空 其中的所有数据(如写零或随机数)。
- 适用于 内存、磁盘、寄存器、缓存 等所有可复用的存储介质。
- 新用户/进程在获取客体时,不能看到任何 前一个用户的数据。
- 典型的实现方式:在分配前执行 清零操作 或使用 安全擦除 算法。
▲ 图示:客体复用保护流程——用户A释放内存后,系统清零,用户B获取时无法看到残留数据
C2级四大机制总结
实践代码示例(Linux C2级安全配置)
# 1. 自主访问控制 - 设置文件ACL setfacl -m u:bob:rw /data/report.pdf # 赋予bob读写权限 getfacl /data/report.pdf # 查看ACL # 2. 审计配置 - 使用auditd auditctl -w /etc/passwd -p wa -k passwd_change # 监控passwd文件 ausearch -k passwd_change # 查询审计日志 # 3. 身份认证 - 强制密码策略 chage -M 90 alice # 设置密码有效期90天 passwd -l bob # 锁定用户账户 # 4. 客体复用保护 - 安全删除文件 shred -vfz -n 3 secret.txt # 使用随机数覆盖3次后清零
💡 核心要点: C2级是TCSEC中第一个真正意义上的“安全级”,它要求系统具备 细粒度的访问控制、完整的审计追踪、可靠的身份认证 以及 严格的资源清理 机制。这四个方面共同构成了现代操作系统安全的基础。
专注课程资料整理