我正在阅读有关BIOS的文章,并且看到了以下内容:



接下来,BIOS将在0000:0472h开始检查内存。该地址包含一个标志,该标志将告知BIOS是系统是从冷启动还是从热启动启动。


如您所见,它告诉BIOS有两种类型的检查对象:引导过程。它说,当BIOS找到热启动(值1234h)时,它将跳过剩余的POST例程,但是,如果BIOS找到冷启动,则将运行其余的POST例程。现在,假设我在系统启动时有一个密码(在BIOS中设置了用户密码),在硬盘上。

打开计算机电源后,这意味着BIOS将读取冷启动信息并将运行其余的POST例程,当然还会询问用户和硬盘的密码。但是,当我从操作系统(在本例中为Linux发行版)重新引导系统时,BIOS为什么不要求输入硬盘密码?这是否意味着BIOS现在正在读取热启动?

#1 楼

您的报价是关于旧的旧版BIOS(16位)的。如今,大多数BIOS都实现了符合UEFI的固件,该固件以完全不同的方式工作。 TCG发布的Opal规范描述了UEFI固件如何与自加密硬盘驱动器进行交互。
但是,看来您的情况与BIOS无关。根据ArchLinux Wiki上的主题:


典型的自加密驱动器一旦解锁,只要提供电源,便会保持解锁状态。此漏洞可以通过
更改驱动器外部环境的方式来利用,而无需切断电源,实际上是将驱动器保持在解锁状态。对于
示例,(来自
Erlangen-Nuremberg的大学的研究人员)已经表明,可以将计算机重新启动到由
攻击者控制的操作系统,而无需切断
驱动器。研究人员还演示了将驱动器移动到另一台计算机而不会切断电源


因此可能是驱动器本身,而不是BIOS /固件,将密码缓存在热重启。

其他参考文献:


UEFI Plugfest:自加密驱动器的固件支持策略
EDK2的SecurityPkg实现了与Opal相关的各种功能,例如1,2