敏感数据落盘之前,加密和脱敏这两道工序必须先做完,而不是等备份文件被拖走、测试库被整表导出、退役硬盘被人捡到,才想起来补救,落盘那一刻是最后一道可控关口,过了这个节点,数据就不再完全由你说了算。
敏感数据落盘加密和脱敏有什么区别
这两个词经常被混着用,实际上它们负责的事情完全不同,选错了会白花钱还留隐患。
加密管”看不懂”,脱敏管”不该看”
加密是把明文变成密文,持有密钥的人可以还原,目的是防泄露,数据库文件被拷走、备份磁带丢失、云盘快照外泄,加密都能兜住底线。
脱敏是改变数据本身的表现形式,比如把手机号中间四位替换成星号,把身份证号做哈希,把出生日期泛化成年龄段,目的是让不该看到原始值的人拿不到真值,典型场景是测试环境、数据分析、第三方外发。
一张表看清两者的分工
| 对比项 | 加密 | 脱敏 |
|---|---|---|
| 可逆性 | 可逆,持密钥可还原 | 静态脱敏通常不可逆 |
| 主要目的 | 防泄露、防拖库 | 防滥用、降权限 |
| 典型场景 | 生产库落盘、备份文件 | 测试库、分析库、外发数据 |
| 性能影响 | 写入和查询都有开销 | 一次性处理或查询时处理 |
| 业务可用性 | 基本保留原逻辑 | 视规则而定,可能影响查询 |
落盘顺序:加密保底,脱敏限量
比较稳妥的做法是:生产库里存的是密文,密钥放在独立的密钥管理系统里;当数据要流向测试、开发、外部分析时,先按规则脱敏,再落到目标环境。
两者不是二选一的关系,业内专家指出,只做加密,拿到密钥的业务方照样看到全量明文;只做脱敏,原始库一旦被拖走,替换规则也挡不住真实数据流失。
数据库敏感字段加密怎么实现
这是落盘环节最常被问到的问题,答案取决于你要防的是谁。
三个加密层次,先想清楚对手是谁
- 存储层加密:全盘或卷级加密,LUKS、BitLocker、云厂商的云盘加密,防的是物理介质丢失和退役硬盘被读。
- 数据库层加密:TDE 透明数据加密,防的是数据文件、备份文件被直接拷走,Oracle、SQL Server、MySQL 企业版都有对应能力。
- 应用层加密:字段级加密,密文进库,密钥在应用侧或 KMS,防的是 DBA、运维人员、云平台管理员。
防介质丢失,存储层够用;防内部人越权查看,必须上应用层字段加密,多数情况下是组合使用。
应用层字段加密的落地步骤
- 梳理字段清单,按《个人信息保护法》里的敏感个人信息定义圈定范围,身份证号、银行卡号、生物识别信息、行踪轨迹都属于高优先级。
- 选算法,国际通用选 AES-256-GCM,国内合规场景可选用 SM4,GCM 带完整性校验,能防密文被篡改。
- 设计密钥体系,主密钥放在 KMS 或 HSM 里,数据密钥用主密钥加密后随密文一起存,也就是信封加密,绝对不要把密钥和密文放在同一个库、同一台机器。
- 改造写入链路,以 PostgreSQL 为例,可以启用 pgcrypto 扩展:
CREATE EXTENSION IF NOT EXISTS pgcrypto;
INSERT INTO users (phone_enc)
VALUES (pgp_sym_encrypt('13800138000', '${DATA_KEY}'));
MySQL 也有 AES_ENCRYPT,但更推荐在应用层完成加解密,数据库只负责存密文,这样密钥不经过数据库进程。
- 处理查询需求,加密之后没法直接做模糊匹配,常用办法是加一个盲索引列,存
HMAC-SHA256(明文, 索引密钥)的结果,等值查询走盲索引,范围查询则需要额外设计。
密钥管理是生死线
密钥轮换周期建议不超过一年,历史密钥要保留用于解密旧数据,用 HashiCorp Vault 之类的工具可以做集中管理和审计:
vault kv put secret/app/db-key value=$(openssl rand -base64 32)
据工信部发布的相关密码应用要求,信息系统应做到密钥的生成、存储、分发、销毁全过程可管可控,密钥丢了,数据就是永久性损坏;密钥泄露,加密等于没做。
金融行业数据落盘合规要求有哪些
金融、医疗、政务这几个行业,落盘环节的监管要求比其他行业更细。
法律和标准的硬性约束
- 《数据安全法》要求对重要数据实行分级保护,落盘存储属于数据处理活动的关键环节。
- 《个人信息保护法》明确敏感个人信息处理需要单独同意,并采取加密、去标识化等安全措施。
- 金融行业可参照 JR/T 0197《金融数据安全 数据安全分级指南》和 JR/T 0223《金融数据安全 数据生命周期安全规范》,后者对存储环节的加密和脱敏都有明确描述。
审计留痕不能省
落盘加密之后,谁在什么时间解密了哪个字段、导出了多少条记录,都要有日志,行业共识认为,加密解决的是”存得安全”,审计解决的是”用得可查”,两者缺一不可,日志本身如果包含敏感字段,也要做脱敏处理再落盘。
上海地区企业常见的三个选型失误
- 只买了全盘加密,以为满足了字段级加密要求,测评时被指出粒度不够。
- 脱敏规则写死在代码里,业务字段一变更就漏脱敏,且没有回归测试。
- 密钥由开发人员本地保管,人员一离职就面临密钥失控。
本地部署数据脱敏工具大概多少钱
这是不少中小团队在预算阶段最关心的问题,价格差异确实很大。
成本构成拆开看
- 软件授权:商业产品通常按节点数、数据量或字段数计费,本地部署版本普遍比 SaaS 版本贵。
- 硬件与资源:脱敏过程要消耗 CPU 和内存,大批量静态脱敏需要单独的作业机。
- 实施服务:规则梳理、字段映射、和现有 ETL 流程对接,这部分往往占总投入的较大比例。
- 运维与升级:规则库更新、版本升级、密钥轮换演练。
综合下来,中小规模本地部署的常见投入从数万元起步,节点多、数据量大的场景会到数十万元,具体报价需要结合字段数量和并发要求去谈。
开源方案能不能顶
Apache ShardingSphere 自带数据脱敏能力,适合已经在用它的团队,各类开源脱敏框架也能覆盖身份证、手机号、地址等常见规则,开源的优势是零授权费,劣势是审计报表、规则管理界面、合规映射这些要自己补,人力成本会转移过去。
云上方案按量付费,起步门槛低,但数据要出本地,涉及数据出境和等保测评时会多一层评估。
Q&A:敏感数据落盘加密与脱敏常见问题
数据量不大的小团队,还有必要做落盘加密吗
有,数据量小不等于风险小,一份包含几百条客户信息的表格外泄,同样触发告知义务和监管问询,小团队可以从存储层加密加关键字段的应用层加密起步,成本可控。
加密之后还能做模糊查询吗
直接对密文做 LIKE 是查不到的,常见做法是拆分字段,把需要模糊匹配的部分单独存成脱敏或分片形式,或者引入支持密文检索的专用方案,设计阶段就要把查询需求一起考虑,事后改造代价很高。
静态脱敏后的数据还能还原吗
取决于脱敏规则,替换成固定字符、取整、泛化这类操作不可逆;使用映射表或格式保留加密的方案理论上可还原,但映射表本身就成了新的高敏感资产,必须单独加密保存并限制访问权限。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/690490.html




