术语表

隐私和加密

这些词在应用程序描述中被广泛使用,它们之间的差异正是价值所在。隐藏未锁定。锁定未加密。而别人持有的钥匙其实并不属于你。

隐藏与加密

隐藏意味着应用程序同意不显示某些内容。加密意味着没有密钥就无法读取磁盘上的字节。第一个是承诺;第二个是算术。

隐藏文件夹仍然是普通文件夹。任何直接读取磁盘的东西——备份、文件管理器、取证工具、具有正确权限的另一个应用程序——都能准确地看到其中的内容,因为文件没有任何变化。

加密会更改文件。磁盘上的内容是噪音,对于没有密钥的任何人(包括编写应用程序的人)来说,它仍然是噪音。这种区别只有在重要的那一天才会变得明显,这就是为什么在那之前值得了解它。

另请参阅: 休息时与运输途中ChaCha20-Poly1305

ChaCha20-Poly1305

一种现代加密算法,既隐藏数据又检测篡改数据。在手机上速度很快,但旧版本的手机并不总是具有硬件加速功能。

ChaCha20 进行加密; Poly1305 生成一个标签来验证数据是否未被更改。它们共同构成了所谓的经过身份验证的加密——在修改后的文件上解密会明显失败,而不是产生看似合理的垃圾。

它与 TLS 和现代安全消息传递中使用的结构相同。在没有 AES 加速的硬件上,它比 AES 更快,这就是为什么手机更喜欢它。

另请参阅: 休息时与运输途中密钥包装

密钥包装

envelope encryption

使用一个密钥加密文件,然后单独加密该密钥的每种方式。更改密码会重新包装一个小密钥,而不是重新加密所有内容。

使用设备上生成的密钥对文件进行一次加密。然后该密钥被密码包装(加密),并再次被恢复代码包装。两个信封,每个信封里面有一把钥匙。

后果都是实际的。密码更改会重写几百字节而不是一百吉字节。生物识别解锁是另一个包装副本,而不是第二个安全模型。丢失每个包装就会丢失密钥,因为密钥不存在于其他地方。

另请参阅: 恢复码ChaCha20-Poly1305

恢复码

一个一次性字符串,可以在忘记密码时解开主密钥。没有人可以重新发布它,因为没有其他人曾经拥有过它——包括编写该应用程序的人。

它在设置时显示一次,并且是两扇门中的第二扇。如果将密码写下来并保存在设备以外的地方,忘记密码就会带来不便。

如果忘记密码并且丢失恢复代码,则任何人都无法解密文件。 这不是一个可以争论的支持政策;这就是没有密钥副本的意思。尽可能小心地保存文件。

另请参阅: 密钥包装零知识

诱饵保险箱

plausible deniability

第二个密码可以打开另一个无害的保险箱。有人试图解锁该应用程序,但打开的并不是他们想要的东西。

两个密码都是真实的,并且都可以打开一个真实的保险箱。屏幕上没有任何内容表明存在另一个应用程序,并且无法询问应用程序正在显示哪一个。

它的存在是为了拒绝解锁不是一种选择的情况——边界、需求、有人站在你身边。单独加密并没有什么帮助,因为问题不在于密钥,而在于被迫使用它。

另请参阅: 恢复码隐藏与加密

钥匙链

系统受保护的小秘密存储,由设备的安全硬件支持。这是密钥和令牌所属的地方,并且不应放置任何大的东西。

其中的项目可以携带条件:仅在设备解锁时可读、仅在该设备上、仅在生物识别或密码确认后。这些条件是由硬件强制执行的,而不是由应用程序礼貌地询问。

它存储秘密,而不是数据。钥匙、代币和包装材料都放在那里;加密文件本身位于磁盘上,大小不是问题。

另请参阅: 密钥包装休息时与运输途中

休息时与运输途中

静态加密意味着在磁盘上无法读取。传输中加密意味着在网络上不可读。它们是单独的保护,产品可能诚实地主张其中一项,但不采取另一项。

HTTPS 是传输中加密:对任何观察网络的人来说都是安全的,并且一旦到达,另一端的服务器就可以完全读取。静态加密与存储的副本有关,这在设备丢失或磁盘映像时很重要。

仔细阅读隐私声明通常意味着弄清楚它是关于两者中的哪一个。 “你的数据已加密”没有附加任何一个词,这是一个已选择不说的句子。

另请参阅: ChaCha20-Poly1305零知识

零知识

在这种设计中,操作员无法读取其存储的内容,因为密钥永远不会离开用户的设备。测试很简单:他们可以重置您的密码并仍然向您提供您的数据吗?

如果一项服务可以在你忘记一切后恢复访问权限,那么它就拥有可以解锁你的数据的东西——这意味着它可以被迫使用它,并且任何破坏该服务的人都会继承相同的能力。

交易是真实的,应该明确说明,而不是作为纯粹的利益出售:真正的零知识意味着当最后一把钥匙丢失时真正失去访问权限。没有第三种选择,操作员可以营救您,但其他人却无法营救。

另请参阅: 恢复码休息时与运输途中

生物识别技术

Face ID, Touch ID

设备(而非应用程序)确认您的身份;该应用程序被告知是或否。指纹或面部数据不会到达应用程序,也都不是密码。

生物识别解锁是一种围绕秘密的便利,而不是替代品。它保护的是存储的密钥,这就是为什么密码总是存在于其后面——生物识别可能会失败,而后备措施必须是您知道的东西。

比较发生在专用硬件内,并且模板永远不会离开它。提供 Face ID 的应用程序只是向系统询问问题,而不是收集任何信息。

另请参阅: 钥匙链密钥包装

匿名分析

计算事件而不记录是谁做的。声明的价值完全取决于每个事件所附加的内容,而文件名、路径和 URL 是此类承诺通常无法实现的地方。

知道屏幕被打开就是一个计数。知道播放的是哪个文件,就是对一个人的描述。两者之间的界线不是“匿名”一词,而是“匿名”。它是事件携带的字段。

一个值得信赖的说法表明,“不”发送的内容与实际发送的内容一样具体:没有文件名、没有路径、没有 URL、没有凭据、没有跨会话存活的标识符,并提供了一种关闭整个事情的方法。

另请参阅: 休息时与运输途中

其他主题