全部文章
安全阅读约 6 分钟

端到端加密是什么意思:它到底保护了什么

几乎每个服务都说“你的文件已加密”,但只有端到端加密能让服务方自己也读不了文件。本文用通俗的话讲清它的原理,以及它的局限。

作者:Transfr 团队

端到端加密(E2EE)的意思是:文件在离开你的设备之前就已经加密,只有持有密钥的人才能解密,负责存储和传送文件的服务方永远解不开。普通的“加密”服务会在传输途中和存储硬盘上保护文件,但密钥握在服务方自己手里;用了端到端加密,服务方看到的始终只是一堆乱码。

这个区别听起来很技术,却决定了服务器被入侵、员工越权查看,或者服务方收到调取数据的要求时,谁能读到你的文件。本文讲清楚你会在宣传里看到的三种加密,端到端加密在文件传输中如何工作,以及它在实际使用中的局限。

三种加密有什么区别?

每一层加密分别保护什么
类型保护什么谁持有密钥服务方能读取文件吗?
传输加密(TLS,浏览器地址栏的小锁)文件在网络上传输的过程你的浏览器和服务器,每次会话一把能,文件到达服务器后
存储加密(例如存储层的 AES-256)存放在服务方硬盘上的文件服务方能
端到端加密文件在发送者和接收者设备之外的所有环节只有持有密钥的人不能

传输加密依靠 TLS 协议,目前的版本是 TLS 1.3(RFC 8446),防止有人在网络上窃听。存储加密防止硬盘被盗后文件被读取。这两层都是标准做法,也都值得有,但在这两种情况下,服务方都能解密文件,因为密钥由它管理。端到端加密是在它们之上再加一层,而这一层服务方拿不掉。

端到端加密的原理:一次文件传输是怎么完成的

  1. 第 1 步

    浏览器生成密钥

    开启端到端加密后,你的浏览器会随机生成一把密钥,不需要你输入,也不需要你记住。

  2. 第 2 步

    上传前先加密

    每个文件都在你的设备上用这把密钥加密,采用 GCM 模式的 AES 等现代算法,同时还能发现文件是否被篡改。

  3. 第 3 步

    只上传密文

    服务方存储和传送的,是它自己无法读取的加密数据。

  4. 第 4 步

    密钥放在链接里

    密钥被附加在下载链接的 # 号后面。网址的这一部分只留在浏览器里。

  5. 第 5 步

    接收者的浏览器解密

    接收者打开完整链接后,浏览器下载加密文件,再用密钥在本地解密。

为什么 # 后面的密钥不会发给服务器?

网址末尾可以带一个片段标识符,也就是 # 号后面的部分。HTTP 标准(RFC 9110)规定,片段标识符留给客户端处理,不会随请求发送:接收者打开链接时,浏览器向服务器请求的是不带片段的页面,然后在本地读取密钥。这正是 Mozilla 已停止运营的 Firefox Send 服务推广开来的设计,Transfr 的端到端加密也是这样工作的。

端到端加密能防住什么?

  • 服务器被入侵:被盗走的文件没有密钥就无法读取。
  • 内部人员访问:服务方的员工打不开你的文件。
  • 向服务方调取数据:服务方交不出它从来没有拿到过的可读内容。
  • 存储配置失误:即使某个存储桶意外暴露,里面也只是密文。

法规层面也有好处。中国《个人信息保护法》第五十一条把加密列为个人信息处理者应当采取的安全技术措施之一;第五十七条规定,处理者采取的措施能够有效避免信息泄露、篡改、丢失造成危害的,可以不通知个人,但主管部门认为可能造成危害的,有权要求通知。欧盟 GDPR 第 34(3)(a) 条也规定,数据经加密等方式对未经授权的人无法识读时,可以不通知受影响的个人;欧洲数据保护委员会补充说,这只适用于妥善加密、密钥也没有泄露的数据。详见个人信息保护法与文件传输。

