简化说明
Android 和 Lineage 都使用相同的加密。两者都足以抵御其旨在防御的威胁。具体来说,攻击者可以物理访问关机的电话。
不好的类比时间:
将设备加密想象成文件保险箱。你有唯一的钥匙。
将锁定屏幕想象为您雇用的保安,以使人们远离您的保险箱。
如果攻击者想要阅读您的文件,如果您的保险箱被锁定,那么保安人员就无关紧要了。他们无法进入保险箱获取您的文件。这是手机关机的时候。
当你去阅读你的文件时,你会派你的保安去吃午饭,因为你现在正在注意你的文件的安全性。你用你的钥匙打开保险箱。现在您可以阅读您的文档了。这是您积极使用手机的时候。
你有一个完整的工作日等着你。你离开房间,保险箱没有上锁。几分钟后,保安回来了。他们会阻止其他人进入房间。这是您的手机已打开但使用锁屏密码锁定的情况。
你的保安接到老板的电话。你的保险箱里有搜查令。他们被指示允许警察进入带保险箱的房间,并让你远离它。这是谷歌或其他设备管理软件远程解锁您的手机,甚至更改锁屏密码。
他们甚至可以从保险箱中取出您的文件,将它们放入新的保险箱中,以防万一您设法回来并再次尝试锁定保险箱。这是谷歌更改或删除您的加密密码,您会注意到只有在保险箱已解锁时才有可能。如果您锁定保险箱/加密手机,他们将需要您的密钥(只有您拥有)才能做任何事情。
更多细节
如果我没记错的话,如果我知道它之后它没有改变,那么设备加密密钥是随机生成的,并实际存储在设备上。然后,此加密密钥本身会使用您提供的密码/PIN/模式和一些特定于设备的硬件支持信息进行加密,这些信息很难在不破坏设备的情况下访问(希望还有数据)。当您打开手机时,您向 Android 提供密码,Android 可以解密加密密钥,它现在可以根据需要使用它来解密您的数据,直到您再次关闭手机。
现代 Android 设备已经加密。他们使用硬编码的默认密码与特定于设备的内容混合来加密加密密钥。这使您可以立即使用手机,而无需输入密码。它还允许您设置自己的密码,而无需等待手机上所有 128+ GB 的数据使用新密钥重新加密;相同的密钥用于加密,没有改变,您只需使用新密钥重新加密密钥本身。
由于在您的设备开机时加密密钥已被解密,因此 Android 很容易在需要时使用新密码或再次使用默认密码重新加密该密钥. 这正是您更改密码、启用无障碍服务或理论上 Google 获得这样做的合法命令时发生的情况(我还没有听说过最后一次发生这种情况)。锁屏只是软件强制执行的,如果有人可以控制设备上运行的软件,它很容易被绕过。偶尔会出现软件错误(特别是在像 Lineage 这样的非官方 Android 端口中会干扰锁屏行为)允许在没有任何特殊访问权限的情况下绕过锁屏。如果没有这些错误,或者如果手机处于关闭状态(加密密钥仍处于加密状态),则设备上必须已经存在特殊软件,或者必须在无需用户干预的情况下自动更新此类软件以允许访问。
这里 Lineage 和类似的 ROM 提供了权衡:
使用 Lineage,假设您没有安装 Google 的服务(或任何其他具有类似访问权限或可利用漏洞的软件),则没有任何预装软件或自动更新机制允许绕过锁屏或更改加密密码。保安没有电话,所以他们从来没有接到让警察进去的电话。但是,使用 Lineage,您必须首先解锁引导加载程序才能安装 Lineage。
回到糟糕的类比:锁定的引导加载程序就像保险箱上的防篡改功能,如果有人将它们移除,它会自动焚烧内容。防篡改功能可防止将任何东西附加到锁上,因此攻击者无法连接在您插入钥匙时捕获钥匙模具的设备,或者将其安装在某种自动化系统中,该系统可以以某种方式比铸造人更快地尝试钥匙一个接一个的键并手动尝试每个键(好吧,这个类比在这里延伸到了极限)。
当您解锁引导加载程序时,您的所有数据都会被擦除。但手机根本不会运行除 Google 或您的设备制造商提供的任何软件,除非引导加载程序已解锁。攻击者可能会喜欢安装低级键盘记录程序或密码暴力破解程序,这些程序甚至在您输入密码之前就运行,但不能,因为引导加载程序已锁定。如果他们解锁它来安装他们的软件,他们想要的数据现在就消失了。因此,它们仅限于手动输入一个又一个密码,并不能真正加快速度。
但是 Lineage 需要一个未锁定的引导加载程序。具有物理访问权限的攻击者可以重新启动到“恢复”(与安装 Lineage 的方法相同),然后安装他们想要的任何东西,而无需先解密您的手机。然后他们可以将您的手机还给您并在您输入密码时捕获您的密码,或者在软件中暴力破解您的密码,每秒猜测数千个或更多,而不是每隔几秒钟猜测一个。
如果您有一个强密码(对于大多数人来说不太可能,因为它是一部电话),您仍然可以。如果没有,谷歌作为潜在的对手可能更可取。
注意:与加密密码相比,实际上可以有一个单独的锁屏密码。系统设置中没有它的用户界面(由于前一段时间实施中的缺陷,Lineage 删除了他们的用户界面),并且在“普通”Android 上可能根本不可能,但它在技术上是受支持的。这可能会使使用强加密密码变得不那么繁琐。
更新:基于文件的加密
以上所有内容都是在考虑“全盘加密”(FDE)的情况下编写的。旧版本的 Android 使用 FDE,在重新启动后,您在输入密码或 PIN 之前根本无法解锁和使用手机。但是,较新的 Android 设备几乎普遍使用“基于文件的加密”或 FBE。使用 FBE,您的手机会一直启动到 Android 的锁定屏幕,您可以在其中拨打和接听电话,并在输入您的 PIN 之前查看一些通知。这使情况变得相当复杂,因为 FBE 的想法是只有确定的文件使用秘密数据加密:手机上的许多文件——特别是启动、拨打电话和其他一些任务所需的所有文件——未加密,或者仅使用保存在设备上的数据进行加密,Android 无需用户即可访问输入(我不是 100% 清楚它是完全未加密还是以可访问的方式加密)。特别是,如果您使用的是具有“可采用存储”的SD 卡,则SD 卡加密密钥在启动时可用,无需用户交互。可采用的存储已从许多库存的 Android ROM 中删除,因为它使 SD 卡只能在格式化的设备上使用(这显然让很多用户感到困惑),但仍然作为 Lineage OS 中的一个选项存在。
重新打个比方,FBE 就像您只将一些文件保存在保险箱中。您的其余文件都留在房间周围,完全依靠保安人员来避免窥探。您甚至为一些无法放入主保险箱(您的 SD 卡)的文件锁定了文件柜,但您将文件柜的钥匙留在墙上的挂钩上,而不是放在您为之存放的安全保险箱中保留钥匙。
不幸的是,很难知道哪些文件保存在保险箱中,哪些文件放在桌子上。
FBE 为安装 Lineage 增加了另一个权衡。在现有的 Android 中,通常没有内置功能允许 ADB 或任何其他方法从设备中获取文件,直到设备成功启动。虽然资金充足的专家可能会这样做,但没有官方功能允许这样做,因此即使您的数据恰好是 FBE 无法完全保护的文件之一,您的普通小罪犯也无法获取您的数据. Lineage 和其他 ROM 通常安装有特殊的“恢复”映像,该映像允许文件系统访问作为内置功能。即使您使用没有完全文件系统访问权限的恢复,例如 Lineage 的恢复,使用解锁的引导加载程序(再次回到那个),攻击者也可以轻松启动他们选择的任何恢复并以这种方式访问您的文件系统。实际上受到 FBE 下的加密保护,不会在您的手机已解锁时(例如响应法院命令)受到来自 Google 或您的手机制造商的后门访问的损害。
所有这些讨论仅与设备加密旨在保护您的数据的范围相关:即,当攻击者获得对您锁定设备的物理访问权限时。在用户决定安装自定义 ROM 时,可能还有其他安全考虑因素,例如,对于不受支持的设备,Lineage 可能会针对已知的网络可利用漏洞提供保护,这些漏洞已被 Google 修复。但这只是意味着要权衡设备加密提供的安全性的权衡还有更多的事情。