数据已经加密为何仍会泄露:密钥管理与使用链路的安全设计
从静态加密、传输加密、应用解密和密钥生命周期分析数据保护中经常被忽略的薄弱环节。
加密只保护特定状态
磁盘加密防止介质丢失,传输加密防止链路窃听,但应用处理数据时仍需解密。若攻击者获得应用权限、数据库高权账号或日志访问,加密可能无法阻止读取。设计前应识别数据在采集、传输、存储、计算、备份和导出各阶段的暴露方式。
密钥与数据必须分离
把密钥写在源码、镜像或同一数据库配置中,相当于把锁和钥匙放在一起。应用通过受控身份向密钥服务请求操作,尽量不直接取得可长期保存的明文密钥。不同环境、租户和数据级别使用独立密钥,限制能够解密的服务和条件。
信封加密降低管理复杂度
使用数据密钥加密内容,再用主密钥保护数据密钥,可以避免每次处理大量数据都调用远程密钥服务。密文需要保存算法、版本、随机数和密钥标识。禁止重复使用不安全的随机数,优先采用带完整性验证的现代加密模式,防止密文被静默篡改。
轮换不能破坏可用性
密钥轮换要区分新数据改用新版本和历史数据重新加密。应用在迁移期能够读取多个版本,但只用最新版本写入。建立密钥禁用前的依赖检查和回滚窗口,避免删除仍在使用的密钥导致永久数据丢失。备份恢复流程也必须包含对应密钥。
审计真实的数据使用
监控异常解密频率、跨区域访问、批量导出和权限变更。日志记录谁在何时因何业务访问哪类数据,但不能再次写入明文敏感内容。加密的价值取决于密钥是否受到更严格保护,以及解密动作是否遵循最小权限并能够被发现。
文章回复
0 条公开回复