器件型号: TDA4VM
TI 团队大家好、
请申请您对 GP 设备安全启动的支持。
根据 TRM、GP 器件无法安全运行、不提供认证。
1、在这种情况下,是否可以跳过 SBL 和系统固件引导映像中的 X509 证书生成? 如果没有、对 X509 证书的需求是什么?如何在引导 SBL 和系统固件时处理证书?
2、请分享 X509 证书的格式与需要编码的必需参数吗?
3、如果未提供身份验证,是否必须 在证书中放入密钥?
此致、
Sarath
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.
器件型号: TDA4VM
TI 团队大家好、
请申请您对 GP 设备安全启动的支持。
根据 TRM、GP 器件无法安全运行、不提供认证。
1、在这种情况下,是否可以跳过 SBL 和系统固件引导映像中的 X509 证书生成? 如果没有、对 X509 证书的需求是什么?如何在引导 SBL 和系统固件时处理证书?
2、请分享 X509 证书的格式与需要编码的必需参数吗?
3、如果未提供身份验证,是否必须 在证书中放入密钥?
此致、
Sarath
您好 Sarath、
1、在这种情况下、是否可以跳过 SBL 和系统固件引导映像中的 X509 证书生成? 如果没有、对 X509 证书的需求是什么?在引导 SBL 和系统固件时如何处理证书?
即使对于 GP 器件、也需要 X509 证书。 ROM 代码使用 X509 验证二进制的哈希值
证书结构、即使不执行身份验证也是如此。
X509 证书有以下重要用途:
-哈希验证:如果 GP 设备上使用 RSA 解生成密钥进行签名, ROM 将验证二进制的哈希
-引导元数据:证书包含关键引导信息(组件大小,加载地址,引导内核信息)
2、请分享 X509 证书的格式与需要编码的必需参数吗?
[/报价]有关引导加载程序映像所需的强制扩展/参数、请转至 TRM 的“引导映像格式“部分。
3、如果没有提供身份验证、是否必须 在证书中放入密钥?
[/报价]对于 GP 器件、您应该使用 RSA 取消生成密钥(虚拟密钥)。
此致
Diwakar
尊敬的 Diwakar:
感谢您的回答
我假设您的说明同时适用于 SBL 和系统固件。
请您查看以下有关 GP 器件的后续问题。
此致、
Sarath
您好 Sarath、
[引述 userid=“699087“ url=“~/support/processors-group/processors/f/processors-forum/1659260/tda4vm-j721e-aadapt-secure-boot-on-the-gp-board-for-sbl-and-system-firmware/6399790
密钥可在 //packages/ti/build/makerules.中找到
散列验证是强制性的还是有跳过它的选项? (我们有其他特定于项目的选项来评估完整性)
不,我们不能跳过这一步。另外,我们如何检查完整性,并在加载前在引导加载程序阶段验证映像?
] RSA 取消生成密钥(虚拟密钥)如何用于 GP 器件中的 SBL 和系统固件?
此密钥用于对 GP 器件上的引导加载程序 (SBL/SPL) 和 TIFS 证书进行签名。
此致
Diwakar
尊敬的 Diwakar:
今天我就这个主题进行了一些测试、并想分享观察到的行为。
测试 1:
SBL 更改:
系统固件更改:
观察到的结果:
系统引导成功并将应用程序映像加载到其他内核上。
测试 2:
SBL 更改:
与测试 1 中相同
系统固件更改:
观察到的结果:
系统未正确引导。 当 SBL 按预期加载并尝试加载系统固件时、SBL 报告等待系统固件确认的超时、指示系统固件验证期间出现故障。
摘要:
使用客户密钥进行的二进制哈希验证和证书签名适用于 SBL。但是、相同的方法不适用于系统固件。 在这种情况下、二进制的哈希验证和使用 RSA degenerate (dummy) 密钥进行签名似乎都是强制性的。
请您分享您对观察结果的想法。
此致、
Sarath
您好 Sarath、
我记得您使用的是 HS-Prime 器件、为什么我们在这里讨论了 GP 器件? 流程会根据器件类型而变化。
其中我们讨论了器件类型为黄金的参考线程。
e2e.ti.com/.../tda4vm-firewall-descriptions
此致
Diwakar
您好 Sarath、
快速实验结果:我在从 SBL 和 TIFS 中删除除 1.3.6.1.4.1.294.1.1 之外的所有扩展后进行了测试、并使用自定义密钥对两个映像签名。可能看到器件正在引导。
使用非 ROM 签名的 SBL 证书会取消生成密钥:
[ req ] distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no dirstring_type = nobmp [ req_distinguished_name ] C = US ST = SC L = Dallas O = "Texas Instruments. OU = PBU CN = Albert emailAddress = Albert@ti.com [ v3_ca ] basicConstraints = CA:true 1.3.6.1.4.1.294.1.1 = ASN1:SEQUENCE:boot_seq [ boot_seq ] certType = INTEGER:1 bootCore = INTEGER:16 bootCoreOpts = INTEGER:2 destAddr = FORMAT:HEX,OCT:41C00100 imageSize = INTEGER:307176
使用 ROM 取消生成密钥签名的 TIFS 证书。
[ req ] distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no dirstring_type = nobmp [ req_distinguished_name ] C = US ST = SC L = Dallas O = "Texas Instruments. OU = PBU CN = Albert emailAddress = Albert@ti.com [ v3_ca ] basicConstraints = CA:true 1.3.6.1.4.1.294.1.1 = ASN1:SEQUENCE:boot_seq [ boot_seq ] certType = INTEGER:2 bootCore = INTEGER:0 bootCoreOpts = INTEGER:0 destAddr = FORMAT:HEX,OCT:00040000 imageSize = INTEGER:262112
引导日志:

