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.

[参考译文] LAUNCCC3220MODASF:有关可信根证书目录和映像签名的问题

Guru**** 2589280 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1089346/launchcc3220modasf-questions-regarding-trusted-root-certificate-catalog-and-image-signing

部件号:LAUNCCC3220MODASF
主题中讨论的其他部分:UNIFLAASH

您好,

我对可信根证书目录有一些疑问。

  1. 是否可以为随运动场目录一起发运至具有默认目录的图像的设备执行OTA? 我假定MCU文件已使用已发送映像的虚拟证书进行了签名。 新映像将使用受信任映像进行签名。
  2. 是否可以通过OTA更新OTP部分?
  3. 在uniflash中对MCU-Image进行签名需要哪种类型的证书?  代码签名或其他内容?
  4. 签署OTA内容需要哪种类型的证书? 代码签名或其他内容?
  5. 是否可以确保我们连接到的服务器的有效证书,且有效的运动场目录处于活动状态我们假设是,如果我们执行上述步骤?
    1. 我们知道 (SlNetSock_startSec(.)) 将抛出 SLNETERR_ESEC_UNKNOWN_ROOT_CA
    2. 但是,用于该连接的根CA可以由我们通过 createSecAttribs(..)提供,其中根CA将设置为文件系统上的证书
    3. 使用  SlNetSock_secAttribSet(secAttribs,SLNETSOCK_SEC_ATTRIB_DOMAIN_NAME,将检查域名
    4. 使用SlNetSock_startSec( U16_TempSfd, secAttribs, SLNETSOCK_SEC_START_SECURITY_SESSION_ONONY|SNETSOCK_SEC_BND_CONTOBIL_ONYONO );将隐式检查证书

对于5.我们已经验证了自签名证书链和自己的DNS名称的行为,其中用于签署服务器证书的CA的替换不同于cc3220所知道的CA,它将导致 SLNETERR_ESEC_ASN_NO_signer_E 此外,我们已验证更改证书中的域名,使其与我们连接的域不匹配将导致错误。

那么,5的可信根目录有什么好处?

此致,

阿诺德

此外:

指向3和4:请提供要使用的证书的正确要求。 与CA证书类似,在最佳情况下使用哪种算法,您可以通过openssl为两个样本生成序列提供。 谢谢你。

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

    1.可通过OTA更新目录(请注意,目录需要专用OTA映像-可以使用其他内容更新,因此更新需要2个步骤-更新目录,然后更新MCU映像)。

    2.否

    3. CodeSign (用于MCU映像和安全文件)

    4. CodeSign (请注意,MCU映像和安全文件可以使用与生产映像中相同的证书,但OTA映像本身由OTA文档或 https://www.ti.com/lit/swpu332第4章中定义的自签名证书签署。

    5.根CA必须由您(在 SecAttribs中)提供-由于目录没有完整的证书,只有它们的摘要(因此用户提供证书,并且由目录进行验证)。 您将能够使用unknown_root_CA连接到TLS (在TLS中,这只是一个警告),但您将无法使用 unknown_root_CA将文件安装到文件系统。  

    该目录添加了另一层验证,防止在没有有效证书的情况下在设备上安装任何内容。 它为TLS提供了相同的保护,但由于一些有问题的使用案例,我们允许用户在打开安全连接时忽略这一点(在这种情况下,您只能使用验证方法)。  

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

    您好Kobi:

    感谢您的回答。

    关于这些要点的详细信息:

    对于1.我假定我创建的OTA仅包含活动的受信任根证书目录,但如何操作?

    第一步:这是否意味着我将创建一个OTA,其中受信任根目录处于活动状态,并在其中获取所有需要的证书,然后由DigiCert等官方CA签名,但将此软件包中的图像文件由dumid-root-ca-cert签名? 不管怎样,我的OTA始终会由自行 签署的证书签署

    第二步:创建一个新的OTA,其中的新映像现在由证书,密钥签名,该证书和密钥由官方CA签名,如DigiCert? 就是这样吗?

    在我这样做之后,我如何确保事情发生正确?

    也许我对这一点有点困惑,因为uniflash不再接受刻录由dumdum-root-ca-cert签名的图像 但我认为这与这个题目无关。

    用于3. 在哪里可以找到创建私钥和生成CSR以供官方CA (如DigiCert)签名所需的openssl命令?

    用于4. 因此,对于签署OTA映像,我将始终使用自签名证书权限? 为此,我将使用 https://www.ti.com/lit/swpu332中的openssl命令

    生成私钥:

    > openssl ecparam -name prime256v1 -genkey -out ota_vendor_key.pem

    创建公共证书:

    openssl req -new -x509 -key ota_vendor_key.pem -out ota_vendor_cert.pem - Days 730 ->将有效天数替换 为适合我的日期。

    用于5. "您将能够使用unknown_root_CA连接到TLS (在TLS中,这只是一个警告),但您将无法使用 unknown_root_CA将文件安装到文件系统。" 我不明白你的意思吗? 如果可信根目录处于活动状态,则会出现这种情况? 或者安装文件的含义是什么? 下载?

    "目录添加了另一层验证,防止在没有有效证书的情况下在设备上安装任何内容..."  您能不能再多指出一下安装的含义?

    非常感谢。

    巴西,

    阿诺德

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

    对于1.您需要根据">www.ti.com/.../swru547"中的说明创建目录。 然后签署(根据文档使用您的证书)并使用Unifalsh生成仅包含目录及其签名的OTA映像。   

    使用此内容执行OTA更新后,应使用新目录。 现在,您可以使用包含由新目录中的证书签名的文件的映像执行另一个OTA序列。

    由您来确保加载新内容(例如,您可以打印新版本ID)。

    对于3 -只需在Google上搜索或在openssl docs中搜索。 您在我们的文档中有一些参考资料,例如证书处理指南(以前曾提及)?

    对于4个人来说——似乎还可以

    对于5-当您尝试将MCU映像或任何其他安全文件写入文件系统时,您需要为其提供签名和证书以进行验证(在我们的示例和指南中,我们将 使用Playground虚拟证书演示这一点)。 在这种情况下,必须根据目录验证证书,否则将不会写入文件。 您不能避免目录检查和/或忽略 警告(在TLS协商过程中可能使用身份验证)。   

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

    您好Kobi,

    对于1)我将遵循:

    通过这种方式,可以通过受信任的根证书目录权限来替换certificatePlayground吗?

    对于3)按照此部分的建议:

    可以选择正确的代码签名签名。

    对于所有其他主题,感谢您提供信息。

    巴西,

    阿诺德

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

    对于1:是,您应该能够使用这些说明替换目录。 请注意,(有效的)根CA文件也必须位于FS上(目录仅包含根证书的摘要)。

    3:如果有问题-我不理解。