2

我需要一些关于 bios 加载/执行过程的解释。我需要验证 CPU 执行的 bios。我的想法是执行 MISO 数据流的 HMAC-SHA1(从 SPI BIOS Flash 到 CPU 的数据)。

问题是我不确定 MISO 数据流是否总是相同的。我做了一些尝试,我总是得到与前一个不同的数据流。流的第一部分总是相同的,过了一段时间(我没有设备来转储整个通信并获得它发生的时刻)流是不同的。我不确定,但我怀疑它是不同的,因为当计数器达到指定值并且我得到不同的嗅探值时,我可以嗅探流的几个字节。我认为嗅探过程是正确的,但我不能确定(嗅探是由 CPU 和 SPI BIOS FLASH 之间的 FPGA 执行的,我编写了 VHDL)。

我还注意到,在执行 bios 期间,CPU 至少读取了 2 倍的复位向量( 0hFFFFF0 )。

CPU是否有可能在每次开机时执行不同的步骤?您认为是否可以对数据流进行身份验证?我需要确保执行的 bios 是有效的 bios ( my bios )。

如果问题一团糟,我会道歉,但我对 BIOS 和启动程序的了解很差。

谢谢您的帮助。

4

1 回答 1

2

是的,系统通常在上电后会重置几次,BIOS 采用不同的执行路径。此外,SPI 控制器可能会分块读取闪存部分并将其缓存,因此您看到的从闪存读取的内容不一定是 CPU 执行的内容。不幸的是,您的方法并不可靠,并且有一种行业标准方法可以做到这一点,它被称为测量启动,它涉及 TPM。请谷歌它以获得一个想法,看看它是否适合你的需要。

于 2015-08-15T09:16:54.883 回答