敏感数据加密方案
安全防护551 字预计 2 分钟阅读
提供在后端应用中防范敏感数据泄露的数据安全落地方案,涉及对称加密与非对称加密的运用。
引言
在当今的数据安全法背景下,保护用户隐私(如身份证、银行卡、健康记录)不仅是企业安全的底线,更是合规的硬性要求。对于存储在数据库中的敏感资产,必须在应用层落地的加解密方案,保证即使数据库文件被脱裤走,攻击者获取的也只是无法解读的密文。
加密算法基础:对称与非对称
对称加密 (Symmetric Encryption)
- 特点:加密和解密使用同一个密钥。速度极快,适合处理海量数据。
- 代表算法:AES(高级加密标准)。在生产中,严禁使用不安全的
ECB模式,必须采用加入了初始向量(IV)且具备认证能力的 AES-GCM 或 AES-CBC 模式。
非对称加密 (Asymmetric Encryption)
- 特点:使用一对密钥(公钥和私钥)。公钥公开用于加密,私钥自己妥善保存用于解密。由于计算速度较慢,不适合直接加密巨幅数据,常用于对对称密钥的交换或数字签名验证。
- 代表算法:RSA(建议密钥长度至少为 2048 位以上)、ECC(椭圆曲线密码学)。
敏感数据落库加密实战 (应用层)
在企业应用中,推荐采用**信封加密(Envelope Encryption)**机制:
信封加密的工作原理
- 对于每条具体的敏感数据(如用户 A 的身份证),在应用内存中生成一个一次性的随机对称密钥,称为数据密钥(DEK, Data Encryption Key)。
- 使用该 DEK 对身份证明文进行 AES 加密,生成密文。
- 接着,使用云端硬防护托管的**主密钥(KEK, Key Encryption Key)**对这个 DEK 自身进行加密,生成被加密后的 DEK 密文。
- 最后,把身份证密文和 DEK 密文一起存储到数据库中。
- 解密时,先调用 KMS 解密 DEK 密文,然后再拿解密出的 DEK 去解密身份证密文。
通过这种设计,即使黑客把数据库完整窃走,由于没有最顶层 KMS 的授权,依然无法解密数据,极大保障了数据的资产安全。