Day19-01|4.4.1 数据加密:用密码技术保护信息机密性与可信交换

本文对应《系统架构设计师教程(第2版)》第4章“信息安全技术基础知识”4.4.1“数据加密”。数据加密是信息安全技术体系的重要基础,主要通过密码算法和密钥把可读数据转换为不可直接理解的密文,降低信息在存储、传输和交换过程中的泄露风险。

一、学习目标

完成本节后,应能够:

  1. 解释数据加密的基本概念、组成和工作过程;
  2. 区分明文、密文、加密算法、解密算法和密钥;
  3. 说明加密在传输、存储、备份和应用场景中的作用;
  4. 理解加密与身份认证、完整性、数字签名和访问控制的区别;
  5. 在案例和论文中设计可管理、可轮换、可审计的加密体系。

二、什么是数据加密

数据加密是利用加密算法和密钥,将原本可以直接理解的明文转换为密文;合法的接收者使用相应密钥和解密算法将密文还原为明文。加密的主要目标是保护机密性,使未授权主体即使获得了数据,也难以直接理解其内容。

术语 含义 示例
明文 加密前可理解的数据 订单金额、患者姓名、合同内容
密文 加密后不可直接理解的数据 网络传输中的加密字节
加密算法 将明文转换为密文的计算方法 对称或非对称算法
解密算法 将密文还原为明文的计算方法 使用合法密钥恢复数据
密钥 控制加密和解密过程的秘密参数 数据密钥、私钥、会话密钥
密码系统 算法、密钥、协议、管理和使用环境的整体 TLS、磁盘加密体系

加密并不是把数据“隐藏起来”就结束了。系统还要考虑密钥谁生成、放在哪里、谁能使用、如何轮换、如何备份、如何吊销和如何销毁。算法强度很高但密钥管理混乱,整体安全仍然很弱。

三、数据加密的工作过程

发送方先准备明文,根据场景选择算法和密钥,将明文加密为密文,再通过存储或通信渠道传递。接收方验证必要的主体和权限,使用合法密钥解密,得到明文并继续处理。

明文 + 加密算法 + 密钥 → 密文

密文 + 解密算法 + 合法密钥 → 明文

在现代协议中,真正的数据加密往往与随机数、初始化向量、认证标签、密钥协商、证书和协议版本一起工作。若使用相同密钥、固定随机数或不验证密文完整性,攻击者可能通过重放、篡改或分析模式获得信息。

四、加密的主要应用场景

1. 传输加密

传输加密保护客户端、服务端、服务间和数据中心之间的通信,防止网络窃听和中间人篡改。常见方式包括TLS、VPN、专用链路和应用层加密。传输加密要配合证书验证、密钥协商、协议版本和证书轮换。

2. 存储加密

存储加密保护数据库、磁盘、文件、对象存储、移动介质和备份。即使磁盘或备份介质被盗,没有密钥也难以直接读取。存储加密可以是全盘加密、卷加密、数据库透明加密、字段加密或文件加密。

3. 数据库字段加密

字段加密适合身份证号、银行卡号、病历、密钥和商业机密等高敏感字段。它可以减少普通数据库管理员或备份读取者直接获得明文的风险,但会影响查询、排序、索引和性能。因此,需要根据查询需求选择透明加密、确定性加密、格式保持加密或应用层解密。

4. 备份和归档加密

备份和归档通常保存时间长、复制范围广,是攻击者重点目标。备份应在写入时加密,密钥与备份数据分离保存,并限制恢复和导出权限。归档数据要考虑多年后的算法、密钥和格式可用性,不能因为加密而无法合规读取。

5. 终端与移动设备加密

笔记本、手机、U盘和移动硬盘丢失后,设备加密可以降低数据泄露风险。企业还需要设置屏幕锁定、设备管理、远程擦除、应用容器、离线缓存和密钥吊销,不能只打开一个加密开关。

