“坚持密码正确也无法解锁”与“加解密的技术”讨论

busier 2026-07-20 13:06 1

要将清楚这个 先得讨论加解密


加解密这件事情要分两种情况:


软件加密技术:例如不使用 tpm 的 bitlocker ,luks ,veracrypt


加密流程:
随机产生高熵密钥用于实际加密磁盘数据。
用户密码用于加密这个高熵密钥,加密后存储在加密区头部。


解密流程:使用用户密码解密加密区头部的高熵密钥,再使用高熵密钥解密数据。


改密码流程:使用旧密码解密头部的高熵密钥,再使用新密码加密后存储到头部


忘记密码找回流程:
事先随机一个恢复密钥,用恢复密钥加密高熵密钥,一并存在头部。
这也是多用户多密码的逻辑。
每套密码占用一个槽位 key slot


脱机破解思路:
从磁盘获取加密区头部数据,然后字典或穷举用户密码,试图解密头得到高熵密钥。
破解成功后得到用户密码。


联机破解思路:
系统已经开机并解密数据再使用了,直接从运行内存中获取高熵密钥。(现代加密软件会对抗,但不能根本解决)
破解成功也没有必要拿用户密码。


安全弱点:
头和数据存储区都可以备份,脱机状态无法自毁。
可以无限次的并行尝试破解用户密码。


SSD 带来的额外风险:
修改密码后,旧密码版本的头依旧在 SSD 某处等待 GC 。SSD 不能像机械硬盘那样保证旧的头里面的 key slot 被立即覆盖。


硬件加密技术:
现代手机、使用 tpm 的 bitlocker ,现代电脑


加密流程:
用户密码输入安全芯片,通过 KDF ,硬件根密钥,生成一个高熵密钥实际加密数据。


解密流程:
用户密码输入安全芯片,由安全芯片吐出高熵密钥,解密实际数据。


改密码流程:
安全芯片内,新密码放到新的密码槽位 key slot ,旧密码槽位废弃。不需要读写磁盘存储器


忘记密码找回流程:
同上,增加一个恢复密钥槽位


脱机破解思路:
安全芯片限制密码输入次数和速率,反复尝试密码槽位锁死。且无法被拷贝备份。难以实施破解。


联机破解思路:
同软件!但难度更大,某些设计下,密钥可能根本不进 RAM 。


安全芯片可以用特定密码触发自毁(大家都懂的某个开源 android 系统),又不能事先脱机备份安全芯片内的密钥。现阶段来说安全性非常高了。


BFU 状态
手机重启(开机)后,第一次输入密码前,用户存储区没有被解密过,安全芯片也没有吐出过密钥,这个状态几乎是与脱机的安全性一样。
某些手机断网超过多少小时后会自动重启,也是可以回到这个安全状态。


AFU 状态
一旦输入过密码,安全芯片就吐出过密钥了,用户数据区已经解密。即便再锁屏,也回不到 BFU 状态了。


回到主题:


如果安全芯片自身出问题,就有可能出现输入正确密码也无法解密情况。


安全芯片本身就是在黑箱操作,怎么搞,厂商有没有放后门,有没有被大兄弟要求放置后门,谁也说不清楚。


之前就有人反映修改密码后无法解锁 却用多年前首次密码却解锁成功 这种情况安全芯片回滚到初次设置密码的数据 也不是不可能
比方说旧的密钥槽 key slot 没有被覆盖,芯片错误的匹配了旧的槽位


总的来说,出问题的概率非常渺小,但不是不可能。多一个步骤 多一个零件 也就多一个故障点

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回