ibmc升级解密失败

ibmc版本:3.01.00.40
openubmc版本:26.09(bd7ef4be520b87362839656681c7bffb148114df)

根据论坛指导完成如下操作:

openubmc修改:

  1. mainfest添加自签名,并在opt/bmc/trust/partner下预置rootca.der

  2. [hpm_encrypt] 改为true

bios,ibmc重签名:
1.使用bingo hpm_signer 重签名 华为bios和ibmc

操作过程:
1.ibmc3.01.00.40 升级为完成如上修改的openubmc
2.升级重签名后bios和ibmc

报错如下

1970-01-01 00:03:46.409912 firmware_mgmt NOTICE: file_transfer.lua(169): start to move file [temp_upgrade_file.hpm] from tmp to shm
1970-01-01 00:03:46.499312 firmware_mgmt NOTICE: file_transfer.lua(174): move_file_s ok:true, err:0
1970-01-01 00:03:46.524101 firmware_mgmt NOTICE: validate_sign.lua(174): the custom ca certificate is exist, load custom certificate
1970-01-01 00:03:46.544187 firmware_mgmt NOTICE: validate_sign.lua(199): verify signature successfully
1970-01-01 00:03:46.545500 firmware_mgmt NOTICE: action.lua(66): Validate signature successfully
1970-01-01 00:03:46.547314 firmware_mgmt NOTICE: hpm_package.lua(841): ManufacturerValidateEnabled is false, there is no need to validate manufacture_id.
1970-01-01 00:03:46.552879 firmware_mgmt ERROR: hpm_package.lua(203): read from profile_en failed, generate new key and try again
1970-01-01 00:03:46.554307 firmware_mgmt ERROR: C: [WSEC_CBB][637] (UTC) 1970-01-01 00:03:46 The file is not KSF format.
1970-01-01 00:03:46.555403 firmware_mgmt ERROR: C: [WSEC_CBB][790] (UTC) 1970-01-01 00:03:46 ReadRootKeyByHandle() failed 255
1970-01-01 00:03:46.556566 firmware_mgmt ERROR: C: [WSEC_CBB][1358] (UTC) 1970-01-01 00:03:46 MemImportKsf ReadKsf failed, result = 255
1970-01-01 00:03:46.557706 firmware_mgmt ERROR: hpm_package.lua(231): decrypt srcfile failed, err:./opt/bmc/libmc/lualib/mc/logging.lua:520: kmc import ksf failed, ret = 255
1970-01-01 00:03:46.558912 firmware_mgmt NOTICE: hpm_package.lua(176): decrypt srcfile failed, try to decompress directly
1970-01-01 00:03:46.561880 firmware_mgmt ERROR: utils.lua(203): secure_tar_unzip failed: -3003
1970-01-01 00:03:46.563913 firmware_mgmt ERROR: task_instance.lua(253): parse package(hw_bios_image.hpm) failed, ret:./opt/bmc/libmc/lualib/mc/utils.lua:1204: cannot open v2 persistence file.
1970-01-01 00:03:46.652452 firmware_mgmt NOTICE: task_mgmt.lua(174): task[Id: 3909415348, StartTime: 1970-01-01T00:03:45+00:00, Progress: 0, State: Exception] will be destroyed after 10 minutes

答案内容由AI生成,仅供参考:

结论

您遇到的问题与 openUBMC 社区中已记录的多起“iBMC 升级 openUBMC 后重签名固件升级失败”案例高度一致。日志表明签名有效,但固件包未被正确解密,大概率与 hpm_encrypt 加密配置或重签名流程不完整有关。请优先核对加密配置步骤,并检查 community_enable 设置是否正确。

点击此处查看详细分析解答

根据您提供的日志和背景,本次升级失败的原因可以归纳为:签名校验已通过,但固件包在解密/密钥导入阶段未被识别为预期的 KSF 格式,导致最终解析失败。

日志关键点分析

从报错日志可以看到以下执行链条:

  1. 文件传输与签名校验正常

    • move_file_s ok:true:升级文件成功从 tmp 移动到 shm。
    • the custom ca certificate is exist, load custom certificate:自定义 CA 证书已加载。
    • verify signature successfully:签名验证成功。
    • ManufacturerValidateEnabled is false:未启用 manufacturer 校验。
  2. 失败发生在解密阶段

    • read from profile_en failed, generate new key and try again
    • The file is not KSF format
    • ReadRootKeyByHandle() failed 255
    • MemImportKsf ReadKsf failed, result = 255
    • kmc import ksf failed, ret = 255
  3. 降级解压也失败

    • 解密失败后尝试直接解压,但 secure_tar_unzip failed: -3003
    • 最终 parse package(hw_bios_image.hpm) failed,并提示 cannot open v2 persistence file

也就是说,重签名后的 hw_bios_image.hpm 虽然通过了签名校验,但该包并未被 BMC 识别为可解密的 KSF 加密格式,导致升级中断。

与已知案例的关联

上下文资料中有多个与您高度相似的案例:

  • 有用户使用 iBMC 3.01.00.40 升级 openUBMC 25.12,按论坛指导完成修改和重签名后,出现了几乎相同的日志:签名验证成功,但随后在 KSF 格式解密阶段失败。
  • 另一个案例是 OpenUBMC2603 + iBMC 3.01.00.40,升级到 70% 时失败,发帖人最终确认是“加密的配置步骤搞错了,修改过后可以了”。这说明本类问题常见原因是 hpm_encrypt 相关配置或重签名流程未完全按指导执行。
  • 论坛中还有“升级重签名 bios 报错”的讨论,涉及 community_enable 参数:社区包需要 community_enable: true,非社区包可能需要 community_enable: false;但最新 manifest 中该组件可能已被锁定为 true,无法直接修改,这也是用户常见困惑点。

建议排查方向

  1. 核对加密/重签名完整步骤
    重点检查 [hpm_encrypt] 相关配置是否与参考指导完全一致,包括自签名 CA 的创建、rootca.der 的预置位置、以及 bingo hpm_signer 重签名时是否启用了符合 openUBMC 要求的加密选项。参考案例表明,这类问题往往由“加密配置步骤搞错”导致。

  2. 确认 community_enable 配置
    您提供的操作步骤中未提及 firmware_mgmtcommunity_enable 设置,而相关参考指导中包含了“将 firmware_mgmt 改为 community_enable: false”的步骤。建议核对您的包类型并检查此配置是否匹配。

  3. 如果仍无法解决,建议提供完整日志到社区
    上下文资料显示,openUBMC 论坛的类似问题通常需要提供完整日志(如 app.logframework.log)以便进一步定位。您也可以联系 PAE 获取支持。

结论

您遇到的问题与 openUBMC 社区中已记录的多起“iBMC 升级 openUBMC 后重签名固件升级失败”案例高度一致。日志表明签名有效,但固件包未被正确解密,大概率与 hpm_encrypt 加密配置或重签名流程不完整有关。请优先核对加密配置步骤,并检查 community_enable 设置是否正确。