This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM2632-Q1:HSM 运行时缺少对称密钥

Guru**** 2455360 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1480241/am2632-q1-missing-symmetric-key-in-hsm-runtime

器件型号:AM2632-Q1

工具与软件:

您好!

客户发现、未向 HSM 运行时提供用于从 ROM 引导加载程序解密数据的对称密钥。

在 TIFs_modules_config.c 文件中生成的函数 keyring_Init()中、gAssetInfo.derivedKey 中的密钥被复制到 gKeyringSymbolKey 数组中。
但是、信息 gAssetInfo.derivedKey 为0。 GAssetInfo 由 ROM 加载程序根据链接器文件中的信息进行描述。

它们如何获得对称密钥? 它们是否需要直接访问 OTP 数据?

此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Holger、

    我来核对一下、明天就回来与您联系。

    此致、

    Nikhil  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Holger、

    很抱歉响应延迟

     当 SBL 和 HSMRt 未加密时、您会看到 gAssetInfo.derivedKey 为0。 此参数由 ROM 填充、由于 SBL 和 HSMRt 未加密、因此填充为0。

    在 SDK 中、您可以使 ENC_SBL_ENABLED = yes 以加密 SBL 二进制、在 TIFS 中、您可以使 ENC_ENABLED = yes 以加密 HSM 二进制。  

    之后、应填充此派生密钥。

    SBL 和 TIFS 映像无加密

    加密的 SBL 和 TIFS 映像

    希望这能解答您的疑问

    此致、

    Nikhil

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nikhil:
    这样对客户来说是无效的。 在 CA 中如何设置迭代计数? 您是否在测试中使用了盐?

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Holger、

    我使用默认的 SDK 产品。

    即加密 SBL 映像、使用以下命令  

    $(BOOTIMAGE_CERT_GEN_CMD) --sbl-enc --enc-key $(APP_ENCRYPTION_KEY) --image-bin $(BOOTIMAGE_PATH)/$(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --kd-salt $(KD_SALT) --out-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME) --device am263x

    BOOTIMAGE_CERT_GEN_CMD=$(PYTHON)$(MCU_PLUS_SDK_PATH)/source/security/security_common/tools/boot/signing mcu_rom_image_gen.py

    APP_encryption_key =$(MCU_PLUS_SDK_PATH)/source/security/security_common/tools/boot/signing/mcu_custMek.key

    BOOTIMAGE_BIN_NAME:= sbl_qspi.debug.bin

    SBL_RUN_ADDRESS=0x70002000

    BOOTIMAGE_CERT_KEY =$(MCU_PLUS_SDK_PATH)/source/security/security_common/tools/boot/signing/mcu_custMpk.pem

    KD_SALT =$(MCU_PLUS_SDK_PATH)/source/security/security_common/tools/boot/signing/kd_salt.txt

    BOOTIMAGE_NAME = sbl_qspi.debug.hs.tiimage

    ENC_ITER_COUNT 设置为1 通过 python 脚本 mcu_rom_image_gen.py 来 调用。

    此致、

    Nikhil Dasan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nikhil:
    如果将迭代计数设置为0而不使用 Salt、会出现什么情况?
    您使用过哪款 AM263x?

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Holger、

    当未提供 Salt 且 ITER 计数为0时、则 ROM 没有 将派生的密钥放入资产信息中。

    我使用的是 PROC110E2A (001) AM263x  

    此致、

    Nikhil

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nikhil:

    这是否意味着在使用 SMEK 或 BMEK 时、您始终必须使用 SALT 对数据进行加密、以便使用 HSM RT 对映像使用 SMEK 加密或解密 BMEK?
    或者有可能与 SMEK 或 OTP 存储器联系?

    这是引入钥匙环的原因之一吗? (各自的) 在 MCU+ SDK 版本9中解密无效?

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    仅当我们提供 SALT 和 ITER 计数时、ROM 才会将密钥写入资产信息。 如果未提供、则对称密钥将采用原始形式(即未派生)、并且将相同信息放入资产信息中会对安全构成风险。

    因此、SALT 和 ITER 计数是实现这一目标的必备条件。

    甚至密钥环也使用此派生密钥来解密通过密钥环传递的密钥。

    因此、如果没有 SALT 和 ITER 计数、则不会写入衍生密钥、并且 TIFS 解密不会发生

    此致、

    Nikhil

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nikhil:

    他能够理解这个过程。 SMEK 或 BMEK 对他们是无用的,除非你总是喜欢使用相同的盐比所有的图像( SBL,HSM RT 和 APP)。 但这并不符合盐的原理。

    您提供了一个示例、说明他们如何将 HSM RT 用于 SMEK 或 BMEK?!

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Holger、

    只是为了确认流程、他们是否使用设备电子保险的相同密钥(即 SMEK/BMEK)对 SBL 和 APP 进行加密?  

    或者、他们是否使用 SMEK/BMEK 对 SBL 进行加密、以及使用密钥环对应用程序进行加密?

    此致、
    Nikhil Dasan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nikhil:

    如果他们想通过密钥环下载密钥不对称或对称、以加密 SMEK RESP、这是正确的。 需要使用 BMEK?
    如果是这样,他们将总是必须使用相同的盐来加密 SBL。可能是一个盐是没有意义的,因为它是为了防止数据对称,这样将被保护的数据就不能被识别。 他们认为,盐必须总是随机选择,这样才能完全排除这种对称性。 假设正确、在这种情况下、SALT 不提供任何额外保护。

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    >只是为了确认他们的流程,他们是否使用相同的密钥(即 SMEK / BMEK )对 SBL 和 APP 进行加密?


    或者,他们是否使用 SMEK/BMEK 对 SBL 进行加密,以及使用密钥环对应用程序进行加密?
    否 这与客户指定的概念不对应。
    此外、客户还必须为他们提供多个密钥。 这使得处理更加复杂。

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [quote userid="8038" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1480241/am2632-q1-missing-symmetric-key-in-hsm-runtime/5706457 #5706457">为了确认流程、他们是否使用设备可以使用的相同密钥(即 SMEK / BMEK)对 SBL 和 APP 进行加密?


    或者,他们是否使用 SMEK/BMEK 对 SBL 进行加密,以及使用密钥环对应用程序进行加密?
    否 这与客户指定的概念不对应。
    此外、客户还必须为他们提供多个密钥。 这使得处理更加复杂。

    好的...明白了
    因此、为了保持简洁明了、

    如果客户是 未使用 辅助密钥(即通过密钥环导入的密钥)要加密应用程序、则必须使用用于加密 SBL 映像的相同派生密钥(即相同的 SMEK/BMEK + SALT)对应用程序进行加密。

    这是因为 ROM 在解密 SBL 时填充 gAssetInfo.derivedKeys、TIFS 使用此  gAssetInfo.derivedKeys 来解密加密的应用程序。

    此致、

    Nikhil Dasan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!
    现在、客户已重新编写了 HSM RT、并且所有功能都已实现。 唯一的缺点是,他们不能使用盐的目的。

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Holger、

    唯一的缺点是他们无法按预期使用 salt。

    抱歉、您能详细说明一下吗?  

    HSMRT 上的电流限制是多少? 客户目前面临的问题是什么?

    它们是否使用派生密钥(SMEK/BMEK + SALT)对 SBL 进行加密?

    是否存在使用相同派生密钥加密应用程序映像的问题?

    此致、

    Nikhil Dasan