安全启动
安全启动的基本原理是,在重置设备时,安全启动代码会执行并验证应用固件是否真实可靠,然后再决定是否启动。安全启动取决于两个参数。首先,安全启动代码是重置时执行的唯一代码。其次,启动代码不可改变,这意味着无法以任何方式对其进行修改。启动代码地址是唯一的,从而可防止在设备重置时访问其它固件地址。这两个方面共同为设备建立了信任根,参见图5。
图5:安全启动功能的基本原理。(来源:意法半导体)
通过类似签名对比,可进行应用固件完整性和真实性验证。完整性检查需要将应用代码生成的哈希值(有时称为摘要)与提供的参考基准进行比较。真实性验证需要检查根据生成的哈希值和专有密钥得到的签名,然后使用关联的公钥验证签名。参考哈希值和签名值始终需要固件提供,这些通常存储在称为元数据(metadata)或标报头(header)的容器中,参见图6。由于生成方法的原因,元数据不需要加密。如果试图采用恶意固件,则无法使固件哈希值与参考值匹配。图6说明了使用哈希值固件摘要和私钥的元数据签名结构。
图6:生成元数据签名。(来源:意法半导体)
在图7中,安全启动代码使用元数据签名来确认应用固件的完整性和真实性状态。如果签名核对过程验证了有效固件,则启动过程将继续,并加载应用代码,与应用固件或签名出现差异会导致启动过程失败。
图7:在加载应用之前,使用元数据签名验证应用固件。(来源:意法半导体)
安全启动
安全启动的基本原理是,在重置设备时,安全启动代码会执行并验证应用固件是否真实可靠,然后再决定是否启动。安全启动取决于两个参数。首先,安全启动代码是重置时执行的唯一代码。其次,启动代码不可改变,这意味着无法以任何方式对其进行修改。启动代码地址是唯一的,从而可防止在设备重置时访问其它固件地址。这两个方面共同为设备建立了信任根,参见图5。
图5:安全启动功能的基本原理。(来源:意法半导体)
通过类似签名对比,可进行应用固件完整性和真实性验证。完整性检查需要将应用代码生成的哈希值(有时称为摘要)与提供的参考基准进行比较。真实性验证需要检查根据生成的哈希值和专有密钥得到的签名,然后使用关联的公钥验证签名。参考哈希值和签名值始终需要固件提供,这些通常存储在称为元数据(metadata)或标报头(header)的容器中,参见图6。由于生成方法的原因,元数据不需要加密。如果试图采用恶意固件,则无法使固件哈希值与参考值匹配。图6说明了使用哈希值固件摘要和私钥的元数据签名结构。
图6:生成元数据签名。(来源:意法半导体)
在图7中,安全启动代码使用元数据签名来确认应用固件的完整性和真实性状态。如果签名核对过程验证了有效固件,则启动过程将继续,并加载应用代码,与应用固件或签名出现差异会导致启动过程失败。
图7:在加载应用之前,使用元数据签名验证应用固件。(来源:意法半导体)
举报