你是否在你的末端看到了同样的行为 这是 TDA4 类的第一个器件、因此我需要检查 ROM 在该时间点的行为情况。
此致
Diwakar
尊敬的 Diwakar:
当我通过从 SBL 和系统固件证书中删除除 1.3.6.1.4.1.294.1.1 之外的所有证书扩展进行测试、并使用自定义字节密钥对两者进行签名时、系统无法引导。 加载系统固件后、SBL 报告超时并等待确认。
使用同一 SBL、我为系统固件启用了证书扩展 1.3.6.1.4.1.294.1.1 和 1.3.6.1.4.1.294.1.2、并使用 ROM 退化密钥对其进行了签名。 完成此配置后、器件已成功引导。
此致、
Sarath
尊敬的 Diwakar:
感谢您的更新。
今天的进一步调试揭示了使用自定义密钥签名系统固件并仅包含 1.3.6.1.4.1.294.1.1 证书扩展时发生的问题。
导致该问题的原因是安全 ROM 向 SBL 发送系统固件上传请求确认所花费的时间超过预期值。
通过增加 SBL 中进行此确认的等待时间、可以解决该问题。
当使用自定义密钥对系统固件进行签名时、ROM 代码似乎需要更多的时间来发送确认。
随着 SBL 中等待确认的时间增加、系统现在可以正常启动、
使用自定义密钥对 SBL 和系统固件进行签名并使用仅包含 1.3.6.1.4.1.294.1.1 扩展的证书时。
您能否与您的内部 ROM 团队核实此行为并分享反馈?
下面、我总结一下结论、以避免任何误解。
请告诉我是否需要进行任何更正。
摘要:
即使在 GP 器件上、ROM 代码也需要针对 SBL 和系统固件使用 TI 定义的映像格式。 此格式始终需要在引导加载程序和系统固件二进制文件之前有 x509 证书。
x509 证书有以下重要用途:
如果使用自定义密钥(而不是 TI 提供的 ROM 生成信号密钥)对映像签名、则 ROM 代码会跳过完整性检查。 在 GP 器件上、没有电子保险丝或任何机制来针对任何类型的密钥进行身份验证、因此无需更改默认 eFuse 值。
此致、
Sarath
您好 Sarath、
很高兴听到这个问题得到解决。
[引述 userid=“699087“ url=“~/support/processors-group/processors/f/processors-forum/1659260/tda4vm-j721e-aadapt-secure-boot-on-the-gp-board-for-sbl-and-system-firmware/6405756您能否与您的内部 ROM 团队核实此行为并分享反馈?
[/报价]我们有这方面的计时号吗? 我将与 ROM 团队分享。
如果需要更正、请告知我。
[/报价]您的理解是正确的。
此致
Diwakar
尊敬的 Diwakar:
请在下面找到时序详细信息
我们有这方面的计时号吗? 我将与 ROM 团队分享。
当使用 TI RSA 取消生成(虚拟)密钥对系统固件进行签名、并使用包含扩展名 1.3.6.1.4.1.294.1.1 和 1.3.6.1.4.1.294.1.2 的证书时、SBL 在发送系统固件上传请求后的 5ms 内收到确认。
当使用自定义密钥对系统固件进行签名并使用仅包含 1.3.6.1.4.1.294.1.1 扩展的证书时、会在 20ms 内收到确认。
此致、
Sarath