4 个版本 (破坏性更新)
0.5.0 | 2023年4月1日 |
---|---|
0.4.0 | 2023年4月1日 |
0.3.0 | 2023年3月31日 |
0.2.0 |
|
0.1.0 | 2023年3月31日 |
#2236 in 密码学
每月55次下载
22KB
426 行
幻觉
使用透明客户端加密将对象上传到或从与 S3 兼容的服务。
运行幻觉本地 HTTP 服务器,并像往常一样通过向 GET 和 PUT /key 发送请求与对象交互。本地幻觉服务器将透明地加密和解密对象键和数据,即使是部分范围请求。
这对于隐藏对象键和内容,使其免受访问桶和/或对象的他人(包括 S3 服务本身)的访问非常有用。
此软件不保护的内容
- 如果主密码弱或泄露,则任何内容都不会受到保护。
- 如果连接到 S3 服务的连接不安全,则传输层攻击。
- 对象键和内容的大小。
- 存在多少对象以及它们创建和最后更新的时间。
- 创建对象的人。
- 数据被有权访问对象或 S3 服务的某人重新排列或截断。
由于对象键加密的方式,无法列出对象。这不太可能有用,因为顺序将是随机的,通常需要完整扫描。通过单独的加密数据库跟踪对象列表是一种解决方案。
使用此软件的风险自负。
重要细节
- 如果丢失主密码,所有数据都将丢失。
- 没有验证主密码;输入错误的密码可能会导致对象键不匹配,并可能损坏数据。
加密机制
- 使用 PBKDF2 和 HMAC-SHA512 以及 650,000 次迭代来生成两个 256 位密钥。
- 一个密钥用作 HKDF 的 IKM,用于 SHA256,以将 256 位密钥扩展到加密对象键。
- 这些密钥使用 ChaCha2020-Poly1305 和固定非零随机数加密对象键。
- 另一个密钥用作 HKDF 的 IKM,用于 SHA256,以将 256 位密钥扩展到加密对象内容。
- 这些密钥使用 XChaCha2020-Poly1305 和加密随机 192 位随机数加密对象内容的每个 64 KiB 块。
依赖项
~30–44MB
~606K SLoC