什么是零知识加密?简单指南

什么是零知识加密?简单指南

零知识加密意味着提供商无法访问您的数据。

零知识加密是一种受提供商限制的体系结构,其中服务不持有解密存储的用户内容所需的密钥。与供应商控制内容密钥的标准云加密不同,客户端加密可以在用户设备上保留该功能。法律请求、违规行为或内部人员仍可能会泄露提供商保留的密文、帐户记录、流量数据或其他元数据。 NIST 的密钥管理指南使密钥保管成为访问的核心,但客户端应用程序、操作系统和解锁设备仍然是信任边界的一部分。

零知识加密的工作原理

最简单的类比:酒店保险箱,只有您设置密码,酒店永远不知道它。如果您忘记密码,酒店无法为您打开保险箱。这不是设计上的缺陷。这就是设计。

从技术上讲,零知识加密通过三个步骤工作:

  1. 设备上的密钥派生。 用户提供凭证,例如密码、口令或模式。基于密码的密钥派生函数将其与盐相结合,在用户设备上生成密钥。良好分离的设计可以使用该密钥来解锁随机内容加密密钥,而不是直接使用人类凭证加密每个文件。

  2. 传输前加密。所有数据在离开设备进行云存储或备份之前,都使用派生密钥在设备上加密。加密输出(密文)是被上传的内容。

  3. 提供者不接收明文内容密钥。 内容密钥在使用过程中必须存在于客户端存储器中,并且也可以本地或远程存储在经过验证的加密信封内。提供者可以存储密文和包装密钥,而无需保留打开它们所需的用户秘密。帐户、流量、记录大小和时间元数据可能仍然可见。

关键约束:如果用户丢失所有有效凭证和恢复路径,则加密内容将无法访问。恢复仍可存在,但其密钥保管必须予以说明。如果仅通过电子邮件重置即可恢复可读内容,而无需旧设备批准、恢复短语、恢复密钥或等效的用户持有的机密,则提供商保留了返回明文的有效路径。

零知识加密与其他类型的加密

「加密」这个词出现在几乎每个云服务的营销材料中。各类型之间的差异是实质性的。

类型 密钥持有者 提供商可以读取数据 能否在提供商泄露后存活 示例
无加密 不适用 Dropbox(标准版)
传输中加密(TLS) 提供商 是(在其服务器上静态存储) Google Photos
服务器端静态加密 提供商 是(他们持有解密密钥) 部分(取决于泄露范围) iCloud(标准)
平台端到端加密 客户端设备和帐户恢复系统 不通过正常的服务路径 取决于客户端、恢复和元数据暴露 iCloud 具有高级数据保护
提供商盲客户端加密 客户端和用户控制的恢复路径 没有提供商持有的明文内容密钥 内容可以保持加密状态;元数据和密文仍可能泄漏 加密保管库和备份系统

「静态加密」和「零知识加密」之间的区别是最常被混淆的。有了静态加密,提供商使用他们控制的密钥在其服务器上加密您的数据。这防止了服务器硬件的物理盗窃。它不防止提供商读取您的数据、针对数据和密钥的政府传票或内部威胁。提供商拥有解密能力。

使用提供商盲客户端加密,不会通过记录的协议向服务提供明文内容密钥。存储的密文对该提供商来说仍然是不透明的,而客户端软件、恢复路径、帐户元数据和软件交付渠道仍然需要信任和审查。

为什么零知识加密重要

数据泄露每年暴露数十亿条记录

身份盗窃资源中心报告称,2023 年美国发生了 3,205 起数据泄露事件,影响了约 3.53 亿人。当提供商持有内容密钥时,一次泄露可能会暴露存储的数据和解密数据的路径。提供商盲加密将这些资产分开:服务器漏洞仍然可能暴露密文和元数据,但不会暴露提供商持有的明文内容密钥。凭证猜测和客户妥协仍然是不同的风险。

法律强制是真实的威胁

可能会要求提供商披露他们保留的数据。提供商盲设计可以限制对密文和可用帐户、流量、计费或服务元数据的响应,因为提供商不持有明文内容密钥。另一方是否可以获得用户凭证、利用客户端或强制披露是一个单独的问题。 Apple 推出了高级数据保护 iOS 16.2 作为端到端加密的可选扩展 iCloud 数据。

「信任我们」不是安全架构

服务器端加密依赖于提供商控制的密钥和策略。提供商盲加密改变了密钥保管,因此记录的服务路径缺少明文内容密钥。这是一个更强的架构边界,但其力量仍然取决于正确的客户端代码、经过身份验证的软件交付、声音恢复、安全设备以及符合规范的实现。

密码学背后的 NIST 标准

AES-GCM 由美国国家标准技术研究院标准化 SP 800-38D (2007)。 AES 本身是由 NIST 在 2001 年通过公开竞赛选出的。 AES-256 指的是 256 位密钥。对均匀随机密钥进行穷举搜索在计算上是不可行的,但即使密钥导出函数输出 256 位,人类密码或模式也可以提供少得多的熵。

GCM(Galois/Counter Mode)添加了认证加密,意味着解密过程检测对密文的任何篡改。如果加密数据的单个位被改变,解密会失败而不是产生损坏的输出。这防止攻击者在未被检测的情况下操纵加密数据。

PBKDF2 (基于密码的密钥导出函数2),在中指定 RFC 8018,通过重复的伪随机函数调用将人类提供的凭证转换为固定长度的密钥材料。更多的迭代会增加每次猜测的成本。它们不会向可预测的模式或密码添加熵,因此凭证选择和离线验证仍然很重要。

Vaultaire 如何实现提供商-密钥分离

沃尔泰尔 是一个客户端加密保管库 iPhone。从产品意义上来说,通常被宣传为“零知识”,其更狭义的记录声称是 Wraxle 不接收明文保险库内容或解密它所需的密钥。以下是每一层的实施和剩余信任边界的工作方式。

