Android全盘加密实际上有什么优势吗?

信息安全 磁盘加密 安卓
2021-08-20 06:08:47

因此,从 Android 3 开始,设备可以在启动时对应用程序存储区域(不是SD 卡/可移动存储)进行即时加密/解密- 本质上是全盘加密。这需要将密码/密码/PIN 设置为屏幕解锁码和解密密钥,无法使用解锁图案。

我怀疑启用加密实际上没有任何好处,主要是因为充当“硬盘驱动器”的内存芯片不能像计算机中的真正硬盘驱动器那样轻易移除。我想知道其他人是否可以评论我的推理。

场景 1:设备丢失或被机会主义小偷(即不老练)偷走
加密 -> Finder/小偷无法访问
没有加密但屏幕锁定 -> Finder/小偷无法访问

场景 2:设备被老练的攻击者窃取,但他们必须不留下攻击痕迹(因此不包括芯片关闭方法,必须在发现丢失之前归还手机)
加密 -> Finder/小偷不能获得访问权限
没有加密但有屏幕锁定 -> Finder/小偷无法获得访问权限

场景3:设备被一个坚定的攻击者偷走,并且所有者在胁迫下泄露了密码。Android 没有 Truecrypts似是而非的否认功能。
加密 -> 攻击者获得访问权限
没有加密但屏幕锁定 -> 攻击者获得访问权限

有没有我错过的场景?所以我的结论是,在 Android 上启用完整的设备加密是没有意义的——屏幕锁定就可以了。讨论!(我很高兴被证明是错误的,我只是看不出它有什么好处)

4个回答

优点是有限的,但在某些情况下加密会有所帮助。

在攻击者获得密码¹的任何情况下(使用管道加密,或者更现实地通过读取屏幕上的解锁图案或 PIN 上的暴力破解),全盘加密显然没有优势。那么攻击者如何在不获取密码的情况下获取数据呢?

攻击者可能使用软件漏洞绕过登录屏幕。中的缓冲区溢出adbd,比如说。

攻击者可能能够在不启动设备的情况下访问内置闪存。可能是通过软件攻击(设备是否会被诱骗从 SD 卡启动?调试端口是否保持打开状态?);也许是通过硬件攻击(你假设小偷拿着铅管,我假设小偷拿着烙铁)。

全盘加密的另一个用例是攻击者还没有密码。密码用于解锁无法暴力破解的唯一密钥。如果窃贼在解锁之前不经意间让设备连接到网络,并且您已经注意到盗窃,您可能能够触发快速远程擦除——只需擦除密钥,无需擦除整个设备。(我知道这个功能存在于最近的 iPhone 和 Blackberries 上;大概它也存在或即将存在于具有全盘加密的 Android 设备上。)

如果您是偏执狂,您甚至可能会在过多的身份验证失败后触发密钥擦除。如果那是你摸索,你只需从备份中恢复密钥(你备份你的密钥,对吗?那是可用性 101)。但是小偷访问您的备份的可能性比访问您的手机的可能性要小得多。

¹密码、密码、PIN 码、手势密码等。

对于确定的攻击者设置:

Android 3 中使用的加密技术是dm-crypt这里的相关部分如下:加密使用对称密钥,该密钥源自用户输入的密码/PIN;派生参数存储在设备本身的LUKS格式块中。密码派生是加盐的,并使用PBKDF2进行多次迭代。结果是攻击者可以进行离线字典攻击:当他获得设备时,他将分区的原始转储到 PC 中,然后“尝试”密码。LUKS 块包含足够的信息来验证潜在密码是否正确。

PBKDF2 使用盐和迭代来降低搜索效率,但是 PBKDF2 可以实现的功能存在限制。PBKDF2 使攻击者和手机本身的密钥派生(从密码)变慢。它不能使用太多的迭代,因为用户还没有准备好在启动时等待超过 3 或 4 秒。攻击者拥有更多的计算能力(他有一台或几台多核 PC,每个内核的原始功率都比手机 CPU 多,他可以使用 GPU 来加速)和更多的耐心(如果数据有价值,攻击者准备投入一两个小时的计算)。因此,在这种情况下,4 位数的 PIN 不会持续很长时间。另一方面,您准备好在每次启动时在手机上输入一个长而高熵的密码了吗?

(如果您偶尔只启动一次手机,您可能已经准备好这样做了 - 即仅当您忘记给电池充电时。另一方面,如果您有一个高熵密码并且不经常输入它,你很可能会忘记它,这很不方便。)

这种情况假设攻击者可以转储原始设备内容,这需要打开它并访问芯片;或者以某种方式在恢复模式下启动手机,足以支持 ADB——这显然可以用一些硬件修补最少的手机来完成,所以这甚至可能是一次隐形攻击(攻击者抓住手机,进行转储,然后放用空电池把手机放回口袋里,这样你就不会怀疑重启;你只是说自己“该死,忘记给这该死的东西充电了”以及一些关于智能手机充电寿命低的通用诅咒和在过去,手机一次充电可以使用 10 天)。

全盘加密的一个好处是它可以非常快速地擦除闪存存储。

存储在设备上的所有数据都在特定的加密密钥K下加密存储。系统还在用户的 PIN 下存储了K的加密。

要擦除整个驱动器,您所要做的就是擦除存储K加密的位置(仅一个块)。一旦该块消失,就无法解密驱动器上的数据(因为无法恢复K ),因此整个驱动器与擦除一样好。擦除过程可以很快完成,因为它只需要擦除一个块。这意味着如果您的设备被盗并且您检测到它被盗,安全/防盗应用程序可以擦除您的设备,并且擦除几乎会立即生效。如果没有全盘加密,擦除设备可能需要更长的时间。

有没有我错过的场景?所以我的结论是,在 Android 上启用完整的设备加密是没有意义的——屏幕锁定就可以了。讨论!(我很高兴被证明是错误的,我只是看不出它有什么好处)

您忘记了政府可以转储您存储/ SIM卡/ SD卡的内容的可能性。至少在英国,这可能是在没有搜查令的情况下完成的,但德国政府仍然否认了这一点。

在这种情况下,您将希望您的数据完全加密,至少在德国,他们仍然不能强迫您透露您的秘密(pin)。因此,总的来说,如果有一天它包括 sd 卡区域并提供一种将数据保存在手机中和 SIM 卡之外的方法,它可能会被证明是有用的功能。这只是您的宪法权利对您是否重要的​​问题。