五、加密与其他安全目标的区别

加密主要保护机密性,但不能自动解决所有安全问题。密文可能被攻击者删除,系统仍然需要可用性和备份;密文可能被篡改,系统需要完整性校验和认证标签;攻击者可能伪造身份,系统需要身份认证和证书;用户可能有权限但滥用数据,系统需要访问控制和审计。

安全目标 主要问题 常用技术
机密性 未授权者能否读懂数据 加密、脱敏、访问控制
完整性 数据是否被篡改 哈希、MAC、签名、版本、事务
真实性 通信主体是否真实 证书、认证、数字签名
不可否认性 主体能否否认操作 数字签名、可信时间、审计
可用性 授权者能否及时使用 冗余、容灾、备份、降级

例如,哈希函数本身不是加密,因为它通常不可逆;密码哈希也不是为了还原用户密码,而是为了验证输入是否匹配。数字签名使用私钥生成签名、使用公钥验证,主要提供真实性、完整性和不可否认性,不是简单的“用公钥加密”。

六、密钥的重要性

密钥是密码系统的核心秘密。密钥泄露可能使强算法失去保护,密钥丢失可能使合法用户无法解密数据。密钥管理覆盖生成、分发、存储、使用、轮换、备份、恢复、吊销和销毁。

密钥生成应使用合适的随机源和安全参数,不能用可预测的时间或自定义字符串。密钥存储应使用专用密钥管理系统、硬件安全模块或受保护的密钥服务,不能写在代码、镜像、日志和普通配置文件中。使用权限应按服务、数据、用途和时间限制,并记录调用审计。

密钥轮换要兼顾安全和业务连续性。新密钥用于新数据,旧密钥在保留期内受控解密历史数据;轮换过程要有版本标识、迁移策略和回退方案。密钥撤销后,新的访问必须被阻断,但历史审计和合规恢复可能仍需要受控读取。

七、对称与非对称加密的基本认识

对称加密使用同一把密钥进行加密和解密,速度快,适合大量数据处理,但通信双方需要安全共享密钥。非对称加密使用公钥和私钥,公钥可以公开,私钥必须保密,适合身份认证、密钥交换和数字签名,但计算成本通常较高。

实际协议常采用混合加密:先通过非对称机制完成身份确认和会话密钥协商,再使用对称算法加密大量业务数据。这样兼顾安全性和性能。具体算法和参数应遵循组织标准、法规和业务场景,避免自行设计密码算法。

八、随机数、初始化向量与密文完整性

安全加密通常需要随机数、随机盐、初始化向量或计数器,防止相同明文在相同条件下产生可识别的相同密文。随机数必须来自安全随机源,并避免重复使用不应重复的参数。

只加密不认证可能出现密文被修改而接收方无法发现的问题。因此,现代应用应优先选择带认证的加密模式,或组合加密与消息认证。接收方验证认证标签失败时,应拒绝处理,不能继续使用可能被篡改的明文。

九、加密体系中的访问控制与最小权限

加密保护数据,但真正决定谁能解密的是密钥访问权限。密钥管理服务应区分密钥管理员、使用者、审计者和恢复人员;应用只获得所需数据密钥的使用权限,不能导出主密钥;高敏感解密操作可以要求双人审批或临时授权。

多租户系统要隔离租户密钥或数据密钥,避免一个租户的权限影响其他租户。不同环境要使用不同密钥,开发测试环境不能使用生产主密钥。运维人员的紧急解密权限要有时间窗、工单和全程审计。

十、性能、查询与可用性权衡

加密会增加CPU、延迟、存储空间和密钥服务依赖。字段加密可能无法进行模糊查询和排序,应用层解密可能增加网络和内存风险,透明加密可能影响数据库性能,密钥服务故障可能导致业务无法读取数据。

