硬盘坏了送修,回来发现里面的客户资料被人恢复出来;数据库备份直接躺在网盘里,谁下载谁就能看。这两种事故都指向同一件事:数据加密存储没做。它的思路很简单,数据先变成密文再落盘,文件就算被人拷走,没有密钥也读不出来。

先分清三类加密对象

一是整盘加密,防设备丢失和硬盘外流;二是文件级加密,防单个文件外泄;三是数据库字段加密,防整个库被拖走。传输加密走 HTTPS 那套是另一码事,别混在一起。顺带提醒:MD5、SHA 这类哈希只能做校验,不可逆,不能当加密用。

整盘加密用系统自带功能

Windows 专业版及以上有 BitLocker,路径在控制面板的 BitLocker 驱动器加密,恢复密钥记得导出打印或存到别的账户,别只留在本机。macOS 用 FileVault,在系统设置的隐私与安全性里打开。Linux 发行版一般用 LUKS,装系统时勾选加密分区即可。现在的机器开全盘加密,性能影响一般不大,日常基本无感。

文件和数据库层面的做法

零散文件想加密,用 7-Zip 压缩时选 AES-256 并勾选加密文件名,密码别用生日和手机号。数据库层面多数产品有透明加密选项,SQL Server 的 TDE 开箱即用,MySQL 要配合密钥插件给表空间加密,具体以所用版本文档为准。更细的做法是应用层字段加密,手机号、身份证号单独加密后入库,需要查询的字段另建脱敏列。

密钥管理比算法更致命

AES-256 这类算法目前没有现实可行的破解手段,出事的几乎全是密钥管理:密钥和密文放在同一台服务器、写死在配置文件里、离职员工手里还留着旧密钥。原则就三条:密钥单独存放、定期轮换、做备份但和密文物理隔离。密钥一旦丢了,密文基本等于永久删除,所以开全盘加密之前,先把恢复密钥备份这件事办好。

给个实际判断:数据加密存储防的是两类事,防设备丢失开全盘加密就够,防数据库被拖库要重点做字段级加密和密钥隔离。预算有限先做后者,拖库才是最常见的泄露方式,这笔钱花得最值。