安全架构:完整的技术堆栈

Vaultaire 不依赖于单一算法或单一巧妙技巧。它使用分层加密架构,其中每个组件都有特定的工作,任何一层的失败都不会危及其他层。这是您的私人数据与世界其他数据之间的每一个密码、协议和设计决策。

沃泰尔用途 AES-256-GCM 用于跨保管库索引、包装密钥、文件头、内容、缩略图和元数据进行身份验证的加密。 PBKDF2-HMAC-SHA512 从模式和设备范围内派生本地保管库密钥 Keychain 盐。该保管库密钥包含一个单独的随机 256 位主密钥,该主密钥通过以下方式执行文件加密 CryptoKit 在应用程序进程中。

加密堆栈

Vaultaire 使用多种协同工作的加密机制,每种机制都针对特定的工作进行选择。 PBKDF2 将人类凭证转变为保管库或恢复密钥。 AES-256-GCM 保护索引、包装器、元数据、缩略图和文件内容。随机主密钥将长期文件加密与可变模式分开。 Keychain 和 iOS 当设备锁定时,数据保护可保护设备绑定的盐和恢复记录。提供商持有的解密密钥无法让开发人员例行访问保险库明文。

这本身并不是复杂性。每层针对不同的攻击面。 AES-256-GCM 将机密性与认证相结合,修改后的密文无法通过验证。 PBKDF2 增加了测试每个模式或短语的成本。随机主密钥意味着模式更改可以重新包装一个密钥,而不是重新加密每个文件。 Keychain 数据保护 保护本地盐和恢复记录,而应用程序仍然承认对称加密发生在进程内存中。

这些层共同构成了纵深防御架构,但它们并不都是独立的屏障。可以根据索引文件名检查猜测的模式并 AES-GCM 身份验证,并且受感染的解锁设备可以观察应用程序进程中的密钥或明文。因此,该架构取决于凭证熵, PBKDF2 成本, iOS 设备保护、正确的身份验证加密处理以及 AES 本身的强度。

纵深防御

将 Vaultaire 的层次结构视为一组嵌套的锁定容器。模式衍生 金库钥匙 打开经过身份验证的索引。索引释放一个包装的随机数 主钥匙。该主密钥可以保护文件和元数据。 PBKDF2, AES-GCM, Keychain, 和 iOS 数据保护具有不同的属性,但安全声明的强度取决于完整的链条。

AES-256-GCM:文件加密

Vaultaire 中存储的每张照片、视频和文档均经过加密 AES-256-GCM — 具有 256 位密钥的高级加密标准 伽罗瓦/计数器模式。沃泰尔还使用 AES-GCM 用于保管库索引、文件头、缩略图和密钥信封。算法和密钥大小标准化; Vaultaire 的安全性仍然取决于随机数处理、密钥管理、凭证强度和实施正确性。

AES-256 中的 “256” 指的是密钥长度(以位为单位)。256 位密钥有 2256 可能值。正确地看待这个数字:大约有 10 个80 原子。如果每个原子都是一台超级计算机,自大爆炸以来一直运行,每秒测试十亿个密钥,那么它们将探索不到百分之一万亿分之一的密钥空间。AES-256不会被暴力破解。不是今天。不是本世纪。不会在星星燃尽之前。

为什么 GCM 模式很重要

AES 是一种分组密码,它以 128 位块的形式加密数据。“mode” 确定这些块的组合方式。GCM(伽罗瓦/计数器模式)提供了 CBC 等简单模式所没有的两项功能:并行加密和内置身份验证。

认证部分至关重要。GCM 为每个加密文件生成一个加密标签。该标签起到防篡改密封的作用。即使密文的一位被修改,无论是恶意行为者还是损坏的磁盘扇区,身份验证标签都将不匹配,解密将失败。您不会得到损坏的数据。您会得到一个明确的信号,表明出现了问题。此属性称为经过身份验证的加密,它可以防止对手修改加密数据以操纵解密输出的一整类攻击。

PBKDF2:密钥派生