密钥推导。 用户在 25 个点的 5x5 网格上绘制图案。 PBKDF2-HMAC-SHA512 将该序列与一个设备范围的序列结合起来 Keychain salt 进行 600,000 次迭代以获得 256 位保管库密钥。保险库密钥对加密索引进行身份验证并包装一个单独的随机 256 位主密钥。恢复信息(包括模式)存储在 AES-GCM 加密的 Keychain 数据库而不是纯文本文件或 Vaultaire 帐户。

文件加密。 每个导入的文件都经过加密 AES-256-GCM 在随机主密钥下。 CryptoKit 使用新的随机数创建经过身份验证的密封盒,并且流格式为每个有序块派生一个独特的随机数。

元数据加密。 文件名, MIME 类型、日期、索引记录和缩略图数据也受到保护 AES-256-GCM。 Vaultaire 不使用 ChaCha20 作为保管库元数据。

密钥管理。 Vaultaire 像平常一样存储其设备盐和加密恢复数据库 iOS Keychain 受保护的通用密码项目 WhenUnlockedThisDeviceOnly 无障碍等级。模式派生的保管库密钥和随机主密钥通过以下方式在应用程序内存中进行处理: CryptoKit。锁定会降低活动键状态,但 Swift 和 iOS 不支持保证每个临时副本都被覆盖。

避难所发现。 正常界面不显示保管库列表。本地格式为每个保管库准确存储 1 个加密索引文件,维护代码可以枚举这些文件。因此,具有应用程序容器访问权限的人可以计算加密索引,尽管文件名不会显示模式、名称或纯文本内容。查看完整内容 安全架构模式加密解释.

如何判断应用是否使用真正的零知识加密

从三个快速测试开始,然后验证已发布的架构:

  1. 忘记密码测试。 如果仅通过电子邮件重置即可恢复可读数据,请询问提供商持有的哪种机制恢复了有效内容密钥。用户保留的恢复短语、旧设备批准和提供商控制的重置是不同的设计。

  2. 新设备测试。 如果新设备恢复了可读内容,请识别授权它的秘密或可信设备。仅帐户登录就表明了提供商控制的恢复路径;恢复短语加上加密的备份记录可以保持提供者密钥分离。

  3. 账户测试。 电子邮件地址或电话号码将身份与服务元数据联系起来,但它本身并不能证明提供商可以解密内容。检查密钥层次结构、恢复设计、客户端代码或审计、元数据策略以及经过身份验证的密文是否允许离线凭证检查。

这些测试是过滤器,而不是安全证明。一致的规范应该命名内容密钥、解锁密钥、盐、派生参数、经过身份验证的加密格式、随机数规则、恢复信封、本地秘密存储、云元数据以及明文密钥存在的点。独立审查是比产品标签更有力的证据。

常见问题

零知识加密与端到端加密相同吗?

它们有重叠,但不完全相同。端到端加密(E2EE)意味着数据在发送方设备上加密,仅在接收方设备上解密。零知识加密意味着提供商无法访问数据。如果提供商在某时点生成或访问过密钥,即使端到端加密,服务也可能不是零知识的。零知识加密是更严格的标准。

如果我在零知识加密下丢失了密码会怎样?

如果每个有效凭证和恢复信封丢失,您的数据将永久无法访问。提供商控制的重置或主密钥会削弱提供商边界,因此必须单独设计恢复。 沃尔泰尔 生成一个包含 9 个单独单词的自定义短语,其派生的恢复密钥可打开加密的保管库密钥信封。该短语不会重新生成或编码密钥,新设备恢复也需要匹配的加密密钥 CloudKit 记录。

执法机构可以访问零知识加密数据吗?

提供商可能必须披露存储的密文及其保留的帐户、流量、计费或服务元数据。如果没有提供商持有的明文内容密钥,该提供商就无法使用其正常服务路径来解密内容。设备利用、凭证发现、恢复副本和强制披露是不同的途径,其合法性和有效性因司法管辖区和事实而异。

零知识加密比普通加密慢吗?

AES-256-GCM 性能并不取决于谁掌握着钥匙。基于密码的推导增加了解锁期间的工作量,其持续时间取决于算法、迭代次数、设备和实现。应用程序应该衡量支持的硬件上的成本,并平衡响应能力与每个离线猜测所施加的成本。

零知识是否意味着应用完全不收集任何数据?

不一定。该术语涉及提供商的内容密钥边界,而不是每个数据流。应用程序仍可以处理帐户数据、分析、崩溃报告、IP 地址、记录大小、时间或其他服务元数据。 Vaultaire 不需要身份帐户,并表示其基于同意的分析不包括保险库内容、模式、短语和解密密钥;它的 隐私政策 描述当前的收集和保留规则。

零知识加密与 Apple 的高级数据保护相比如何?

Apple 的高级数据保护 (ADP) 于 iOS 16.2,将端到端加密扩展到其他 iCloud 类别并使用 Apple 帐户恢复模型。 Vaultaire 默认将保管库内容保存在本地,并且不需要 Vaultaire 身份帐户;可选的备份、同步和共享使用客户端加密 CloudKit 记录在用户的 Apple 帐户中。 Vaultaire 还提供模式分离的金库访问和 胁迫模式,其存储和恢复限制中描述 合理否认文档.

摘要

零知识加密最好被视为提供者密钥分离声明:服务不持有解密存储内容所需的明文密钥。这比提供商控制的密钥下的服务器端加密更强,但这并不是说密钥只存在于内存中,元数据消失,或者每个客户端和设备的妥协都被击败。通过其关键层次结构、恢复设计、实施和独立审查来判断产品。

阅读安全架构