You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何基于IMA日志复现TPM PCR10 SHA1成功但SHA256失败?

问题原因分析及解决方向

1. IMA默认仅生成SHA1测量哈希

你当前的内核参数未指定ima_hash,IMA默认只会生成SHA1格式的测量哈希并写入/sys/kernel/security/ima/ascii_runtime_measurements。TPM的PCR10 SHA256值是基于IMA事件的SHA256测量值扩展得到的,但你的日志里没有对应的SHA256哈希数据,用SHA1的日志内容去计算SHA256的PCR值自然无法匹配。

2. 需显式配置IMA生成SHA256测量值

要让IMA同时生成SHA256格式的测量值,需修改GRUB内核参数,添加ima_hash=sha256:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="ima_policy=\"tcb|appraise_tcb\" ima_appraise=log ima_hash=sha256"

执行sudo update-grub并重启系统后,ascii_runtime_measurements中会同时包含SHA1和SHA256的测量哈希(部分内核版本会单独生成ascii_runtime_measurements_sha256文件),此时用SHA256的测量数据按照TPM PCR扩展逻辑计算,就能匹配tpm2_pcrread返回的SHA256:10值。

3. 单条记录测试的关键细节

单条记录验证时,要确保你使用的是IMA直接生成的SHA256测量值(而非对SHA1值二次哈希),同时严格遵循TPM的PCR扩展规则:新PCR值 = 哈希算法(旧PCR值 拼接 完整测量事件数据)——这里的测量数据不仅包含哈希值,还包括事件类型、长度等元数据,不能只取哈希部分单独计算。


内容的提问来源于stack exchange,提问作者Jovan Djukic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:17:10