Vaultaire 为不同的作业派生不同的密钥。模式和设备范围 Keychain 盐饲料 PBKDF2-HMAC-SHA512 600,000 次迭代来生成本地保管库密钥。确定性模式推导产生单独的云备份密钥。标准化恢复期贯穿80万 PBKDF2 迭代以产生恢复信封的密钥。这些推导都不会仅仅因为输出的长度是 256 位而将人类凭证转换为 256 位的熵。

PBKDF2 如何保护您的图案

背后的核心理念 PBKDF2 是刻意的工作。它采用序列化模式或规范化短语并运行数十万个 HMAC-SHA512 迭代。合法用户在解锁或恢复尝试期间支付一次该费用。尽管并行硬件和实现选择决定了真实的猜测率,但攻击者为每个候选人支付费用。

Vaultaire 配置 PBKDF2 对于模式派生键,可进行 600,000 次迭代。这使得每次猜测都更加昂贵,但是负责任的攻击估计必须说明测量的每个候选者的时间和硬件假设。如果每个候选人恰好 1 毫秒,则 1,000,000,000 次连续猜测大约需要 11.6 天,而不是几年。 256 位结果不会扩展可预测模式的熵。

本地模式派生使用设备的一种加密随机盐,存储为 WhenUnlockedThisDeviceOnly Keychain 项目。盐不是秘密的,并且由该设备上的保管库共享。它可以防止为一台设备构建的表直接应用到具有不同盐的另一台设备,但它不会迫使攻击者对同一设备上的每个保管库重新开始。

256位
加密密钥长度
6
加密层
0
存储在服务器上的密钥

AES-256-GCM:元数据保护

加密文件内容是不够的。文件名、创建日期、缩略图尺寸和库结构都是元数据,元数据可以像数据本身一样揭示信息。名为 “tax-return-2025。pdf” 的文件可以准确告诉攻击者其中的内容,即使内容已加密。时间戳显示您使用保管库的时间。缩略图大小表明某物是照片还是视频。

Vaultaire 通过以下方式保护此元数据 AES-256-GCM,不是ChaCha20。文件名和 MIME 类型被编码到加密的文件头中。加密的保管库索引包含文件记录、日期、大小信息、存储布局和包装的主密钥。缩略图数据也使用随机主密钥进行加密。

为什么要对元数据进行身份验证加密?

元数据需要完整性和机密性。 AES-GCM 为每个加密值生成一个身份验证标签,因此 Vaultaire 可以拒绝修改的标头、索引、缩略图或信封,而不是接受攻击者控制的明文。该设计故意在这些存储格式中使用一种经过身份验证的加密结构,而不是声称该实现未提供加密多样性。

相同的密码并不意味着盲目地重复使用相同的密钥或随机数。保管库密钥保护索引并包装随机主密钥;主密钥保护文件材料。 CryptoKit 使用新的随机数创建经过身份验证的密封盒,而 Vaultaire 的流格式为每个有序块派生一个独特的随机数。相关保证来自密钥分离、随机数规则和身份验证,而不是来自第二个元数据密码。

零知识架构

对于任何安全应用程序,都有一个值得一问的问题:如果其背后的公司遭到黑客攻击、传唤或只是变得恶意,会发生什么?

对于大多数应用程序来说,答案是令人不舒服的。它们保存您的数据、密钥或两者。法院命令迫使他们交出它。数据泄露暴露了它。一名流氓员工访问了它。应用程序’的安全性仅与公司’的操作安全性,一样强大,历史表明公司经常遭到破坏。

Vaultaire 不运营接收您的模式、秘密短语、解密密钥或可读保管库内容的帐户或存储服务。加密和解密发生在设备上的应用程序进程中。当 iCloud 备份已启用,应用程序将经过身份验证的密文发送到您的私人 CloudKit 数据库而不是 Vaultaire 控制的保管库服务。

零知识在实践中意味着什么

