RSA キー取り消しサポートの改善
RSA キーは、すべてのパーティションのセカンダリ キーを取り消すことなく、1 つのパーティションのセカンダリ キーを取り消すことができます。
注記: プライマリ キーは、すべてのパーティションで同じものである必要があります。
これには、USER_FUSE0
~ USER_FUSE7
の eFUSE と、BIF パラメーターの spk_select を使用します。
注記: すべてのキーを使用する必要がない場合は、最大で 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
eFUSE のフィールド全体を SPK ID と照合してビットが一致することを確認します。ユーザー eFUSE は、どのキー ID が有効でない (取り消された) かを指定します。したがって、ファームウェア (ROM 以外) は、SPK ID を表すそのユーザー eFUSE がプログラムされているかどうかをチェックします。
注記: 上記の例では、FSBL と application2 が同じ spk_id を使用していますが、この 2 つのキーは、1 つは SPK_ID eFUSE に対して、もう 1 つは User eFUSE に対してチェックされるため、別々に無効にできます。