什么是零知识加密?简单指南
零知识加密意味着提供商无法访问您的数据。
零知识加密是一种加密架构,其中加密密钥仅在用户设备上派生和存储,从不传输到提供商服务器,因此服务提供商无法访问用户数据。与提供商持有密钥的标准云加密不同,零知识加密意味着即使有法院命令、数据泄露或内奸员工,提供商也没有什么可以移交。NIST 关于密钥管理的指南(SP 800-57)确立了密钥保管决定数据访问的原则——零知识加密将这一点推向了其逻辑结论。
零知识加密的工作原理
最简单的类比:酒店保险箱,只有您设置密码,酒店永远不知道它。如果您忘记密码,酒店无法为您打开保险箱。这不是设计上的缺陷。这就是设计。
从技术上讲,零知识加密通过三个步骤工作:
设备上的密钥派生。用户提供凭据(密码、通行短语或图案)。密钥派生函数(通常是 PBKDF2 或 Argon2)将此凭据与唯一的加密盐结合以生成加密密钥。这完全在用户设备上进行。
传输前加密。所有数据在离开设备进行云存储或备份之前,都使用派生密钥在设备上加密。加密输出(密文)是被上传的内容。
提供商永远看不到密钥。加密密钥仅在主动使用期间存在于设备内存中。它不会传输到提供商服务器。提供商存储的是与随机数据无法区分的加密 blob。
关键约束:如果用户丢失凭据且没有恢复短语,数据将永久无法访问。没有在没有独立存储的恢复机制的情况下有效的「忘记密码」流程。如果服务通过电子邮件提供密码重置且您的数据重新出现,该服务不使用零知识加密。它持有您的密钥。
零知识加密与其他类型的加密
「加密」这个词出现在几乎每个云服务的营销材料中。各类型之间的差异是实质性的。
| 类型 | 密钥持有者 | 提供商可以读取数据 | 能否在提供商泄露后存活 | 示例 |
|---|---|---|---|---|
| 无加密 | 不适用 | 是 | 否 | Dropbox(标准版) |
| 传输中加密(TLS) | 提供商 | 是(在其服务器上静态存储) | 否 | Google Photos |
| 服务器端静态加密 | 提供商 | 是(他们持有解密密钥) | 部分(取决于泄露范围) | iCloud(标准) |
| 提供商管理的 E2E 加密 | 提供商生成,用户存储 | 技术上否,但提供商在密钥生成时曾有访问 | 部分 | iCloud 高级数据保护 |
| 零知识加密 | 仅用户(在设备上派生) | 否。数学上不可能。 | 是。加密 blob 没有用户密钥毫无用处。 | Signal、Proton Mail、Vaultaire |
「静态加密」和「零知识加密」之间的区别是最常被混淆的。有了静态加密,提供商使用他们控制的密钥在其服务器上加密您的数据。这防止了服务器硬件的物理盗窃。它不防止提供商读取您的数据、针对数据和密钥的政府传票或内部威胁。提供商拥有解密能力。
有了零知识加密,提供商没有解密能力。其服务器上的加密数据对他们来说与对任何外部攻击者一样不透明。
为什么零知识加密重要
数据泄露每年暴露数十亿条记录
身份盗窃资源中心报告称 2023 年美国发生 3,205 起数据泄露,影响约 3.53 亿人。当持有加密密钥的提供商被泄露时,攻击者可能同时获得加密数据和解密密钥。零知识架构完全消除了这种风险。被泄露的服务器只包含在计算上不可能解密的密文。
法律强制是真实的威胁
多个司法管辖区的政府机构可以强制提供商交出存储的数据。如果提供商持有加密密钥,他们必须遵从。在零知识架构下,提供商对传票的回应是加密 blob,没有用户凭据毫无用处。Apple 的 iCloud 高级数据保护朝这个方向迈进,但仅在 iOS 16.2(2022 年 12 月)引入,默认未启用。
「信任我们」不是安全架构
标准加密依赖于提供商不访问您数据的承诺。零知识加密用数学保证取代了这一承诺。即使提供商想要,即使员工变坏,即使被具有不同隐私价值的公司收购,提供商也无法访问数据。该架构强制执行这一约束。
密码学背后的 NIST 标准
零知识实现中最常用的密码 AES-256-GCM 由美国国家标准与技术研究院在 SP 800-38D(2007 年)中标准化。AES 本身于 2001 年通过 NIST 的公开竞赛选出,取代了老化的 DES 标准。「256」指的是密钥长度(以位为单位)——256 位密钥有 2^256 种可能的值,这个数字如此之大,暴力破解需要的能量比太阳在其剩余寿命中产生的还要多。
GCM(Galois/Counter Mode)添加了认证加密,意味着解密过程检测对密文的任何篡改。如果加密数据的单个位被改变,解密会失败而不是产生损坏的输出。这防止攻击者在未被检测的情况下操纵加密数据。
PBKDF2(基于密码的密钥派生函数 2),在 RFC 8018 中指定,通过重复哈希将人类提供的凭据转换为加密密钥。数十万次运行哈希函数使每次密码猜测在计算上代价高昂,将简单的图案或密码转换为能抵抗暴力攻击的密钥。
Vaultaire 如何实现零知识加密
Vaultaire 是建立在零知识架构上的 iPhone 保险库应用。以下是每一层的实现工作方式。
密钥派生。用户在 25 个点的 5x5 网格上绘制图案。按顺序排列的点序列输入具有 HMAC-SHA512 和每个保险库独特加密盐的 PBKDF2。输出是 256 位 AES 加密密钥。图案永远不会存储在设备上。不以哈希形式,不以任何表示形式,不以任何形式。
文件加密。每个导入的文件使用派生密钥和该文件唯一的随机生成初始化向量(IV)通过 AES-256-GCM 加密。因为 IV 不同,相同的文件产生不同的密文。
元数据加密。文件名、创建日期和缩略图数据使用 ChaCha20(与文件加密 AES-256-GCM 不同的密码)单独加密。对元数据使用不同的密码提供了加密多样性,并消除了缓存时序侧信道攻击。
密钥管理。Apple Secure Enclave 在其自身拥有加密内存的专用硬件协处理器中存储密钥材料。当 Vaultaire 关闭或用户切换时,密钥从应用内存中清除。
无保险库注册表。没有列出保险库的数据库,没有计数,没有名称。每个图案打开不同的保险库。应用本身无法确定存在多少个保险库。查看完整的安全架构和图案加密说明。
如何判断应用是否使用真正的零知识加密
三个不到一分钟的测试:
忘记密码测试。如果应用可以通过电子邮件重置您的密码且您的数据重新出现,应用持有您的加密密钥。不是零知识。
新设备测试。如果您在新设备上登录,数据出现时没有从旧设备传输密钥或输入恢复短语,服务器有您的密钥。不是零知识。
账号测试。如果应用需要电子邮件地址或电话号码,提供商在您的身份和数据之间有联系。这不一定是不符合资格的,但结合以上任何一项,它确认提供商可以访问您的数据。
通过所有三项测试的应用:Signal、Proton Mail、Standard Notes、Vaultaire。至少失败一项的应用:大多数云存储服务,App Store 上大多数「保险库」应用。
常见问题
零知识加密与端到端加密相同吗?
它们有重叠,但不完全相同。端到端加密(E2EE)意味着数据在发送方设备上加密,仅在接收方设备上解密。零知识加密意味着提供商无法访问数据。如果提供商在某时点生成或访问过密钥,即使端到端加密,服务也可能不是零知识的。零知识加密是更严格的标准。
如果我在零知识加密下丢失了密码会怎样?
您的数据将永久无法访问。没有主密钥、没有后门、没有在没有单独存储的恢复短语的情况下有效的恢复流程。这是根本的权衡取舍:绝对的隐私需要绝对的责任。一些零知识应用(包括 Vaultaire)在保险库创建时生成恢复短语,可以在主要凭据丢失时重新生成加密密钥。
执法机构可以访问零知识加密数据吗?
执法机构可以强制提供商交出存储的数据。有了零知识加密,提供商交出的数据是一个没有用户密钥就毫无用处的加密 blob。执法机构是否可以强制用户提供密钥是因司法管辖区而异的单独法律问题。美国法院通常认为强制生物特征解锁(Face ID、指纹)是允许的,而强制密码/图案披露在第五修正案下更具争议性。
零知识加密比普通加密慢吗?
加密和解密操作是相同的。AES-256-GCM 运行速度与持有密钥的人无关。唯一的额外成本是密钥派生:在现代 iPhone 上运行数十万次迭代的 PBKDF2 大约需要 0.5-2 秒。这在保险库解锁时发生一次,而非每个文件。实际上,用户不会注意到速度差异。
零知识是否意味着应用完全不收集任何数据?
不一定。零知识特别指加密架构。提供商无法访问加密内容。应用仍可能在用户选择启用的情况下收集匿名分析、崩溃报告或使用元数据。它无法收集的是加密文件的内容、加密密钥或用于派生密钥的凭据。Vaultaire 的隐私政策详细说明了经用户许可收集的可选数据。
零知识加密与 Apple 的高级数据保护相比如何?
在 iOS 16.2 中引入的 Apple 高级数据保护(ADP)将端到端加密扩展到大多数 iCloud 数据类别。启用 ADP 后,Apple 无法访问受保护的数据。与专用零知识应用的主要区别:ADP 是选择启用(默认关闭),需要 Apple ID,且只保护 Apple 生态系统内的数据。Vaultaire 这样的零知识保险库应用独立于 Apple 基础设施工作,不需要账号,并添加 ADP 不提供的合理推诿和胁迫模式等功能。
摘要
零知识加密是提供商数学上无法访问用户数据的架构,因为加密密钥从不离开用户设备。它与标准加密、静态加密,甚至某些形式的端到端加密的区别在一个关键方面:提供商无法访问数据是由数学而非政策强制执行的。权衡取舍——丢失密钥意味着丢失数据——不是缺陷。这是使保证变得真实的机制。