问题域/PD-280

加密保险库

Encryption-at-Rest Vault

本地密钥管理、数据加密存储、seal/unseal 状态机与密钥恢复

子问题

1.DEK 密钥派生与包装

2.seal/unseal 状态机

3.recovery key 备份恢复

4.内存密钥清零

5.版本化密文格式与算法迁移路径

6.AAD 域分离防止密文跨上下文重放

7.明文数据透明迁移(SQL行级+文件级)

8.KDF 参数序列化与未来可调整性

各项目的解法1 solutions

Signals

横向对比

维度Moltis
加密算法XChaCha20-Poly1305 AEAD,24字节随机nonce
密钥派生Argon2id KDF,64MiB/3次迭代,参数可序列化
密钥架构DEK/KEK双层分离,密码变更O(1)不重加密数据
状态管理三态状态机 Uninitialized→Sealed→Unsealed,RwLock并发
恢复机制128-bit RecoveryKey独立Argon2id路径包装DEK
内存安全Zeroizing<[u8;32]>自动清零,Drop时擦除密钥
版本迁移密文首字节version_tag,Cipher trait可插拔替换
数据迁移透明迁移:SQL行级+文件级,.bak备份+0o600权限
域分离AAD上下文绑定(env:KEY_NAME / dek-wrap / provider_keys)

最佳实践

1.XChaCha20-Poly1305 优于 AES-GCM(nonce 更长)

2.Argon2id KDF 抗 GPU 攻击

3.Zeroize 确保密钥不残留内存

4.DEK/KEK 分离使密码变更 O(1) 无需重加密数据

5.密文首字节嵌入 version_tag 支持未来算法无缝迁移

6.Recovery Key 使用较轻 KDF 参数因其本身已有 128-bit 熵

7.迁移时原文件重命名为 .bak 而非删除,Unix 下 .enc 设置 0o600 权限