如果执法机构向 Vaultaire 发出传票,要求保管库明文,则该公司不持有解密所需的模式、恢复短语、保管库密钥、备份密钥或主密钥。加密的 iCloud 记录存在于用户的 CloudKit 私人数据库。然而,在设备上,恢复材料以加密形式保存 Keychain 数据库和对称密钥存在于应用程序内存中,而 CryptoKit 加密或解密开放的保管库。

此提供者边界是一种架构属性,而不是客户端环境的每个部分都位于信任模型之外的承诺。 Vaultaire 不持有服务器端解密密钥,它可以将其用于例行保管库恢复。附带的应用程序, iOS、解锁的设备和加密实现仍然可以处理可读数据,并且必须相应地受到信任。

不信任任何人,设计

Vaultaire 的提供商边界从正常设计中删除了公司持有的解密密钥。这减少了 Vaultaire 本身的违规行为可能暴露的风险。它并没有消除信任已发货客户端的需要, iOS、设备状态或记录的密钥层次结构的实现。这些界限应该单独评估,而不是变成一个绝对的承诺。

Keychain 和应用程序进程边界

苹果的 Secure Enclave 可以保护支持的私钥并参与部分平台安全架构,但其公共 API 不接受任意 PBKDF2-派生对称密钥并执行 Vaultaire 的 AES-GCM 协处理器内的文件操作。因此,Vaultaire 并未将其保管库密码描述为 Secure Enclave AES。

Vaultaire使用普通 iOS Keychain 随机设备盐、加密恢复数据库以及保护该数据库的随机密钥的通用密码项。这些项目使用 WhenUnlockedThisDeviceOnly 辅助功能类。 Keychain 和数据保护创建了有意义的设备边界,尤其是在手机锁定时,但此架构不同于不可导出的架构 Secure Enclave 关键。

当你画出图案的时候, CommonCrypto 在应用程序进程中派生保管库密钥。 CryptoKit 然后,Vaultaire 的 CryptoEngine 在该过程中使用对称密钥字节来验证和解密索引、解开主密钥并处理文件。应用程序在锁定时会清除活动状态,但是观察解锁会话的足够特权的攻击者与仅持有锁定设备密文的检查者有不同的机会。

越狱或受到其他损害的操作系统可以针对模式输入、应用程序内存、解密预览、导出或屏幕。 Vaultaire 推荐最新的、未越狱的 iPhone 因为设计依赖于 iOS 进程隔离, Keychain和数据保护。它并没有声称根泄露会使开放金库的对称密钥无法访问。

每个文件初始化向量

当您使用相同的密钥加密两个相同的文件时,简单的实现会产生相同的密文。这是一个问题。看到两个相同的加密 blob 的攻击者无需解密任何,就知道两个原始文件相同,就知道。在充满照片的保管库中,这种模式分析甚至可以通过加密来揭示信息。

Vaultaire 通过为每个密文生成一个新的加密随机数来防止确定性密文 AES-256-GCM 密封操作。文件头和文件内容是分开密封的,大文件使用经过身份验证的流格式,带有随机基本随机数和每个有序块的不同随机数。因此,同一张照片的两个副本不会产生相同的加密表示。

随机数与密文一起存储,并不秘密;他们的安全要求是给定密钥下的唯一性。 Vaultaire 向 Apple 的加密随机生成器请求 96 位随机数以进行单次加密,并将基本随机数记录在流标头中。冲突风险由一个密钥下的加密数量决定,因此该实现会生成一个新值,而不是将 96 位大小呈现为固定的二分之一96 终身保证。

加密管道
你的模式
5×5网格输入
PBKDF2
高迭代KDF
金库钥匙
索引+键包装
随机主密钥
AES-GCM 文件+元数据

内存管理:清除活动键状态

安全软件中的一个常见故障是不再需要敏感数据后将其保留在内存中。加密密钥、派生密码和解密数据在应用程序使用完毕后仍可长期保留在 RAM 中。取证工具可以转储设备内存并搜索这些残留物,这种技术称为冷启动攻击或内存转储分析。

