电脑硬盘送去维修bitlocker会被师傅暴力破解吗?
暴力破解肯定不行,而是否会被破解取决于具体的BitLocker及系统的配置。安全性是一个系统工程,讨论独立组件(如BitLocker本身的安全性)肯定是不够的,也没什么意义。值得讨论的是一个系统的安全性。这里只讨论把完整的原始设备(笔记本)送去维修,因为只送BitLocker加密的硬盘肯定是安全的。
下面的讨论基于一个“维修师傅有相当技术水平和主观动机”的威胁模型,但不考虑维修师傅掌握固件0day漏洞或者有侧信道攻击能力(如电压故障注入)等等。这是一个具有物理接触能力的攻击者,意味着能实现很多神奇的操作。可以合理假设维修师傅有很多专业的设备、工具以及软件。注意这个模型可能不符合实际情况,因为绝大部分用户的数据毫无价值。
首先,BitLocker、Secure Boot、TPM 2.0需要具备并开启,这是最基本的。Windows版本、BIOS/UEFI版本、CPU微码应该全部更新到最新,及时更新证书和吊销列表。否则有可能出现安全隐患,包括但不限于:
- BitLocker有可能使用SSD的SED功能(硬件全盘加密)而不是自己做软件全盘加密,而硬盘厂商的SED经常性出现漏洞(微软后续修复了这一问题)
- 降级攻击(用旧版本签名且有漏洞的Bootloader绕过Secure Boot,比如BlackLotus Bootkit)
- LogoFAIL漏洞(替换未被加密的EFI分区里的厂商logo图片,缓冲区溢出,执行恶意代码)
之后,设备应该处于关机或休眠状态(而不是睡眠或锁屏状态),并且最好让BitLocker处于TPM + PIN的模式。绝大部分BitLocker设备处于TPM-only的模式,这有点不安全,问题包括但不限于:
- 如果TPM是独立的dTPM芯片而不是集成在CPU的fTPM,就可以进行总线嗅探攻击,可以得到密钥,成本很低
- 如果设备处于锁屏或睡眠状态,并且没有全内存加密(Intel TME等),可以尝试内存冷启动攻击,提取密钥,这个难度还是比较高的
- 可以尝试DMA攻击,比如插入雷电接口设备就能读取内存中的密钥
这里Windows设备和其它设备(如带T2芯片的Macbook)的区别就在于Windows登录的PIN实际上没有用于全盘加密,这就导致你实际上需要BitLocker的PIN而不是Windows Hello的PIN,设置BitLocker为TPM+PIN可以阻止密钥被自动解封。
此外,稍微结合一点社工手段,有很多方案:
- 直接不管Secure Boot和TPM,先加上自己的Bootkit恶意软件,然后告诉你:由于更换了某些硬件,BitLocker需要重新输入恢复密钥,这是正常现象(确实是),然后你回家后就直接输入了自己的恢复密钥,这时Bootkit后门就被完全信任了,可以直接拿到用户数据
- 强制刷固件,加自己的证书,弄一个自己编写的假冒BitLocker解锁界面,等你输入PIN它提示错误,始终不交给真正的BitLocker,然后你再送回去维修,PIN就泄露了(虽然可能还拿不到数据)
- 让你到现场进入一次Windows系统,实际上先植入了硬件键盘记录器,这种纯硬件的改动TPM根本无法检测,PIN也泄露了
其它安全措施还有设置BIOS的Supervisor Password等等
如果要非常安全,应该:全部更新到最新版,BIOS里启用Secure Boot并设置Supervisor Password,启用BitLocker (TPM+PIN),确保是fTPM,设备在关机状态,移除全部硬盘再送去维修,拿回设备以后需要重新刷官方的BIOS、重置TPM、重装系统,并且不要送回去第二次维修。