</> DevCN
菜单
推荐AI 与大模型后端与架构前端与跨端移动开发云原生与 DevOps数据库与数据工程网络与安全开源与开发工具产品与独立开发人工智能深度职场与成长

数据已经加密为何仍会泄露:密钥管理与使用链路的安全设计

从静态加密、传输加密、应用解密和密钥生命周期分析数据保护中经常被忽略的薄弱环节。


加密只保护特定状态

磁盘加密防止介质丢失,传输加密防止链路窃听,但应用处理数据时仍需解密。若攻击者获得应用权限、数据库高权账号或日志访问,加密可能无法阻止读取。设计前应识别数据在采集、传输、存储、计算、备份和导出各阶段的暴露方式。

密钥与数据必须分离

把密钥写在源码、镜像或同一数据库配置中,相当于把锁和钥匙放在一起。应用通过受控身份向密钥服务请求操作,尽量不直接取得可长期保存的明文密钥。不同环境、租户和数据级别使用独立密钥,限制能够解密的服务和条件。

信封加密降低管理复杂度

使用数据密钥加密内容,再用主密钥保护数据密钥,可以避免每次处理大量数据都调用远程密钥服务。密文需要保存算法、版本、随机数和密钥标识。禁止重复使用不安全的随机数,优先采用带完整性验证的现代加密模式,防止密文被静默篡改。

轮换不能破坏可用性

密钥轮换要区分新数据改用新版本和历史数据重新加密。应用在迁移期能够读取多个版本,但只用最新版本写入。建立密钥禁用前的依赖检查和回滚窗口,避免删除仍在使用的密钥导致永久数据丢失。备份恢复流程也必须包含对应密钥。

审计真实的数据使用

监控异常解密频率、跨区域访问、批量导出和权限变更。日志记录谁在何时因何业务访问哪类数据,但不能再次写入明文敏感内容。加密的价值取决于密钥是否受到更严格保护,以及解密动作是否遵循最小权限并能够被发现。

DISCUSSION

文章回复

0 条公开回复
未登录回复需要审核后公开
还没有回复,欢迎参与讨论。