增型 RSA 密钥撤销支持
RSA 密钥支持在不撤销所有分区的辅助密钥的前提下撤销某一分区的辅助密钥。
注释: 所有分区的主密钥都应相同。
这是使用含 BIF 参数 spk_select 的 USER_FUSE0
到 USER_FUSE7
eFUSE 实现的。
注释: 最多可撤销 256 个密钥(全部无需使用)。
以下 BIF 文件样本显示了增强型用户 eFUSE 撤销。镜像头文件与 FSBL 通过以下 BIF 输入来使用不同 SSK 来进行身份验证(分别使用 ssk1.pem 和 ssk2.pem)。
the_ROM_image:
{
[auth_params]ppk_select = 0
[pskfile]psk.pem
[sskfile]ssk1.pem
[
bootloader,
authentication = rsa,
spk_select = spk-efuse,
spk_id = 0x8,
sskfile = ssk2.pem
] zynqmp_fsbl.elf
[
destination_cpu = a53-0,
authentication = rsa,
spk_select = user-efuse,
spk_id = 0x100,
sskfile = ssk3.pem
] application.elf
[
destination_cpu = a53-0,
authentication = rsa,
spk_select = user-efuse,
spk_id = 0x8,
sskfile = ssk4.pem
] application2.elf
}
-
spk_select = spk-efuse
指示针对该分区使用spk_id
eFUSE。 -
spk_select = user-efuse
指示针对该分区使用用户 eFUSE。
由 CSU ROM 加载的分区始终使用 spk_efuse
。
注释:
spk_id
eFUSE 可指定有效的密钥。因此,ROM 会根据 SPK ID 检查 spk_id
eFUSE 的整个字段,以确保其位对位匹配。用户 eFUSE 可指定无效(已撤销)的密钥 ID。因此,固件(非 ROM)会检查表示 SPK ID 的给定用户 eFUSE 是否已编程。
注释: 在以上示例中,FSBL 与 application2 使用相同的 spk_id。但这两个密钥可分别调用,因为其中之一是基于 SPK_ID eFUSE 来进行检查的,另一个则是基于 User eFUSE 来进行检查的。