专家们好
客户是世纪系统(网址如下),该公司的主要产品是VPN路由器、物联网网关和移动路由器。
他们指的是4.9 导入外部对象" of AN13483,其中有一条关于使用 ImportExternalObject APDU 的警告:"请勿在未与 NXP 联系的情况下使用该 APDU,以避免潜在问题。"
以下是他们的使用案例和要求:
1。要使用的安全元件
这是 SE050E2HQ1/Z01Z3Z。
2.用例
(1) 安全固件更新。
(2) 具体而言,为了简化批量生产操作,我们希望在外部(在安全的环境中)生成产品组通用的主私钥,并在制造过程中将其安全地导入(配置)到每个目标板上的 SE050E2。
(3) 在目标板上,SE050E2 使用这个导入的主私钥来解密固件加密 AES 密钥,该密钥是用主公钥加密的。解密后的 AES 密钥会返回主机 CPU,然后由主机 CPU 对固件本身进行解密。
(4)通过这种方法,我们希望避免管理设备专用的公钥数据库。
*关于我们调查现状的注意事项:虽然我们目前主要考虑 " 共享主私钥方法," 我们也在考虑一种内部为每台设备生成密钥对并管理公钥的方法。尽管我们认识到运营挑战,但从网络安全和认证的角度来看,我们并没有完全排除这种挑战(JC-STAR等)。我们将继续同时考虑这一方法。
这次调查的主要目的是清楚地了解 SE050E2 在现阶段技术上可行和不可行的选项和限制因素。我们还没有确定"共享主私钥的方法。"因此,这不是一个紧急事项。
3.要导入的对象类型(共享密钥方法)
(1) 我们想使用EC密钥对(椭圆曲线加密密钥对)作为上述用例的主私钥。(由于 RSA 密钥对体积较大,我们将选择 ECC)。
(2) 我们正在考虑通过安全通道(如 SCP03)导入该 EC 密钥对(私人密钥部分)。
[补充信息]
开发阶段:我们目前正处于技术开发阶段,以确定是否可以使用 SE050E2 实现上述安全固件更新方法。实际开发工作定于明年或更晚些时候进行。
先决条件:在开发和批量生产期间,必须使用我们产品的启动加载程序 U-Boot 进行初始固件写入。因此,采用 SE050E2 的先决条件是 SE050E2 可以在 U-启动 环境中使用(至少,必须有支持密钥导入和解密等必要功能的驱动程序和移植信息可用)。
在这种使用情况下,使用 ImportExternalObject APDU 是否存在任何潜在问题?
预先感谢您的意见!
顺祝商祺!
坎
你好,Kan、
ImportExternalObject APDU 专用于导入使用基于 EC 密钥的身份验证上下文安全封装的对象。此机制适用于特定设备的配置,其中每台设备都有自己唯一的 EC 密钥对。
由于您的方法涉及将相同的主密钥导入多个设备,因此此APDU不适合。
如果你想使用这个 APDU,需要为每台设备构造这个 ImportExternalObject APDU,因为每个设备都有不同的 ec 密钥。
还有几点:
1. edgelock2go.com 可用于为您的设备配置主密钥。你可以在 edgelock2go 创建设备组,在设备组中添加多个设备(及其uuid),这个 aes 主密钥可以分配给设备组,从而分配给设备组中的所有设备。然后,EdgeLock2Go 可以为您或设备特定的导入/外部对象 APDU 生成配置脚本。你也可以在 edgelock2go 中追踪设备
您可以查看 edgelock2go.com 和这两份文件:AN12691(EdgeLock2 GO)和 AN13255(EdgeLock 2GO 快速入门指南)。
2。我们以前的一些客户在 u-boot 环境中使用了安全元件,并使用了专为内存受限设备设计的 nano 软件包:GitHub-nxplugnTRUST/nano-p ackage
它具有基本功能,例如:带有 NIST P256、NIST P384、AES 加密/解密(ECB、密码块链接(CBC)、CTR)等的 ECDSA 和 ECDH(查看链接了解更多)