架构设计要根据数据敏感性、访问频率、查询需求和故障影响选择保护级别。低敏感展示数据可以脱敏,高敏感原始字段采用字段加密,备份和归档采用整体加密,核心通信采用TLS。对高频读取可以使用短期受控缓存,但缓存也要有生命周期和清理策略。密钥服务要高可用,并设计安全的失败模式:不能为了可用性无限缓存明文或长期密钥。

十一、加密合规与密码使用治理

密码技术的使用可能受到法律、行业和组织标准约束。系统应使用经过评估、批准和持续维护的算法、协议和密钥长度,禁止自行实现关键密码算法,禁止使用已不安全的协议和弱参数。

治理内容包括算法目录、密钥生命周期、证书管理、密码设备、密钥备份、人员职责、配置基线、使用审计和应急替换。加密改造要盘点所有数据副本和接口,避免只保护生产数据库却遗漏日志、缓存、备份和测试环境。

十二、案例分析:政务电子证照平台加密设计

某政务平台保存身份证明、法人证照和办件材料,需要向多个部门提供授权查询。平台目前只使用HTTPS,数据库、备份和导出文件均为明文。

改进方案:对数据分类分级,明确身份证明和证照字段的保护等级;外部和内部接口均采用安全传输协议并验证服务身份;数据库采用透明加密保护存储介质,高敏感字段采用应用层或字段级加密;导出文件加密并设置有效期、访问密码和水印;备份、快照、日志和临时文件纳入加密与权限控制;由专用密钥管理服务生成和保存密钥,数据密钥与主密钥分离,按环境和租户隔离;密钥调用采用最小权限、临时授权和审计;证照签发和交换需要数字签名以保证来源和完整性,不能用加密代替签名;开发测试环境使用脱敏数据和独立密钥;设计密钥轮换、吊销、备份和灾难恢复流程;定期检查算法、证书、密钥和数据副本。

十三、综合知识练习

选择题1

数据加密的主要安全目标是( )。

A. 机密性 B. 自动恢复服务 C. 消除所有漏洞 D. 替代权限管理

答案:A。解析:加密主要降低未授权主体读取数据内容的可能性。

选择题2

下列做法最不安全的是( )。

A. 密钥由专用服务管理 B. 密钥与密文分离保存 C. 将生产密钥写入代码仓库 D. 对密钥使用进行审计

答案:C。解析:代码仓库可能被复制、泄露或长期保留,不能存放生产密钥。

选择题3

下列关于加密和数字签名的说法正确的是( )。

A. 二者完全相同 B. 加密主要保护机密性,数字签名主要提供真实性和完整性 C. 签名只能保护可用性 D. 哈希一定可以还原明文

答案:B。解析:加密和签名解决的安全目标不同,哈希通常不可逆。

简答题

为什么实际系统常采用混合加密?

参考答案:对称加密速度快、适合大量业务数据,但需要解决密钥安全分发问题;非对称加密便于身份认证、密钥协商和签名,但计算成本较高。混合加密先使用非对称机制确认身份并协商会话密钥,再使用对称算法传输大量数据,兼顾安全性、性能和可扩展性。

十四、论文素材与今日复盘

论文可写:“在数据安全设计中,我将加密视为覆盖传输、存储、备份、终端和共享过程的体系能力。根据数据分类分级,对普通数据采用受控访问和脱敏,对高敏感字段实施字段加密,对数据库、文件和备份实施存储加密,对接口采用安全传输和服务身份认证;通过独立密钥管理服务完成密钥生成、分发、轮换、备份、吊销和销毁,数据密钥与主密钥分离,密钥使用遵循最小权限并全程审计。同时使用数字签名和完整性校验保护来源与内容,避免把加密误当作身份、权限和审计的替代品。”

今日复盘:加密主要保护机密性,但必须配合密钥管理、访问控制、完整性和审计;传输、数据库、文件、备份、缓存和测试环境都可能需要保护;混合加密兼顾性能与安全。下一篇进入 4.4.2 对称密钥加密算法。