威胁模型
端到端加密的文件传输,全程不上传
大多数网盘说的「加密」是指传输加密加存储加密 —— 两把钥匙都在服务商手里。这里的密钥由两个浏览器当场协商、且从不离开浏览器,这是另一句话:就算我们想看,也读不出你的文件。
一句话回答
什么样才算端到端加密的文件传输?
判断标准只有一条:两端协商出的密钥,中间任何一方都不曾持有。这里双方浏览器用 ECDH P-256 推导出共享密钥,每个数据块再用 AES-256-GCM 单独封装;服务器只负责牵线,手上没有密钥、没有密文,也没有文件可以交出去。
传一份不方便上传的东西
将连接码提供给对方,对方输入后即可建立连接
密钥在连接时于浏览器内生成,关掉页面即销毁。
怎么用
- 1
密钥在文件所在的地方生成
两端各自在本地生成 ECDH P-256 密钥对,只交换公钥部分;共享密钥通过 HKDF 在两边各自推导出来,本身从不上网。
- 2
由你来确认中间没有人
连上之后,两边屏幕会显示同一组安全校验词,它由共享密钥推导而来。念给对方听,一致就说明没有第三方分别和你们各协商了一把钥匙。
- 3
每一块都单独封装
文件的每个数据块在离开你的机器前就用 AES-256-GCM 加密。被篡改或被截断的块通不过认证,传输会中止,而不是把坏数据写到硬盘上。
「加密」其实是三种不同的承诺
| 说法 | 谁能读到文件 | 常见于 |
|---|---|---|
| 传输加密(TLS / HTTPS) | 服务商 —— 文件到了它那儿就是明文 | 几乎所有网站 |
| 存储加密 | 服务商 —— 钥匙在它手里 | 网盘、上传型快传 |
| 端到端加密 | 只有两端 | 本站 |
差别在有人来要数据的时候才显形:一次调证、一份泄露的备份、一个权限过大的内部工具、三年后改掉的一版隐私政策。手上有明文的服务商,就有东西可以交出去;这里既没有副本,也没有能拿出来的密钥。
我们的服务器到底能看到什么
两个互不知道对方地址的浏览器,仍然需要一个信令服务来互相介绍。把经过它的东西列清楚,比任何一枚安全徽章都有意义:
- 6 位连接码:短时保存在内存里,好让第二个浏览器找到第一个。
- 连接协商信息(SDP 与 ICE 候选):里面是网络地址,不是文件数据。
- 任何 Web 请求都会有的那些事实:IP、时间戳、限流计数。
- 看不到文件名、大小和内容 —— 这些是握手完成之后在加密通道里交换的。
- 看不到加密密钥 —— 它在两端各自推导,从不传输。
- 不存储你的文件 —— 因为文件根本不经过它。
加密保护不了的部分
- 对方本人。文件到了他手里就是他的了 —— 加密管的是管道,不管管道另一头发生什么。
- 任一端被入侵的设备。你电脑上的恶意软件在文件被加密之前就能读到它。
- 网络层面的元数据。运营商能看到两个地址之间交换了大量加密数据,只是看不出内容是什么。
- 跳过核对安全校验词。挡住中间人的正是这一步;两边都不念,就等于闭着眼睛信任这次握手。
常见问题
这到底是端到端加密,还是只有 HTTPS?
两者都有,而且是两层。HTTPS 保护页面和信令;在它之上,两个浏览器用 ECDH P-256 协商密钥,对文件的每个数据块做 AES-256-GCM 加密,所以中间任何环节 —— 包括我们 —— 拿到的都是读不懂的密文。
安全校验词是干什么的?
它由共享密钥推导而来,只有双方协商出同一把钥匙时才会一致。念一遍就能确认没有人挤进握手中间。五秒钟的事,而且这是软件没法替你做的那一步。
如果有人要求你们交出我的文件呢?
没有东西可以交。文件从不上传、从不存储,密钥只在连接期间存在于两个浏览器里。
你们记日志吗?
信令服务会保留它必需的房间状态,带很短的有效期,另外还有常规的限流数据。文件名和文件内容根本到不了它那里,也就无从记录。
为什么是分块加密,而不是整个文件加密一次?
因为要流式传输。每个块自带认证标签,损坏或篡改在到达时就会被发现,而不是等几十 GB 下完才报错;断点续传也能从一个干净的块边界继续。
这能满足公司的合规要求吗?
这个要问贵司负责合规的人。我们能明确说的是机制本身:服务端没有副本、服务端不持有密钥、端到端加密且算法公开。我们不做任何认证方面的声称。
传一份你本来不愿意上传的东西
合同、体检报告、证件照、还没发布的作品 —— 这类文件的「它最后去哪了」应该有个确定的答案。
开始传输