端到端加密是 Proton Drive 的核心。正是它让您的文件保持私密,只有您和您选择的人才能访问——连我们也无法访问。由于我们的云存储应用中的每一项文件操作都受到这种方式的保护,加密性能会直接影响上传和下载的速度体验。

在我们此前针对上传和下载进行SDK 性能改进之后,此次最新更新在此基础上让 Proton Drive 的核心加密层更加高效。

Proton Drive 使用OpenPGP 标准来加密文件内容,我们现已采用该标准更新中引入的加密技术进展。今年构建 SDK 的一项重要工作是将 Drive 的文件操作迁移到共享基础之上,让所有平台上的应用更快、更流畅。其结果是文件上传性能最高提升 4 倍。这也为下一代 Drive 功能奠定了基础。

性能影响

加密对应用日常使用的流畅度有重大影响,因此将这一成本降低最高 4 倍,能让文件上传体验明显加快,尤其是在性能最为关键的设备上:

  • 在移动设备上,我们的基准测试显示,对一个 4MB 文件进行加密,过去需要 97 毫秒,现在仅需 32 毫秒。
  • 在更强大的处理器上,同样的操作过去需要 12 毫秒,现在仅需 3 毫秒。

过去,加密一部高清电影或 1,000 张高分辨率照片,手机大约需要一分半钟,快速的桌面电脑大约需要 12 秒。通过此次更新,同样的工作在移动设备上大约 30 秒即可完成,在桌面电脑上大约 3 秒。

Proton Drive 如何变得更快

Proton Drive 采用的结构是文件节点,一个节点可以拥有多个修订版本,每个修订版本代表文件的一个版本。文件内容随后被分块为数据块。节点包含用于加密数据块的加密材料。文件节点上的加密材料由节点密钥(一个已锁定的 PGP 私钥)和内容密钥数据包(用节点密钥加密的 PKESK)组成。

A diagram explaining the Proton Drive cryptographic update

Proton Drive 用于文件内容的 PGP 消息由两个数据包组成:

  • 公钥加密的会话密钥(PKESK):即节点的内容密钥数据包,由所有数据块共享。
  • 对称加密完整性保护数据包(SEIPD):即已加密的数据块内容。

新的加密方案

在此次加密技术更新之前,上传的文件使用 v3 PKESK 和 v1 SEIPD。现在,加密算法要求使用v6 PKESK 和 v2 SEIPD。内容所用的对称加密是 AES-GCM,它充分利用了大多数现代设备上的硬件加密能力。

由于文件更新时会话密钥在修订版本之间共享,文件的所有修订版本必须与第一个修订版本使用的加密方案保持一致。这意味着客户端必须更新,以便在对文件进行更改并上传新修订版本时将 PKESK 版本考虑在内。基于 Proton Drive SDK 构建的客户端会自动处理此事,因为该信息包含在会话密钥中。密钥在此处(新窗口)生成,并在加密数据块(新窗口)时使用。

为避免日后解密出现问题,提交的版本错误的修订将被拒绝。这意味着不支持该功能的客户端将无法更新在此变更生效后上传的文件。请务必更新您的 Proton Drive 客户端,以获得全部性能提升。

下一步是什么

这是 Proton Drive 的共享核心模型向更高效、更强大的云存储空间演进的重要一步,由端到端加密保护。SDK 为每个 Drive 客户端提供共享的加密核心,使这种规模的变更成为可能,并帮助我们更快地推进后续工作。 敬请期待今年更多的改进。

感谢您一直以来的支持,

Proton Drive 工程团队