我这边在对接 openUBMC 的 EEPROM 签名流程,计划引入 SignServer 的 PlainSigner 做服务端签名。目前本地local ECC+signserver 整包rsa签名适配实机验证已通过,但是本地local ECC签名肯定也要改成signserver ECC签名。
当前有几个证书和签名参数上的问题,想请教一下社区里有经验的大佬。
当前背景:
-
现有 Root CA 是 RSA 类型。
-
现在希望在 EEPROM 签名场景里使用 ECC / ECDSA 签名。
-
计划是由 SignServer 侧持有 ECC 私钥,客户端只上传待签名的 EEPROM 原始数据,服务端返回 raw signature。
-
openUBMC csr bin文件签名 这边最终使用的是 EEPROM 的 ECC 签名链路,不是 CMS 签名链路。
我目前最关心的问题是:
是否可以在 现有 RSA Root CA 不变 的前提下,签发一张 ECC 终端证书 / signer certificate,供 SignServer PlainSigner 使用?
也就是说,是否可以采用这样的模式:
-
Root CA:RSA
-
Signer 证书:ECC
-
实际业务签名算法:SHA256withECDSA
如果可以,想进一步确认一下,这张 ECC signer certificate 的模板参数一般应该怎么配?
主要想确认以下几点:
-
Key Algorithm 是否直接选 ECDSA / EC 即可?
-
曲线参数一般是否使用 prime256v1 / P-256?
-
Certificate Profile / End Entity Profile 应该选哪类用途更合适?
-
Code Signing
-
End Entity
-
还是其他自定义用途
-
-
Key Usage 一般需要勾哪些?
-
Digital Signature
-
其他是否还需要
-
-
Extended Key Usage 是否需要配置成:
-
Code Signing
-
或者其实 EEPROM 这种 raw 签名场景不强依赖 EKU
-
-
SignServer 7.0 的 PlainSigner 场景下,是否必须安装 signer certificate,还是只要有 ECC 私钥即可?
-
如果设备侧最终只关心公钥验签,而不走完整证书链校验,
那么这张 signer certificate 在 openUBMC / SignServer 这条链路里主要是为了让 worker 正常 ACTIVE,还是设备侧也会实际使用到?
我现在的理解是:
-
openUBMC 业务签名不应直接使用 Root CA 私钥;
-
应该使用一张由 Root CA 签发的 signer certificate 对应的私钥来签名;
-
对 EEPROM ECC 场景来说,真正关键的是 ECC 私钥 和设备侧信任的公钥是否匹配。
但我不确定在实际配置时,证书模板到底应该按“代码签名证书”去配,还是只要满足 ECC + Digital Signature 即可。
烦请大佬帮忙确认一下:
RSA Root CA 给 ECC signer certificate 签发是否可行,以及证书模板具体建议怎么配置。
感谢