Bootgen では、Versal アダプティブ SoC の認証に RSA-4096 および ECDSA P384 と P521 がサポートされます。すべてのパーティション/ヘッダーのハッシュを計算するには、NIST SHA-3 が使用されます。ハッシュで計算される署名は、PDI に含まれます。
注記:
Zynq デバイスおよび Zynq UltraScale+ MPSoC の場合と異なり、Versal アダプティブ SoC では認証証明がパーティションよりも前に含まれます。ECDSA P521 曲線は、ブートローダー パーティション (PLM) ではサポートされていません。bootROM では、RSA-4096 または ECDSA-P384 認証のみがサポートされます。その他のパーティションの認証には、P521 を使用できます。
メタ ヘッダー認証
Versal アダプティブ SoC では、BIF 属性 metaheader のパラメーターに基づいて、Bootgen でメタ ヘッダーが認証されます。次は、その使用例です。
metaheader
{
authentication = rsa,
pskfile = psk.pem,
sskfile = ssk.pem
}
eFUSE 用の PPK ハッシュ
Bootgen は、PPK が信頼されることを確実にすることを目的とした、eFUSE に格納するための PPK ハッシュを生成します。次に示す手順は、eFUSE モードの認証でのみ実行する必要があり、ブート ヘッダー認証ではスキップできます。efuseppksha.txt からの値は、eFUSE にプログラムして eFUSE モードの認証に使用できます。
BIF ファイルの例
BIF ファイルの例 (generate_hash_ppk.bif) を次に示します。
generate_hash_ppk:
{
pskfile = primary0.pem
sskfile = secondary0.pem
image
{
name = pmc_ss, id = 0x1c000001
{ type=bootloader, authentication=rsa, file=plm.elf}
{ type=pmcdata, load=0xf2000000, file=pmc_cdo.bin}
}
}
コマンド
eFUSE プログラミング用の PPK ハッシュを生成するコマンドは次のとおりです。
bootgen –image generate_hash_ppk.bif –arch versal –w –o test.bin –efuseppkbits efuseppksha.txt
Versal アダプティブ SoC の累積セキュア ブート
ブート タイプ | 動作 | ハードウェア暗号化エンジン | ||
---|---|---|---|---|
認証 | 復号化 | 完全性 (チェックサム検証) | ||
非セキュア ブート | なし | なし | なし | なし |
非対称のハードウェアによる信頼のルート (A-HWRoT) | はい (必須) | なし | なし | RSA/ECDSA と SHA3 |
対称のハードウェアによる信頼のルート (S-HWRoT) (PDI の復号化には強制的に eFUSE ブラック キーを使用) | なし | あり (PLM とメタ ヘッダーは eFUSE KEK で暗号化する必要あり) | なし | AES-GCM |
A-HWRoT + S-HWRoT | はい (必須) | はい (必須) | なし | RSA/ECDSA と SHA3 および AES-GCM |
PDI の認証と復号化 | あり | Yes (キー ソースは BBRAM または eFUSE) | なし | RSA/ECDSA と SHA3 および AES-GCM |
復号化 (ユーザーが選択したキーを使用。キー ソースは、BBRAM/BHDR または eFUSE など任意のものを使用可能) | なし | あり | なし | AES-GCM |
チェックサム検査 | なし | なし | Yes | SHA3 |