安全
Sealed 如何保护你的文件,以及它做不到的事
Sealed 在保存每个文件之前,都会用 AES-256-GCM 对其加密。 你的保险库密钥保存在 iPhone 的钥匙串中,仅限这台设备,并且只有在手机解锁时才能读取。 我们不运行服务器,因此我们看不到你的任何内容。 本页逐层说明,并指出每一层在哪里到此为止。
你添加的照片会经历什么
- Sealed 只导入你选择的照片和视频,只有在你要求时才会删除「照片」中的原件。
- 每个文件都有各自的随机 256 位密钥,该密钥由你的保险库密钥封存。
- Sealed 在保存每个文件之前,都会用 AES-256-GCM 对其加密。 大文件会分块加密,Sealed 会拒绝已被更改、重新排序或被截断的文件。
- 名称、笔记和记录的各个字段同样由你的保险库密钥封存,而不只是照片。
- 除非你开启 iCloud 备份或自行导出,否则你的文件不会离开你的 iPhone。
准备好之后,你可以从“照片”中移除原件。在你删除它们之前,原件会留在「照片」中,位于保险库之外。
你的密钥存放在哪里
你的保险库密钥保存在 iPhone 的钥匙串中,仅限这台设备,并且只有在手机解锁时才能读取。
你的保险库密钥是随机生成的 256 位密钥,并非由你的密码派生而来。 你的密码是应用前的一道门,它不是密钥的一部分。 你的保险库密钥绝不会到达我们这里。
最高安全模式
最高安全模式会把你的保险库密钥封存到 Secure Enclave 密钥中,只有在 Face ID 或触控 ID 实时匹配之后才能使用该密钥。 最高安全模式需要带有 Face ID 或触控 ID 的 iPhone 或 iPad。
在开启最高安全模式之前,Sealed 会要求你保存恢复密钥,因为一旦你的 Face ID 或触控 ID 发生变化,它是唯一的回头之路。 最高安全模式属于 Sealed Pro。
保险库口令
使用保险库口令时,你的保险库密钥由一个你在每次保险库解锁时输入的口令封存,如果你丢失了它,就只有你的恢复密钥能打开保险库。 保险库密钥用 AES-GCM 封存,所用密钥由口令经 PBKDF2-HMAC-SHA256 迭代 1,000,000 轮得到。
保险库口令至少要有 12 个字符,需要先保存好你的恢复密钥,并且不能与最高安全模式或双重锁定同时开启。 保险库口令属于 Sealed Pro。
Sealed 如何挡住外人
打开方式
你可以用 Face ID 或触控 ID、4 位、6 位或 9 位数字密码、口令或图案来打开 Sealed。 Sealed 有七种锁定屏幕样式:键盘、保险库转盘、挂锁、拨号盘、密码筒、三次转动和敲击。 除键盘之外,每种锁定屏幕样式都属于 Sealed Pro。 每一种锁定屏幕样式都只是输入密码的另一种方式,所以它改变的是你输入的方式,而不是组合的数量。
诱饵保险库用第二个密码打开,它属于 Sealed Pro。
有人试图猜测时
默认情况下,连续输错三次密码后,Sealed 会锁定入口 30 秒,此后每多输错一次,依次锁定 1、5、15 分钟,最后是 60 分钟。
入侵提醒会在密码输错后用前置摄像头连拍几张照片,并记录事发地点。 入侵提醒在你开启之前是关闭的,拍照还需要相机权限。 入侵照片与其他内容一样经过加密,只有在你解锁后才能打开,随照片保存的位置也绝不会离开手机。
你离开时
除非你选择延迟,否则 Sealed 在你离开后会立即锁定,并在应用切换器中遮盖其内容。 Sealed 可以在你摇动手机或把手机屏幕朝下放置时锁定。
屏幕正在被录制或镜像时,Sealed 会遮盖其内容,该功能默认开启。
额外的锁
双重锁定要求同时提供你的密码和 Face ID 匹配,它属于 Sealed Pro。
位置锁定只在你信任的地点打开保险库,它属于 Sealed Pro。
每个相簿都可以有自己的锁,相簿锁属于 Sealed Pro。
如果有人逼你解锁
胁迫密码或胁迫图案会打开你的诱饵保险库,并且在同一时刻把你的真实保险库从这台 iPhone 上移除。 胁迫密码只会把保险库从这台 iPhone 上移除:它不会向 iCloud 发送任何内容,你的加密备份保持原样,从 iCloud 恢复可以让一切回来。 在开启胁迫密码之前,Sealed 需要已保存的恢复密钥、其中有内容的诱饵保险库,以及一份刚刚被它逐项检查过的 iCloud 备份。 胁迫密码属于 Sealed Pro。
备份与你的恢复密钥
备份会存到你自己的 iCloud 账户,而不是我们的服务器。 文件、名称、笔记和记录字段在上传之前就已在你的 iPhone 上加密,因此 iCloud 收到的只有密文。
备份记录的类型是 VaultItem 和 SecureNote 这样的普通名称,标识符是随机的,因此 iCloud 能看出备份的存在,以及它大致包含多少条记录。
加密的 iCloud 备份是免费的。 备份会占用你的 iCloud 储存空间,空间已满时,Sealed 会告知你,并停止添加新项目。
在开启备份之前,Sealed 会要求你先保存恢复密钥。 你第一次保存恢复密钥时,Sealed 也会开启免费的 iCloud 备份。 你可以随时在设置的同步与备份下重新关闭 iCloud 备份。
设置期间,Sealed 会给你一个恢复密钥:由字母和数字分组组成的一长串代码,可以找回你的保险库。
任何持有你恢复密钥的人都可以打开你的保险库,Sealed 打印的密钥页面说明绝不要把它存在照片、信息或电子邮件里。 请像对待密码一样对待它,并把它保存在私密的地方。
在由当前版本 Sealed 创建的保险库中,恢复密钥并不是保险库密钥本身:它打开一个装着保险库密钥的小信封,这就是恢复密钥可以被替换的原因。 你可以在设置中创建新的恢复密钥;当前的密钥在新密钥保存、且你下一次备份完成之前仍然有效,而拥有旧密钥和你备份旧副本的人,仍然可以打开那份副本。
恢复密钥是在新 iPhone 上解密 iCloud 备份的唯一方法。 你的保险库密钥留在创建它的那台 iPhone 上,所以在新 iPhone 上,Sealed 会要求你提供恢复密钥。
保险库打开时,你可以在设置的同步与备份下,再进入恢复密钥,重新查看你的恢复密钥。
找回密钥的其他途径
- 密封副本。 封存副本把你的恢复密钥锁在只有你知道的短语之下,这样副本就可以放在你的电子邮件或「备忘录」中。 封存副本是一段 175 个字母和数字的文本,用 AES-256-GCM 锁定,所用密钥由你的短语经 PBKDF2-HMAC-SHA256 迭代 1,000,000 轮得到。
- 密钥守护人。 密钥守护人把你的恢复密钥拆成 3 份,任意 2 份即可将其找回,或拆成 5 份,任意 3 份即可,每位你信任的人一份。 单独一位守护人的那一份,不会透露你密钥的任何信息。
- 开放副本。 开放副本会在你的 iCloud 云盘中名为 Sealed 的文件夹里保留一份保险库的副本,凭你的恢复密钥和 Sealed 阅读器,就能在任何电脑上不借助 App 打开它。 开放副本中的一切都保持加密,它占用的 iCloud 云盘空间与你的保险库差不多,并且只更新到最近一次保存的状态。 开放副本在你开启之前是关闭的,自动副本只会在你的恢复密钥保存之后才开始。
发送分享
你可以向别人发送某个项目的加密副本,对方用你选择的口令在 Sealed 中打开它,创建这样的副本属于 Sealed Pro。
共享用由其口令经 PBKDF2-HMAC-SHA256 迭代 600,000 次得到的密钥锁定,然后用与保险库相同的方式加密。 创建共享时,Sealed 要求口令至少 6 个字符。 Sealed 会告诉你,要用与发送文件不同的方式发送口令:当面交给对方,或通过另一个应用。
加密共享可以在一小时、一天、7 天或 30 天后结束,接收方的手机会在项目过期时将其移除。 照片、视频或 PDF 的共享可以设为仅供查看,这样它就无法从接收方的保险库中流出。 Sealed 在接收共享的手机上执行共享的限制,并说明这些限制无法阻止截屏,共享一旦发出也无法收回。
如果你收到了分享,这里说明如何打开。
无需保险库密钥也能运行的功能
- 锁定屏幕相机。 锁定屏幕相机的每张照片在写入之前就已加密,绝不会进入「照片」,并会在你下次解锁时出现在保险库中。
- 查找私密照片。 查找私密照片在你的 iPhone 上运行:不会向任何地方发送任何内容,它读取的文字也不会被保存。 Sealed 只记住它检查过哪些照片以及在每张中发现了什么,绝不记住文字,记录保存在 iPhone 上一个不包含在设备备份中、也从不同步的文件里。
Sealed 能帮上忙的地方,以及帮不上的地方
它能帮上忙: 你的手机落到别人手里一小会儿时。除非你选择延迟,否则 Sealed 在你离开后会立即锁定,并在应用切换器中遮盖其内容。
它能帮上忙: 你的手机丢失时。你可以凭恢复密钥,从备份中在新 iPhone 上恢复你的保险库。
它能帮上忙: 你希望把私密文件与相机胶卷、与任何公司的服务器分开保存时。我们不运行服务器,因此我们看不到你的任何内容。
它做不到这些事:
- 保护已离开保险库的副本。 在你删除它们之前,原件会留在「照片」中,位于保险库之外。 除非你开启 iCloud 备份或自行导出,否则你的文件不会离开你的 iPhone。
- 在没有密码也没有恢复密钥的情况下让你重新进入。 因为你的密钥绝不会到达我们这里,所以我们无法为你找回保险库或重置密码。
- 在手机已解锁时不让 App 接触到密钥(除非开启了最高安全模式或保险库口令)。 没有最高安全模式时,只要手机处于解锁状态,应用就能读取你的保险库密钥,因为密钥存放在钥匙串中。 你的密码是应用前的一道门,它不是密钥的一部分。
- 保护你免受能逼你解锁的人的伤害。 Sealed 明确说明,胁迫密码不是取证级别的抹除,尚未进入 iCloud 的内容会丢失,而任何能迫使你用 Face ID 或触控 ID 解锁的人,或知道你真实密码的人,仍然能看到你的真实保险库。
- 让一个薄弱的分享口令变得强大。 创建共享时,Sealed 要求口令至少 6 个字符。 口令越长越好。
- 在关闭备份的情况下删除 App 后仍保住你的保险库。 如果在 iCloud 备份关闭时从某台 iPhone 上删除 Sealed,那台 iPhone 上的保险库也会随之被删除。
- 替你把所有功能都打开。 入侵提醒在你开启之前是关闭的,拍照还需要相机权限。
- 把所有保护都包含在免费方案里。 Sealed Pro 新增多种隐私工具,包括诱饵保险库、胁迫密码、入侵照片、双重锁定、位置锁定、最高安全模式、锁定的相簿和七种锁定屏幕。
报告安全问题
如果你认为发现了 Sealed 的漏洞,请写信至 support@loopware.app,并在主题中注明“Security”。请说明你看到了什么、你做了什么才看到它,以及你使用的 Sealed 版本。报告中请不要包含他人的照片和数据,并在你公开撰文之前给我们合理的时间修复问题。
我们会阅读并回复每一份报告。修复影响用户文件的问题时,我们会在发行说明中告知。
问与答
Sealed 使用哪种加密?
Sealed 在保存每个文件之前,都会用 AES-256-GCM 对其加密。 每个文件都有各自的随机 256 位密钥,该密钥由你的保险库密钥封存。 大文件会分块加密,Sealed 会拒绝已被更改、重新排序或被截断的文件。
我的密钥存放在哪里?
你的保险库密钥保存在 iPhone 的钥匙串中,仅限这台设备,并且只有在手机解锁时才能读取。 你的保险库密钥绝不会到达我们这里。
Sealed 能替我打开保险库吗?
因为你的密钥绝不会到达我们这里,所以我们无法为你找回保险库或重置密码。 我们不运行服务器,因此我们看不到你的任何内容。
最高安全模式改变了什么?
最高安全模式会把你的保险库密钥封存到 Secure Enclave 密钥中,只有在 Face ID 或触控 ID 实时匹配之后才能使用该密钥。 在开启最高安全模式之前,Sealed 会要求你保存恢复密钥,因为一旦你的 Face ID 或触控 ID 发生变化,它是唯一的回头之路。
我的 iCloud 备份是私密的吗?
文件、名称、笔记和记录字段在上传之前就已在你的 iPhone 上加密,因此 iCloud 收到的只有密文。 备份会存到你自己的 iCloud 账户,而不是我们的服务器。 备份记录的类型是 VaultItem 和 SecureNote 这样的普通名称,标识符是随机的,因此 iCloud 能看出备份的存在,以及它大致包含多少条记录。
来源
本页关于 Sealed 的说法已于 对照 App 核实。
- Apple Platform Security, The Secure Enclave — 什么是安全隔区,最高安全模式会用到它
- Apple Platform Security, Keychain data protection — 钥匙串项目如何只保留在一台设备上
- Apple Developer Documentation, AES.GCM — Sealed 通过 Apple 的 CryptoKit 使用的加密算法
- NIST SP 800-38D, Galois/Counter Mode — 定义 GCM 的标准
获取 Sealed
Sealed 可免费下载,Sealed Pro 是可选的 App 内购买项目。