ENCRYPTION / HOW IT WORKS
加密如何运作,
又能保护什么?
价值不仅取决于算法名称。关键在于如何将数据持有方与可读取数据的主体分离。
同样叫加密,保护范围可能不同。
以收货地址存储为例,传输、磁盘及数据加密保护不同的边界。
- 传输加密 / TLS
- 保护浏览器与服务器之间的通信。接收服务器仍可处理地址,TLS 不会自动保护数据库内容或被攻破的应用。
- 存储加密
- 防范磁盘及备份介质被盗。如果数据库在普通读取时透明解密,拥有 SQL 读取权限的用户仍可查看地址。
- 存储前加密
- 在应用中加密地址后保存密文。分离数据库读取权限与密钥使用权限,可防范仅数据库被盗的情况。
OneNym 将这些保护层与按用途授权结合。强密码技术很重要,限制解密路径同样重要。
实现会在内存中解密整个地址记录,再仅返回允许的字段,并非逐字段加密。接收方须管理取得的明文,客户也须管理注册前系统中的日志与存储。 使用与接入指南
用独立密钥保护数据密钥。
DEK 加密地址,KEK 保护 DEK,这称为信封加密。以下示例为每个地址使用专属 DEK。
- 使用密码学安全的随机源生成 DEK,并以认证加密保护地址。
- 使用密钥管理服务中的 KEK 封装 DEK。封装通过加密保护密钥。
- 保存密文、封装的 DEK、密钥版本及解密元数据。不要在数据库中保存明文 DEK。
- 需要地址时,按租户、用途、记录及字段授权。
- 获准服务解封 DEK,解密地址,仅返回获准字段。
数据库 密钥管理服务
加密地址 保护 DEK 的 KEK
封装的 DEK 密钥使用权限与审计
Nonce / 标签 / 密钥版本
↓ 获准服务访问两者
临时解密 → 配送处理
即使 KEK 不可导出,使用权限被盗后仍可能被滥用。应分离数据库与 KMS 访问、管理、紧急操作及服务凭据,也要保护解密后的内存与密钥缓存。
通过云密钥服务管理 KEK。
地址 Vault 使用 Azure Key Vault 管理 KEK,将保护数据加密密钥(DEK)的密钥使用权限与数据库访问分离。
云服务控制密钥及密码操作访问。OneNym 先按租户、记录、字段和用途授权。业务应用获得有限的 Vault API 权限,而非直接访问 KEK。
云密钥服务与 OneNym 的职责 →两种不同的密钥轮换。
轮换 KEK 可重新封装 DEK,而不改变数据密文。DEK 被攻破时需用新 DEK 重新加密数据。轮换无法回收被盗明文或旧密钥与密文副本。
不仅保护机密性,还检测替换攻击。
AES-GCM 等认证加密通过认证标签检测密文变化,验证失败必须拒绝。即使跨重试或多台服务器,也绝不能在同一 AES-GCM 密钥下重复使用 nonce。
将租户 ID、记录 ID 和模式版本绑定为附加认证数据(AAD)。将 A 租户密文复制到 B 租户记录时,以预期的 B 租户上下文验证将失败。
AAD 不加密,不应包含私密地址。预期 ID 必须来自已验证请求及可信记录。若信任与替换密文一同提供的 ID,就无法保持边界。
发生入侵后,哪些内容仍受保护?
- 仅数据库副本被盗
- 没有明文密钥及其他明文副本时,正确加密可保护地址内容。数量、ID、时间及大小等元数据的暴露需单独评估。
- 数据库与解密权限同时被攻破
- 仅靠加密无法阻止访问。通过范围限定授权、使用控制、异常检测及撤销限制影响。
- 配送服务器被攻破
- 合法处理中解密的地址可能被盗。不返回超出配送需要的字段。
- 地址已发送给合作方
- 撤销保险库密钥不会删除已共享明文,还需管理合作方的留存与删除。
部署前应提出的问题。
不仅问是否使用 AES,还应问谁可使用密钥、解密范围是否受限、使用是否审计、撤销多久传播到缓存、如何处理密钥丢失。保护边界及运维证据有助于评估。
技术参考资料
有关加密与密钥管理的一般原则,请参阅 OWASP 密码学存储速查表;有关密钥层级,请参阅 Microsoft 静态数据加密指南。本页说明 OneNym 的保护设计;每记录密钥为示例配置。
咨询技术集成