端到端加密防不住什么?

  • 链接泄露:谁拿到完整链接,谁就拿到了密钥。
  • 设备被入侵:发送者或接收者电脑上的恶意软件、恶意浏览器扩展,可以在加密前或解密后看到文件。RFC 9110 本身也提到,片段对页面中的脚本是可见的。
  • 元数据:视服务而定,文件名、大小、日期和邮箱地址可能仍然对服务方可见。
  • 接收者之后怎么处理:文件解密并保存后,就是一个普通文件。

实际使用中要做哪些取舍?

服务方读不了文件,也就没法替你对文件做太多处理。以 Transfr 为例,开启端到端加密意味着:

  • 文件在浏览器中用 AES-128-GCM 加密,密钥放在链接的片段里;底层的存储加密(AES-256)依然有效。
  • 预览在接收者的浏览器里解密后生成,仅限 2 GB 以内的文件,并且链接里要带着密钥;更大的文件需要下载后查看。
  • 不保留文件夹结构,页面刷新后无法续传中断的上传;从 Drime 导入的文件不能端到端加密,因为是 Transfr 替你复制这些文件。
  • 密钥从不存储在 Transfr 的服务器上。但每当 Transfr 替你发送包含链接的邮件,无论是发给收件人,还是已登录发送者收到的确认邮件,你的浏览器都会把带密钥的完整链接交给它,以便放进邮件;它只用于这封邮件,之后邮件会留在各自的邮箱里。如果要最严格的做法,请自己复制链接,通过你信任的渠道发送。

这些都不是缺陷,而是“服务方看不到你的内容”的直接结果。日常传输,设置密码和有效期往往就够了;机密资料,多一层保护值得这些取舍。

下一次传输,用端到端加密

Transfr 免费提供,还可以同时加上密码和有效期。每次传输最多 100 GB。

发送加密文件

端到端加密和链接密码有什么区别?

两者解决的问题不同,配合使用效果最好。密码决定谁能打开下载页面,由服务方负责校验,所以服务方仍然可能接触到文件。端到端加密决定谁能读到内容,服务方也包括在内。两者结合,光有泄露的链接不够,服务方也永远看不到内容。密码和有效期怎么选,见分享链接密码和有效期。

什么时候应该用端到端加密?

场景建议用端到端加密吗?
发给家人的旅行照片可选
给客户的交付物(设计、视频)未发布的作品建议使用
合同、工资条、身份证件建议
病历、法律或财务资料建议,并加密码和短有效期
源代码、产品规划、并购文件建议

你常用的工具里,哪些用了端到端加密?

你可能每天都在用端到端加密而没有察觉:WhatsApp 默认对聊天中的消息、照片、视频和文件进行端到端加密;Telegram 只有“私密聊天”是端到端加密的,普通的云端聊天不是。Proton Drive、Tresorit Send 和 Wormhole 等服务会在上传前于浏览器中加密文件。而主流网盘一般只做传输加密和存储加密,密钥由服务商管理。大文件传输工具对比一文标出了哪些服务免费提供端到端加密,律师事务所页面介绍了专业人士如何把它和密码、短有效期结合使用。

怎么判断一个服务是不是真的端到端加密?

  • 加密应该发生在上传之前,在你的浏览器或应用里,而不是“在我们安全的服务器上”。
  • 服务方应当说明它不存储密钥:看密钥是否放在链接片段里,或由只有你知道的密码派生,同时留意它替你发送链接邮件时是怎么处理的。
  • 如果服务方在没有密钥的情况下,还能在服务器端给加密文件生成预览或进行扫描,那就不是端到端加密。
  • 找一找它对加密算法和整体设计的说明,而不只是“银行级安全”这样的口号。

想了解从密码到收件人管理的更多习惯,见文件安全发送清单和安全文件传输页面。

免费发送大文件

  • 每次传输最高 100 GB
  • 无需账户
  • 加密存储,托管于欧洲
立即发送文件

常见问题

继续阅读

相关指南

准备好发送文件了吗?

拖入文件,获取链接,收件人即可下载原始文件。每次传输最高 100 GB 免费,无需注册。