Vaultaire 限制活动密钥状态和解密的 UI 数据保持可用的时间。当应用程序锁定或会话被终止时,其代码会遵循几个清理路径:

  • 活动保管库状态已删除。 该应用程序会删除其当前的保管库密钥会话,并在显示保管库内容之前需要再次解锁。
  • 密钥包装器清除拥有的缓冲区。 当这些容器被释放时,Vaultaire 的安全字节容器会覆盖它们拥有的缓冲区。
  • 缓存的主密钥状态无效。 为开放索引保存的解密主密钥将在相关锁定和缓存重置路径上被丢弃。
  • 解密的 UI 缓存在 Vaultaire 的控制下被清除。 缩略图和预览清理减少了残留的应用程序状态,无需声明对 Swift 制作的每个副本的控制权, iOS,或另一个过程。

下次 Vaultaire 在锁定状态下打开时,您会绘制图案,应用程序会再次派生保管库密钥,然后才能验证索引并解开主密钥。这是会话清理,而不是声称每个瞬态内存副本都收到了可证明的多遍擦除或 Secure Enclave 关键参考已被破坏。崩溃原因 iOS 回收进程,但清理代码无法在每次突然终止后运行。

常见问题解答

AES-256真的牢不可破吗?

AES-256 是一种经过严格分析的标准化分组密码。没有对正确实施的实际攻击 AES-256-GCM 带有随机 256 位密钥的密钥是众所周知的,但这并不意味着整个金库牢不可破。凭证熵, PBKDF2 成本、随机数处理、密钥保管、恢复、设备状态和实施缺陷仍然是攻击路径。

为什么使用PBKDF2进行密钥推导?具有 HMAC-SHA512 的

沃泰尔用途 PBKDF2-HMAC-SHA512 通过 CommonCrypto:模式迭代 600,000 次,恢复短语迭代 800,000 次。本地模式推导使用一种随机的、设备范围的盐,存储在 Keychain. PBKDF2 增加每次猜测的成本,但不会增加模式的熵,因此攻击时间取决于凭证强度、测量的硬件速度和并行性。

Vaultaire 向其服务器发送哪些数据?

无。Vaultaire 没有接收您的数据的服务器。如果您启用 iCloud 备份,您的加密数据将存储在您的个人 iCloud 帐户,中,然后在使用 Apple 不拥有的密钥离开您的设备之前进行加密。Vaultaire 公司绝不会接收、处理或存储任何加密或其他方式的用户数据。

越狱的 iPhone 能否危害我的保管库?

越狱会严重削弱设备边界。沃泰尔的 AES-GCM 操作在应用程序进程中运行 CryptoKit,因此当保管库打开时,对称密钥字节存在于应用程序内存中。根级攻击可以针对输入、内存、屏幕截图或解密的输出。 Keychain 当设备锁定时,数据保护仍然会增加障碍,但 Vaultaire 并不声称其 AES 密钥在内部保持隔离 Secure Enclave.

元数据是如何加密的?

Vaultaire 不使用 ChaCha20 作为保管库元数据。文件名, MIME 类型、时间戳、缩略图数据、保管库结构和包装的主密钥都受到保护 AES-256-GCM 经过验证的密文。使用一种经过身份验证的结构可以在整个存储格式中保持机密性和完整性检查的一致性。

如果应用程序崩溃,我的密钥会怎样?

iOS 回收已终止的进程,并且下次启动需要新的解锁,然后 Vaultaire 才能恢复活动密钥状态。 Vaultaire 不创建会话范围的 Secure Enclave AES 参考。虽然它的关键包装器在释放时清除其缓冲区并且锁定路径会丢弃活动状态,但 Swift 和 iOS 不能保证在崩溃之前每个临时副本都被覆盖。

查看堆栈的实际应用

经过身份验证的加密、分层密钥、昂贵的派生,并且没有提供商持有的保管库密钥。下载 Vaultaire 以使用此处描述的架构,并明确说明其设备和凭证边界。

免费下载Vaultaire