安全概览
- 文件、文件和文件夹名称以及预览图,都会在上传前于浏览器中使用 AES-256-GCM 加密
- 加密密钥从不会以可用形式到达我们的服务器,所以我们无法读取你的文件
- 你的账号密码永远不会离开你的设备
- 可选的两步验证,通过邮件发送一次性验证码
- 文件冗余存储在多个数据中心,可抵御火灾和水灾
- 服务器和数据库位于芬兰,受 GDPR 和芬兰数据保护法约束
AES-256-GCM 端到端加密
上传文件时,你的浏览器会专门为这个文件生成一个全新的随机 256 位密钥。文件会被切分成多个数据块,每个数据块都使用各自唯一的随机数(nonce)通过 AES-256-GCM 加密,然后才会发送给我们。文件名也用同一个密钥加密,所以我们连你分享的是什么都不知道。对于照片和视频,浏览器会生成一张小预览图,并用同一个密钥加密。
文件夹的原理相同。每个文件夹都有自己的随机密钥,用于加密文件夹名称,并锁住其中所有内容的密钥。因此,分享一个文件夹只会开放该文件夹的访问权限,不涉及其他任何内容。
AES-GCM 是一种认证加密算法。只要加密文件中有一个比特发生变化,无论是磁盘故障还是有人篡改,解密都会直接失败,而不会悄悄交给你一个损坏的文件。
密钥存放在哪里
每个分享链接都有自己的随机密钥,放在链接中 # 后面的部分。浏览器从不会把 URL 的这部分发送给服务器。收件人打开链接时,他们的浏览器会用这个密钥解开文件的密钥,下载加密文件并在本地解密。我们自始至终只能看到加密数据。
零知识账号
使用 VeilShare 不需要账号。即使你注册了账号,我们也依然无法读取你的文件,而且你的密码永远不会离开你的设备。
登录时,你的浏览器会用 Argon2id 处理你的密码。这是一种内存密集型算法,专门用来让密码猜测变得缓慢且代价高昂。浏览器会从结果中派生出两个独立的密钥:一个用于向我们的服务器证明你的身份,另一个用于解锁你的个人主密钥。服务器只保存第一个密钥的加盐哈希,而你的主密钥则用第二个密钥加密后存储。
保存在你账号中的每个文件和文件夹,其密钥都直接或通过所在文件夹由你的主密钥锁住。这样你登录后就能在任何设备上打开文件,而我们手里始终只有上了锁的副本。
恢复密钥与密钥轮换
注册时你会获得一个恢复密钥。如果你忘记了密码,它是保住已保存文件访问权的唯一方法,因为我们无法重置我们根本不持有密钥的加密。如果你认为密钥可能已经泄露,可以在设置中更换主密钥,浏览器会用新的主密钥重新锁住你保存的所有文件。
两步验证
在账号设置中开启两步验证后,仅凭正确的密码将无法登录。
- 验证码由密码学安全的随机数生成器生成
- 每个验证码 10 分钟后失效,且只能使用一次
- 验证码以哈希形式存储,从不保存明文
- 验证码尝试和重新发送请求都有频率限制,以阻止暴力破解
你还可以查看登录了你账号的所有设备,并逐个或一次性退出你不认识的会话。
抵御火灾、水灾和硬件故障
加密保护你的文件不被他人窥探。下面介绍我们如何保护文件免受火灾、水灾和硬件故障等物理灾害的影响。
即使整个数据中心损毁,文件也不会丢失
加密后的文件存储在 Cloudflare R2 上,它专为极高的持久性而设计。每个文件都以多个副本或纠删码分片的形式,分散存储在同一区域内多个数据中心的大量磁盘上。Cloudflare 的设计目标是:即使发生磁盘故障,或数据中心遭受火灾、水灾等物理损坏,数据也能完好保存。
位于芬兰的服务器和数据库,每日备份
我们的应用服务器和数据库运行在芬兰赫尔辛基的 Hetzner 数据中心,该数据中心通过了信息安全管理国际标准 ISO/IEC 27001:2022 认证。这意味着你的账号数据受 GDPR 和芬兰《数据保护法》保护。
数据库每天自动备份,并保留最近七天的备份。如果服务器出现故障,我们可以从最近的备份中恢复。
硬件被盗也不会泄露你的文件
你的文件、文件和文件夹名称以及预览图,都使用我们从不持有的密钥加密。因此,无论是磁盘被盗、备份泄露,还是我们的服务器遭到入侵,都无法暴露你分享的内容。
我们无法防范的情况
常见问题
参考来源
安全地分享文件
免费,无需注册。文件在上传前就已在浏览器中加密,我们无法读取。
分享文件