图案加密:绘制形状如何保护您的文件
你用手指画出一个图案。 PBKDF2 将该手势转换为保管库密钥,从而解锁一个单独的随机密钥,用于保护您的文件 AES-256-GCM。没有密码字段,没有短 PIN 码。只是您的模式和故意分层的关键层次结构。
Vaultaire 序列化在 5×5 网格上绘制的形状并使用 PBKDF2-HMAC-SHA512,600,000 次迭代,以及存储在设备范围内的盐 iOS Keychain。 256 位结果是保管库密钥:它加密保管库索引并解开单独的随机主密钥 AES-256-GCM 用于文件内容和元数据。
什么是 图案加密?
大多数保管库应用程序都隐藏在 PIN 或密码后面。您输入四位数字,然后就会出现您的照片。听起来足够安全,对吧?
问题是这样的:一个四位数的 PIN 恰好有 10,000 种可能的组合。计算机可以在一秒钟内尝试每一个。六位数?一百万个组合。对于现代硬件来说仍然很快。即使是八个字符的密码,如果仅使用小写字母,也会为您提供大约 2000 亿种可能性。这听起来好像很多,直到您了解到标准笔记本电脑每秒可以测试数十亿次密码哈希。
模式加密采用了一种根本不同的方法。您无需在框中输入字符,而是在点网格上绘制几何形状。您追踪的特定路径(您触摸的点、顺序、几何形状)将成为基于密码的密钥派生函数的输入。结果不仅仅由接口检查:它必须解锁经过身份验证的加密索引及其内部的随机主密钥。
区别很重要。当您在某些应用程序中输入 PIN 码时,该应用程序仅检查您是否输入了正确的号码。如果您这样做了,它就会打开,即使文件可能主要受到访问控制的保护。相反,Vaultaire 将绘制的图案输入 PBKDF2 派生 256 位保管库密钥。该密钥必须先验证并解密保管库索引,然后才能解开文件上使用的随机主密钥。无法识别的模式呈现为空库,但底层 AES-GCM 身份验证仍然可以区分正确的密钥和错误的密钥。
基于 PIN 码的访问门就像放置在可读文件前面的一扇上锁的门。 Vaultaire 的模式更接近于保险箱上的组合:它派生出打开加密索引的密钥,而索引又会释放保护内容的单独密钥。该接口不能简单地绕过该加密链。
工作原理,一步一步
以下是从您的手指触摸屏幕的那一刻到其他人无法读取您的文件的那一刻所发生的情况。
第 1 步:绘制图案
Vaultaire 展示了 5×5 的点网格。您绘制一条连接至少 6 个点且至少有两个方向变化的连续路径。该应用程序准确记录您访问了哪些点以及访问的顺序。这个序列就是你的模式。
与 Android 锁屏常用的 3×3 网格不同,Vaultaire 使用 5×5 网格。这不是美容选择。二十五个位置比九个位置允许更多的路径、交叉、跳过和方向改变。更大的理论空间会有所帮助,但实际的安全性仍然取决于您选择的路径的不可预测性。即使网格可以表达数十亿种替代方案,熟悉的字母或简单的形状仍然是可猜测的。
第 2 步:该模式派生保管库密钥
您绘制的图案将按照网格大小进行序列化并输入到 PBKDF2 (基于密码的密钥导出函数2) HMAC-SHA512,600,000 次迭代,以及随机的设备范围盐。盐是存储在中的非秘密值 iOS Keychain 作为 WhenUnlockedThisDeviceOnly 项目。它使得本地导出设备绑定;它并不是每个金库所独有的,并且不会为人类选择的模式添加熵。
密钥派生过程故意成本高昂。 PBKDF2 运行 600,000 HMAC-SHA512 每个候选模式的迭代,增加了猜测攻击的成本。这不会将低熵模式转变为 256 位安全性,并且攻击时间取决于攻击者的硬件。它的目的更狭窄且可衡量:使每个猜测都比简单的散列更昂贵。
步骤 3:您的文件被加密
首次创建保管库时,Vaultaire 会生成一个随机的 256 位主密钥。模式派生的保险库密钥对索引进行加密并包装该主密钥;它不会直接加密每个文件。主密钥用于 AES-256-GCM 文件头、内容、缩略图和相关元数据。新的随机数确保重复的明文不会在同一密钥下产生重复的密文。
GCM 模式添加了一个重要的层:身份验证。它不仅会扰乱您的数据,还会生成一个用于检测任何篡改的标签。如果加密文件的一位被修改,解密就会失败。没有人可以在您不知情的情况下篡改您的文件。
第 4 步:清除活动按键状态
当 Vaultaire 锁定时,它会清除其活动保管库和主密钥状态,并在再次显示文件之前需要另一个解锁仪式。当保管库打开时,这些对称密钥字节必然存在于应用程序进程中,因此 CryptoKit 可以执行 AES-GCM 操作。 Vaultaire 还将恢复信息(包括模式和短语加密的恢复信封)保存在一个 AES-GCM 加密数据库存储在 iOS Keychain。这与声称图案和每个密钥副本都没有存储在任何地方有本质上的不同。
背后的数学(简单英语)
您不需要计算机科学学位即可理解其原理。安全性归结为三个数字:可能有多少种模式、每次猜测需要多长时间以及攻击者可以进行多少次猜测。
熵:不可预测性的度量
熵是 “ 的一个奇特词,这很难猜测。” 抛硬币有 1 位熵(两个结果)。一个四位数的 PIN 码大约有 13 位熵(10,000 个结果)。在 5×5 网格上精心挑选的图案,连接 8 个或更多点,其熵可以超过 30 位,超过 10 亿种可能的图案。
该模式的熵设定了猜测攻击的上限。 PBKDF2 无法创建手势不包含的熵,但它会使每个候选者的测试成本更高。
密钥推导:让猜测变得昂贵
PBKDF2 采用序列化模式并运行 600,000 轮 HMAC-SHA512。攻击估计必须使用硬件上进行猜测的测量成本:如果每个完整候选者正好 1 毫秒,则 1,000,000,000 个候选者将需要 1,000,000 秒,即 1 个工作人员大约需要 11.6 天。较慢的候选成本测量会增加时间;并行硬件减少了它。 256 位输出长度不会改变模式搜索空间的大小。
设备范围的盐存储在 Keychain 并且并不是为了保密而设计的。 Keychain 和 iOS 数据保护可能会使设备扣押情况下的提取变得更加困难,但密码分析必须假设获取加密文件的检查员也可能获取盐。盐会阻止跨设备的预计算;它不能替代强大的模式。
AES-256:政府信任的标准
AES-256 是美国政府用于机密信息的加密标准。“256” 指的是密钥长度(以位为单位)。256 位密钥有 2256 可能将,值设置得如此之大,以至于如果可观测宇宙中的每个原子都是一台计算机,并且每台计算机每秒可以测试一万亿个密钥,那么在宇宙热寂之前它们仍然无法破解它。
的安全性 AES-256 不依赖于算法的保密性。但整个系统并不仅仅受到 AES 密钥空间的保护:实际的猜测范围来自模式的熵,即 PBKDF2 工作因素,以及围绕设备盐和加密存储的保护。 AES-256-GCM 一旦正确的随机主密钥被解锁,就提供强大的经过身份验证的加密。
必须克服什么攻击
让我们考虑一下有人可能尝试访问您的加密文件的主要方式、Vaultaire 采取了哪些措施来提高成本,以及仍然存在哪些限制。
蛮力:尝试每种模式
PBKDF2 让每个模式候选者支付60万 HMAC-SHA512 迭代。这是一个有意义的防御,但不是固定年限的承诺:结果取决于模式选择、测得的推导速度、并行性以及检查者是否已恢复设备盐。更长、更难以预测的路径很重要,因为 PBKDF2 增加猜测成本而不是创造新的熵。
涂抹攻击:读取屏幕
在 3×3 网格上,屏幕上的污迹可以显着缩小可能的图案范围。在 5×5 网格上,污迹图案显示了哪些点被触摸,但不显示它们之间的顺序、方向或连接。组合爆炸使得这种方法不切实际。
肩冲浪:看你画画
在小手机屏幕上快速绘制的图案极难通过观察来记忆,尤其是在 5×5 网格上。研究表明,与无意中听到大声说出的 PIN 码或密码相比,观察者要复制复杂的模式要困难得多。
设备扣押:拿走您的手机
如果有人拿走了您的手机,Vaultaire 的文件内容和索引仍然存在 AES-GCM 密文,直到所需的密钥可用。该应用程序不存储传统的密码验证器记录,但这不会删除离线验证。每个加密保管库索引的文件名包含保管库密钥的截断哈希值,并且 AES-GCM 对于候选密钥,经过身份验证的解密也会成功或失败。因此,设备保护和模式强度仍然是威胁模型的一部分。
不需要单独的密码哈希来测试对经过身份验证的密文的猜测。沃泰尔的 AES-GCM 标签提供高可信度的成功或失败结果,索引文件名提供更便宜的初步检查。辩护是凭证的成本和不可预测性加上 iOS 保护本地材料,而不是缺乏验证神谕。
选择强大的模式
加密的强度取决于您选择的模式。以下是如何以最小的努力最大限度地提高安全性。
是什么让模式变得强大
- 使用更多点。连接 25 个可用点中的至少 8 个。每个额外的点都会使可能的图案数量成倍增加。
- 走自己的路。循环、跳过点或意外改变方向的图案更难从记忆或观察中再现。
- 避免明显的形状。字母(L、Z、S)、简单的几何形状(正方形、三角形)和直线是攻击者首先尝试的东西。
- 使用全网格。留在一个角落或沿着一个边缘的模式会浪费可用的熵。展开。
应避免什么
- 最小长度模式。 Vaultaire 需要至少 6 个点和两个方向变化,但满足最小值并不会使路径变得不可预测。当您能够可靠地记住结果时,请使用更多的网格。
- 简单的几何形状。L 形、之字形或直线对角线是 “password123。” 的等效模式
- 每次都从同一个角开始。对 Android 锁定模式的研究表明,大多数人都是从左上角的点开始。攻击者知道这一点。
甜蜜点
连接 8–12 个点并至少有两个方向变化的图案可提供出色的安全性,同时通过肌肉记忆让您轻松记住。您不需要像密码,一样记住它,您的手会记住这个动作,就像它记住如何书写您的签名一样。
为什么您应该感到安全
Vaultaire 中的模式加密不仅仅是一个更漂亮的密码键盘。该手势由真实密钥派生函数处理,并且必须解锁经过身份验证的加密数据。它的强度仍然取决于你选择的手势,因此 Vaultaire 将更大的网格与高 PBKDF2 工作因子,而不是将 256 位输出长度表示为 256 位人类秘密熵。
您的模式和本地保管库密钥不会发送到 Vaultaire。如果启用了可选备份,则会使用单独的模式派生备份密钥进行加密 CloudKit 记录和加密的恢复清单允许恢复短语恢复保管库和备份密钥。 Vaultaire 不持有解密这些记录的提供商密钥,但设备和恢复凭证仍然是设计中的安全关键部分。
您绘制一个形状。该形状可以保护您的文件。剩下的就由数学来做。
常见问题解答
如果我忘记了图案怎么办?
当您创建保管库时,Vaultaire 会生成包含 9 个单独单词的自定义恢复句子。 PBKDF2 从该句子中派生出恢复密钥,该密钥将打开包含保管库密钥的加密信封。如果您同时丢失了模式和恢复短语,Vaultaire 就没有可以恢复保管库的服务器端密钥。
模式真的比密码更安全吗?
5×5 网格上精心选择的模式可以匹配或超过典型密码的熵。优点是可用性:人们选择弱密码,因为强密码很难记住。模式利用了肌肉记忆,因此无需有意识地记忆即可自然地使用复杂的模式。
有人可以截图或记录我的图案吗?
Vaultaire 将尽力而为的屏幕截图屏蔽应用于图案网格,并在以下情况下做出反应 iOS 报告活动屏幕捕获。 iOS 不为任意应用程序内容提供公共安全屏幕标志,因此这些控件可以减少意外捕获,但不能保证每种捕获方法都被阻止。
Vaultaire 使用什么加密算法?
沃泰尔用途 PBKDF2-HMAC-SHA512 经过 600,000 次迭代,从模式和设备范围内导出保管库密钥 Keychain 盐。该保管库密钥对保管库索引进行加密并包装随机的 256 位主密钥。 AES-256-GCM 在主密钥下,通过经过身份验证的加密来保护文件内容、标头、元数据和缩略图。
该图案是否存储在我的设备上?
Vaultaire 将恢复信息(包括模式)存储在 AES-GCM 加密恢复数据库保存在 iOS Keychain。该模式不会发送到 Vaultaire 或存储在纯文本文件中。当保险库打开时,关键字节存在于应用程序进程中;锁定会降低 Vaultaire 的活动密钥状态。
Vaultaire 可以访问我的加密文件吗?
Vaultaire 不提供接收您的模式、恢复短语、解密密钥或可读保管库内容的服务。加密的 iCloud 备份保留在您的私人文件夹中 CloudKit 数据库。此提供程序边界不会保护开放保管库免受受损的应用程序构建、操作系统或设备的影响。