
手机
正如前面提到的,系统启动时数据尚未解密,需要通过用户密码生成密钥来解锁
手机中的加密数据。目前大多数
手机都采用基于口令的加密方式,这里的口令就是用户设置的密码。这种方式不仅
苹果在用,
安卓系统也是如此。具体来说,基于口令的密钥并不是简单地将软硬件信息和口令组合后进行MD5加密。因为如果这样做,一旦用户修改密码,所有文件都需要重新解密再加密,效率极低且复杂度高。实际上,在设备首次激活或恢复出厂设置后,系统会生成一个随机的根密钥,所有的数据都会使用这个根密钥进行加密保护。而这个根密钥本身也会被加密,用于解密它的次级密钥则由设备硬件信息和用户密码共同生成。当设备未设置密码时,启动过程中系统会直接读取硬件信息生成次级密钥,进而解密根密钥并访问设备数据。然而,当用户设置了密码后,系统在启动时由于缺少密码,无法生成用于解密根密钥的次级密钥,因此需要用户输入密码。系统会根据输入的密码计算出次级密钥,然后用它解密根密钥,最后完成数据解密操作。在整个流程中,根密钥是固定的,只有在设备恢复出厂设置或刷机重新激活时才会更换新的根密钥。这种加密机制确保了即使存储芯片被转移到其他设备上,由于硬件不匹配,也无法解密数据。此外,当用户多次输入错误密码时,系统只需销毁存储在内存中的密钥,即可将数据重新置于加密状态。这也是为什么许多设备在连续多次密码错误后会禁用生物识别功能的原因——因为此时需要重新解密数据。当设备丢失时,通过查找我的
手机功能发送擦除指令,设备只需迅速删除存储的密钥文件,就能有效保护用户的隐私数据。至于后续的数据擦除过程,如果有足够的时间可以执行,否则也不会对安全性造成太大影响。例如,
iphone有10次密码错误后抹除此设备的功能。在这种情况下,系统会第一时间销毁密钥,并覆盖相关内容以确保密钥不可恢复,随后逐步清除数据。即便有人尝试恢复已删除的数据,没有用户密码也无法解密这些数据。当然,虽然现在很多
安卓设备也采用了类似的加密机制,但其安全性可能确实不如
iphone那样完善,这一点我们必须承认。