浏览器加密

安全模型与系统架构

Revault 如何保护您的文件以及保护结束的位置。

安全模型
浏览器加密Next.js PWA
使用通行密钥登录Cloudflare Worker
存储和上传PostgreSQL · R2

账户设置

使用通行密钥创建账户,无需电子邮箱或密码。

通行密钥用于验证账户访问权限,不能解锁保险库。服务器保存公钥,会话令牌密封在带有 HttpOnly 和 SameSite 属性的 Cookie 中。

关闭或刷新标签页会退出登录。新标签页必须先使用通行密钥登录并通过保险库图案验证,才能显示保险库列表。

保险库图案

您的图案与一个随机的 256 位秘密通过 PBKDF2-SHA256(600,000 次迭代)派生包装密钥。该秘密仅保留在此浏览器中,服务端只接收加密后的主密钥。

此图案只能解锁此设备。请保管好恢复密钥,以便设置其他设备。

上传前已加密

每个保险库都有随机的 AES-256-GCM 主密钥。名称和文件夹结构均经过加密。文件在上传前使用大小受限的 Tink AES-GCM-HKDF 流式分段加密。

名称、预览和文件内容均已加密。计数、大小和时间戳对服务仍然可见。

存储和上传

Next.js PWA 使用同源 API 代理。Cloudflare Worker 验证会话和所有权。PostgreSQL 保存账户记录及加密元数据,R2 保存加密文件分块。

浏览器存储可以被清除或驱逐。在此浏览器之外保留加密备份。

保存您的恢复密钥

清除浏览器数据会移除设备秘密。请使用通行密钥登录,再用恢复密钥设置新图案。

加密备份不包含设备秘密。请用恢复密钥还原受图案保护的保险库。旧版保险库可能仍使用原来的密码短语。

恢复工具包包含恢复密钥和密钥包装器,但不包含您的文件。您仍然需要加密的云副本或独立的加密备份。

安全说明

图案的组合数量有限。如果有人复制了设备秘密,就可以离线尝试图案。

更改设备图案不会撤销其他设备或旧恢复密钥。如果加密密钥泄露,请将文件转移到新的保险库。

加密可保护存储的内容。对象计数、大小、时间戳和帐户关联仍然可见。受损的设备或前端可能会暴露未锁定的数据。 Revault是一个独立项目,没有经过独立的安全审计。