为什么移动设备在重启后强制用户输入密码?

信息安全 移动的 安卓 IOS 指纹
2021-09-04 09:46:04

现在很多手机都支持指纹解锁。然而,iOS 和 Android 都要求用户在设备重启后输入密码,即使提供了授权指纹。

我的问题是:为什么?

4个回答

第一的:

  • 密码用于访问全盘加密密钥
  • 指纹用于解锁屏幕(已经“解密”的设备)

加密密钥检索必须是:

  • 准确 - 在每个条目上,设备必须通过密钥派生函数将密码转换为唯一正确的加密密钥,否则设备将无法解密数据
  • 安全 - 通过单向函数派生,而不是通过将用户提供的数据与设备上存储的模式进行比较来“解锁”

指纹识别不满足上述要求,就是:

  • 模糊 - 在每次按下时,传感器都会为设备提供指纹部分的近似图像,该图像以一定的精度匹配;在每次验证尝试中,实际数据因位置、偏斜、压力强度不同而不同
  • 非安全 - 通过将实际指纹与设备上存储的数据进行比较来执行识别 - 该数据必须是可读和可修改的,这使得它容易受到攻击者的攻击

因为指纹只用于身份验证,而密码也用​​于加密,这是不同的过程,要求非常不同。


您可能知道,锁屏的主要功能是确保访问您设备的人是您。这称为身份验证如果有人在锁屏上插入正确的密码/密码/指纹,设备就会知道那个人可能就是您,并授予您对系统的访问权限。

除了身份验证之外,在您启动手机时要求您输入密码的屏幕也有不同的用途。现代电话具有称为磁盘加密的功能。这意味着存储在设备上的所有用户数据都受到加密算法的保护。

当使用正确实施的磁盘加密时,仅考虑手机的存储空间,没有人可以访问您的数据 - 甚至设备本身!用于此目的的对称加密使用密钥,出于安全目的,该密钥永远不会被设备存储。相反,必须告知设备正确的密钥才能访问您的数据

现在,由于该算法的性质,密钥需要具有一些重要属性:

  • 应该很
  • 一定要准确与密钥几乎完全相同的密钥是完全没用的

不幸的是,基于生物特征的系统(例如指纹读取器)无法满足这些特性他们提供的信息量通常很小且不准确。

这就是您需要输入密码的原因 - 这是我们所知道的唯一能够正确满足要求的机制。这是通过密钥派生函数输入您的密码来完成的。

在启动并被告知您的密码后,手机会将派生的加密密钥保存在其易失性存储器中,因此无需再次询问 - 只需对您进行身份验证。这有一些缺点,例如容易受到冷启动攻击,但它被认为是安全性和可用性之间的良好折衷

AFAIK,在启动时,您首先必须解锁 SIM 卡,这需要数字密码。接下来的操作只是解锁屏幕,对于这部分你有不同的身份验证方法(并非所有设备都实现了):

  • 数字或字母数字密码
  • 指纹
  • 手势
  • 什么都没有(只需在屏幕上移动手指即可解锁屏幕)

这些方法都是手机直接处理的,但第一种是SIM卡自己处理的,而且功能远不如手机,只接受数字密码。当然,手机当然可以拦截代码,但它看起来像是中间人攻击,手机制造商和操作系统提供商都不想实施它。

虽然其他人提到的主要问题是准确,但密码的精度和准确性远高于指纹,但我认为值得一提的是驱动程序和算法。

也就是说,在您未加密驱动器之前,您的大部分硬盘空间和代码都不可用,读取和解释指纹的代码几乎肯定比读取指纹的代码复杂得多(大)密码。未加密之前的任何代码都是可攻击的,添加那么多代码本身就是一种安全风险。