Day37-18|18.5.4 机密性框架:让敏感信息只被正确的主体看到
Day37-18|18.5.4 机密性框架:让敏感信息只被正确的主体看到
对应教材目录:第 18 章 安全架构设计理论与实践 → 18.5 网络安全体系架构设计 → 18.5.4 机密性框架
学习目标:理解机密性保护的对象、威胁和密码学边界;掌握传输、存储、使用和备份阶段的保护方法;能够在案例分析与论文中写出密钥生命周期、访问控制、脱敏、审计和业务可用性之间的协同设计。
一、机密性到底要保护什么
机密性是指信息只能被获得授权的主体访问、理解或使用,未经授权的主体即使截获、复制或观察了数据,也不能得到有效内容。它保护的不只是数据库中的一列字段,还包括网络报文、日志、备份、缓存、消息、临时文件、配置文件、终端屏幕和运维人员能够看到的内容。
机密性通常面对四类风险:传输窃听、存储泄露、内部越权和侧信道观察。传输窃听发生在客户端到网关、服务到服务、服务到数据库和消息队列链路上;存储泄露发生在数据库、对象存储、磁盘、备份和快照中;内部越权包括管理员直接查询敏感表、开发人员读取生产数据和服务账号权限过大;侧信道则可能通过日志、错误信息、响应时间和缓存行为推断敏感内容。
可以把机密性目标写成一个生命周期模型:
产生 -> 传输 -> 处理 -> 存储 -> 共享 -> 备份 -> 归档/销毁
| | | | | | |
分级 加密 最小暴露 密文/脱敏 授权 密钥保护 到期销毁
高级架构设计不能只写“使用 AES 加密”。算法只是实现手段,真正的架构答案还要说明加密边界、密钥由谁管理、密钥如何轮换、故障如何恢复、应用如何解密以及谁可以审计解密行为。
二、机密性框架的基本关系
机密性保护通常由四个层次共同组成:
- 身份与访问控制:先确认主体身份,再决定其是否有权看到数据。
- 密码学保护:在数据离开可信边界后,使未授权主体无法直接理解内容。
- 数据最小化与脱敏:即使主体有权访问,也只提供完成任务所需的信息。
- 审计与运营:记录谁在何时以何种原因查看、解密、导出或共享数据。
数据分类分级
|
+--> 访问策略 ----> 是否允许访问
|
+--> 加密策略 ----> 传输加密 / 存储加密 / 字段加密
|
+--> 脱敏策略 ----> 展示脱敏 / 测试脱敏 / 导出脱敏
|
+--> 审计策略 ----> 查看、解密、导出、授权留痕
如果只有加密没有访问控制,应用自身仍可能把明文返回给错误用户;如果只有访问控制没有加密,数据库管理员、备份文件窃取者和链路监听者仍可能直接获得明文;如果只有加密没有密钥治理,密钥泄露后所有密文都可能失去保护。因此机密性是组合能力。
三、密码学基础与架构选型
1. 对称加密
对称加密使用同一把密钥进行加密和解密,速度快,适合大数据量和高吞吐场景。常见用途包括数据库字段、对象文件、备份、消息正文和本地配置。架构上不应把固定密钥直接写入代码或镜像,而应由密钥管理系统提供,并通过短期凭据和访问策略控制使用。
2. 非对称加密
非对称加密使用公钥和私钥,适合身份确认、密钥交换和小数据量保护。私钥需要严格保管,公钥可以分发但必须验证来源。HTTPS/TLS 中通常使用非对称机制协商会话密钥,再使用对称算法传输业务数据,这是安全性和性能之间的折中。
3. 哈希与密码存储
哈希函数通常用于完整性校验、摘要和口令存储辅助,不应把普通哈希误当作加密。用户口令应使用专门的密码哈希算法、独立盐值和适当工作因子。密码验证服务应限制尝试次数,并配合多因素认证和风险识别。
4. 认证加密与完整性
只加密不校验完整性可能遭受篡改。现代应用通常采用带认证的加密模式,或者将加密与消息认证码组合,使接收方能够判断密文是否被修改。考试作答时应把“保密”和“防篡改”区分开:机密性回答谁能看到,完整性回答内容是否被改过,二者可以采用组合密码机制但目标不同。
四、传输机密性设计
1. 客户端到服务端
公网访问通常使用 TLS 保护,重点包括证书合法性、协议版本、密码套件、证书轮换、私钥保存和失效处理。对于移动端和专用客户端,还可以进行证书固定,但要考虑证书轮换失败导致大面积不可用的问题。
2. 服务到服务
微服务系统中不能因为“在内网”就认为通信可信。服务间应根据风险采用 TLS 或双向 TLS,服务身份由证书、工作负载身份或服务网格统一管理。高敏感接口还要叠加授权、请求签名、重放防护和最小网络权限。
3. 消息和异步链路
消息队列中的主题、分区、消费组和死信队列都可能保存敏感内容。设计时应同时考虑传输加密、消息正文加密、消费者授权、消息保留期和备份保护。若消息需要被多个服务消费,可以使用信封加密,让每个授权消费者获得对应的数据密钥,而不是共享一个全局密钥。
4. 防止日志和错误信息泄露
应用不应把口令、完整令牌、身份证号、银行卡号、私钥和明文密钥写入日志。异常响应应避免暴露 SQL、内部路径、堆栈和详细授权原因。日志平台本身也要加密,并对检索和导出权限进行控制。
五、存储机密性设计
1. 全盘加密与存储介质保护
全盘或卷级加密适合防止磁盘丢失、服务器下线和快照被直接读取,实施成本相对较低。但应用和数据库正常运行时通常仍会读到明文,因此它不能代替字段级控制。
2. 数据库透明加密
透明数据加密由数据库或存储层对表空间、数据文件和日志进行加密,对业务改造较少,适合大范围保护静态数据。其局限是数据库进程和有权限的管理员可能仍然能够看到明文,查询结果也可能被导出。因此对于特别敏感字段,还需要字段级加密、脱敏和数据库审计。
3. 字段级加密与令牌化
字段级加密适合身份证号、银行卡号、医疗信息等少量高敏感字段。应用在写入时加密,授权服务在满足条件时解密。加密字段会影响排序、模糊查询和索引,需要通过哈希索引、令牌化、分离检索字段或专用查询服务解决。
令牌化使用不含业务含义的令牌替换原始值,把真实数据放在受控保管库中。业务系统即使泄露令牌,也不能直接恢复原始数据。令牌化适合支付卡号、证件号和外部共享场景,但必须管理令牌映射、重复性要求、故障恢复和跨系统一致性。
4. 缓存、搜索和对象存储
缓存可能保存登录态、用户资料和查询结果,应配置访问认证、网络隔离、过期时间和必要的加密。搜索引擎中的倒排索引可能复制原始字段,不能只加密主库而忽略搜索副本。对象存储要控制桶策略、临时链接有效期、下载审计、版本保留和跨地域复制。
六、密钥管理是机密性架构的核心
1. 密钥生命周期
完整的密钥生命周期包括生成、分发、启用、使用、轮换、吊销、备份、恢复和销毁。密钥的安全性通常不只取决于算法,而取决于密钥是否被复制到日志、环境变量、代码仓库、镜像、个人电脑和备份中。
生成 -> 注册 -> 授权使用 -> 轮换 -> 旧密钥只解密
| |
硬件/密钥服务 到期封存
|
备份恢复/最终销毁
2. 信封加密
信封加密用数据密钥加密业务数据,再用密钥加密密钥加密数据密钥。数据密钥可以按对象、租户或批次生成,主密钥只用于保护数据密钥。这样既减少主密钥使用频率,又便于轮换和分层授权。
明文 --数据密钥 DEK--> 密文数据
DEK --主密钥 KEK----> 加密后的 DEK
密文数据 + 加密后的 DEK + keyId = 加密对象
轮换主密钥时通常无需重新加密全部业务数据,只需重新包装数据密钥;但若算法、数据密钥或合规要求发生变化,仍可能需要批量重加密。
3. 密钥服务高可用
密钥管理系统故障会影响登录、查询和写入,因此必须设计高可用和降级边界。应用可以缓存有限的公钥或短期密钥材料,但不应长期缓存高权限主密钥。对于已加密数据,可以区分“继续读旧数据”“禁止新增写入”“完全阻断高敏感操作”等故障策略,并明确风险和恢复流程。
七、数据最小化、脱敏和隐私保护
机密性不等于所有数据都必须加密到用户无法使用。更好的方案是让业务只处理必要的数据,并在不同场景输出不同视图。
| 场景 | 典型保护方式 |
|---|---|
| 客服查看客户资料 | 姓名部分显示、证件号掩码、访问原因必填 |
| 测试环境 | 生产数据脱敏、随机化、不可逆替换 |
| 对外导出 | 最小字段、分级审批、水印、有效期下载链接 |
| 运维排障 | 临时授权、只读、命令审计、自动回收 |
| 统计分析 | 聚合、匿名化、差分处理或令牌化 |
脱敏要注意可逆性和组合泄露。只遮住身份证号中间几位,不代表与姓名、电话、地址组合后仍然安全。高风险场景要做重新识别评估,不能把“加星号”当作完整隐私保护。
八、案例分析:医疗平台的机密性架构
某医疗平台包含患者基本信息、诊断记录、影像资料和费用数据,服务医院、医生、患者和保险机构。要求:医生只能查看诊疗关系内的患者信息;患者可以查看自己的报告;保险机构只能获取理赔所需字段;影像文件需要长期保存;运维人员不能直接查看明文病历。
可采用以下方案:
- 按数据敏感等级分类,病历和影像列为高敏感,普通统计数据列为中低敏感。
- 外部访问全链路 TLS,内部高敏感服务采用双向 TLS 或工作负载身份。
- 数据库启用透明加密,身份证号、联系方式和病历摘要采用字段级加密或令牌化。
- 影像对象采用信封加密,按医院或患者域隔离数据密钥,密钥由集中式密钥服务管理。
- 医生授权同时校验用户身份、医院、科室、诊疗关系、患者授权和当前风险。
- 保险接口使用专用数据视图,只返回理赔必要字段,禁止直接访问核心病历表。
- 运维采用临时授权和双人审批,解密行为必须记录原因、工单和操作结果。
- 备份、快照、搜索索引和灾备副本使用同等级加密和访问控制。
- 对导出文件增加水印、有效期和下载审计,异常批量下载触发告警。
九、常见错误与答题提醒
第一,只写“采用 AES 加密”,没有写密钥存放、轮换和权限边界。第二,只保护数据库,没有保护备份、日志、缓存、搜索和消息副本。第三,把 TLS 等同于全链路安全,忽略服务到服务、消息和对象存储。第四,把脱敏当作万能方案,没有说明谁能恢复以及可逆性。第五,只考虑安全不考虑可用性,导致密钥服务短暂故障就让所有业务不可用。
论文中可以使用这样的表述:系统按照数据分类分级建立机密性保护策略,对传输、存储、使用、共享和备份环节分别设置控制;采用 TLS 保护通信,采用透明加密和字段级加密保护静态数据,使用信封加密降低密钥轮换成本;通过统一密钥管理、最小权限、临时授权、脱敏和审计,保证敏感数据在可用的前提下仅向授权主体暴露。
十、课后练习
练习 1
为什么全盘加密不能替代字段级加密?
参考答案:全盘加密主要防止磁盘或快照被离线读取,系统正常运行时数据库进程、拥有查询权限的管理员和应用仍可能看到明文;字段级加密可以缩小敏感字段暴露范围,但要额外解决查询、索引和密钥管理问题。
练习 2
某系统把主密钥直接配置在应用镜像的环境变量中,有哪些风险?如何改进?
参考答案:镜像、日志、部署清单、进程信息和备份都可能泄露主密钥,且轮换困难。应使用集中式密钥管理系统或硬件安全模块,应用通过短期身份获取使用权限,并采用信封加密、密钥版本和审计机制。
练习 3
请设计一个“数据导出”机密性控制方案。
参考答案要点:单独的导出权限;按字段和数据范围过滤;敏感字段脱敏;大批量导出审批;公网禁止或增强认证;文件加密、有效期、下载次数和水印;记录发起人、原因、范围、审批人、下载者和结果;异常行为告警。
练习 4
论文题:论“某政务数据共享平台的机密性设计”。请列出正文至少六个技术措施。
参考答案要点:数据分类分级、统一身份认证、访问控制、传输加密、数据库透明加密、字段级加密或令牌化、信封加密、密钥生命周期、脱敏视图、接口最小化、共享审批、日志审计、备份保护和灾难恢复。
十一、今日复盘
- 我能否区分机密性、完整性和抗抵赖?
- 我是否能从数据全生命周期寻找泄露点?
- 我能否解释传输加密、存储加密、字段加密和脱敏的边界?
- 我能否画出信封加密和密钥轮换流程?
- 我是否考虑了日志、缓存、搜索、备份和灾备副本?
- 我能否在答案中同时写出安全性、性能、可用性和运维成本的权衡?
最终要记住:机密性框架的核心不是某个密码算法,而是“谁在什么条件下、通过什么路径、看到哪些数据,以及密钥和授权如何受到持续控制”。这条主线能够把抽象理论落到系统架构设计和考试案例答题中。