我知道 TPM 包括 ROM、非易失性(例如 EEPROM)和易失性(例如 SRAM)存储器。可执行固件存储在 ROM 中,例如各种驱动程序和命令。
但这一次,我想知道如何保护ROM中的固件不被篡改。
例如,我听说设备身份验证可以保护 TPM 在固件更新期间免受篡改和其他故障。TPM 通常使用什么样的 ROM?一次性烧写,
还是掩膜烧写,制作后无法更改内容?
我知道 TPM 包括 ROM、非易失性(例如 EEPROM)和易失性(例如 SRAM)存储器。可执行固件存储在 ROM 中,例如各种驱动程序和命令。
但这一次,我想知道如何保护ROM中的固件不被篡改。
例如,我听说设备身份验证可以保护 TPM 在固件更新期间免受篡改和其他故障。TPM 通常使用什么样的 ROM?一次性烧写,
还是掩膜烧写,制作后无法更改内容?
这是一个相当复杂的问题。
首先:如果它真的是 ROM,它是防篡改的。ROM 在电气上是只读存储器。它不能改变。
现在,TPM 芯片完全有可能运行固件,实际上是在可写内存中。
有很多方法可以保护:例如,仅通过来自固件本身的命令使固件存储器可访问 - 在这种情况下,固件有工作检查是否接受固件更新,例如。通过检查谁试图更新固件的电子签名。
可加载固件还可以通过驻留在 ROM 中的引导加载程序进行检查,例如是否有与 ROM 中的制造商密钥匹配的数字签名。
其他方法包括从 CPU 获取仅在 CPU 处于 SMM(系统管理模式,通常只有 UEFI 可以进入的模式)时才高的特殊信号线。
TPM 通常使用什么样的 ROM?一次性烧写,还是掩膜烧写,制作后无法更改内容?
正如你在上面看到的,我什至不能告诉你它是否真的是 ROM。这是一个实现细节,我相信您可以了解制造商从他们的数据表中选择的不同方法。