签名的映像提供了一种机制来验证映像本身的完整性和真实性。该过程类似于使用非对称加密的任何数字签名中使用的过程。

下面几节将解释固件映像的签名和身份验证过程。一些概念被简化了;看到密码学术语术语表有关加密概念和安全引导过程的更详细信息和参考。

公钥基础设施树(PKI树)

为了对映像签名,您需要一个公钥基础设施(PKI)树。这是一组证书和私钥,Digi Embedded Yocto使用这些证书和私钥对固件映像签名。如果需要,Digi Embedded Yocto会自动生成具有4096位密钥长度的安全PKI树。

作为替代方案,您可以使用自己的CA证书手动创建PKI树,并将公司信息添加到生成的证书中。这不是必需的,因为证书仅用于内部身份验证。看到手动创建PKI树有关使用您自己的证书的更多信息。

PKI树包含多个RSA公钥和私钥,其中包括SRK (Super Root keys)。每个PKI树有四个SRK证书,但是在安全引导过程中只使用一个(默认情况下是第一个)。其余的只有在密钥被泄露并且需要撤销它时才会使用。看到撤销密钥获取详细信息。

在制造过程中,在设备eFuses中编程了公共SRK密钥的哈希值。这在图像身份验证过程中起着重要的作用。

测试textst

图像签名

使用PKI树,Digi Embedded Yocto通过使用私钥对图像进行加密来生成图像的签名。请注意,只有私钥的所有者才能生成签名,并且通过使用私有密码来保护密钥。然后使用公钥(验证的主要元素)和有关签名者的一些信息创建证书。然后将签名和证书连接到固件映像中,形成最终的签名映像。这个过程的概述如下:

测试textst

图像验证

民政事务局采用以下程序核实图像的完整性和真实性:

  • HAB通过将公钥的哈希值与eFuses中存储的值进行比较来验证公钥。如果它们不匹配,引导将被中止。否则,引导顺序继续。

测试textst
  • 现在已经建立了对公钥的信任,将使用公钥解密证书上的哈希,并将其与从图像数据计算出的哈希进行比较。如果匹配,则启动设备。如果它们不匹配,引导将被中止。

测试textst