


























要将清楚这个 先得讨论加解密
加解密这件事情要分两种情况:
软件加密技术:例如不使用 tpm 的 bitlocker ,luks ,veracrypt
加密流程: 随机产生高熵密钥用于实际加密磁盘数据。 用户密码用于加密这个高熵密钥,加密后存储在加密区头部。
解密流程:使用用户密码解密加密区头部的高熵密钥,再使用高熵密钥解密数据。
改密码流程:使用旧密码解密头部的高熵密钥,再使用新密码加密后存储到头部
忘记密码找回流程: 事先随机一个恢复密钥,用恢复密钥加密高熵密钥,一并存在头部。 这也是多用户多密码的逻辑。 每套密码占用一个槽位 key slot
脱机破解思路: 从磁盘获取加密区头部数据,然后字典或穷举用户密码,试图解密头得到高熵密钥。 破解成功后得到用户密码。
联机破解思路: 系统已经开机并解密数据再使用了,直接从运行内存中获取高熵密钥。(现代加密软件会对抗,但不能根本解决) 破解成功也没有必要拿用户密码。
安全弱点: 头和数据存储区都可以备份,脱机状态无法自毁。 可以无限次的并行尝试破解用户密码。
SSD 带来的额外风险: 修改密码后,旧密码版本的头依旧在 SSD 某处等待 GC 。SSD 不能像机械硬盘那样保证旧的头里面的 key slot 被立即覆盖。
硬件加密技术: 现代手机、使用 tpm 的 bitlocker ,现代电脑
加密流程: 用户密码输入安全芯片,通过 KDF ,硬件根密钥,生成一个高熵密钥实际加密数据。
解密流程: 用户密码输入安全芯片,由安全芯片吐出高熵密钥,解密实际数据。
改密码流程: 安全芯片内,新密码放到新的密码槽位 key slot ,旧密码槽位废弃。不需要读写磁盘存储器
忘记密码找回流程: 同上,增加一个恢复密钥槽位
脱机破解思路: 安全芯片限制密码输入次数和速率,反复尝试密码槽位锁死。且无法被拷贝备份。难以实施破解。
联机破解思路: 同软件!但难度更大,某些设计下,密钥可能根本不进 RAM 。
安全芯片可以用特定密码触发自毁(大家都懂的某个开源 android 系统),又不能事先脱机备份安全芯片内的密钥。现阶段来说安全性非常高了。
BFU 状态 手机重启(开机)后,第一次输入密码前,用户存储区没有被解密过,安全芯片也没有吐出过密钥,这个状态几乎是与脱机的安全性一样。 某些手机断网超过多少小时后会自动重启,也是可以回到这个安全状态。
AFU 状态 一旦输入过密码,安全芯片就吐出过密钥了,用户数据区已经解密。即便再锁屏,也回不到 BFU 状态了。
回到主题:
如果安全芯片自身出问题,就有可能出现输入正确密码也无法解密情况。
安全芯片本身就是在黑箱操作,怎么搞,厂商有没有放后门,有没有被大兄弟要求放置后门,谁也说不清楚。
之前就有人反映修改密码后无法解锁 却用多年前首次密码却解锁成功 这种情况安全芯片回滚到初次设置密码的数据 也不是不可能 比方说旧的密钥槽 key slot 没有被覆盖,芯片错误的匹配了旧的槽位
总的来说,出问题的概率非常渺小,但不是不可能。多一个步骤 多一个零件 也就多一个故障点
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。