HSM モードを使用したブート イメージの作成: PSK の共有なし - 2023.2 日本語

Bootgen ユーザー ガイド (UG1283)

Document ID
UG1283
Release Date
2023-10-18
Version
2023.2 日本語

次の図に、HSM モードを使用するステージ 0 〜ステージ 2 のブート スタックを示します。SSK を配布することでステップ数が削減されています。

この図では、AMD Zynq™ UltraScale+™ MPSoC デバイスを使用して各ステージを説明しています。

図 1. 一般的な 3 ステージ ブート イメージ

ブート プロセス

HSM モードを使用したブート イメージの作成は、次の BIF ファイルを使用して標準フローでブート イメージを作成するのと似ています。

all:
{
	[auth_params] ppk_select=1;spk_id=0x8
	[keysrc_encryption]bbram_red_key
	[pskfile]primary.pem
	[sskfile]secondary.pem
	[
	 bootloader,
	 encryption=aes,
 	aeskeyfile=aes.nky,
	 authentication=rsa
	]fsbl.elf
	[destination_cpu=a53-0,authentication=rsa]hello_a53_0_64.elf
}

ステージ 0: HSM モードを使用してブート イメージを作成

信頼されている個人が、プライマリ秘密キーを使用して SPK 署名を作成します。SPK 署名は、認証証明ヘッダー、SPK、および SPK にあります。上記のためのハッシュを生成するには、次の BIF ファイルの抜粋を使用します。

stage 0:
{
	[auth_params] ppk_select=1;spk_id=0x3
	[spkfile]keys/secondary.pub
}

Bootgen コマンドは次のとおりです。

bootgen -arch zynqmp -image stage0.bif -generate_hashes

このコマンドの出力は secondary.pub.sha384 です。

ステージ 1: SPK 署名を配布

信頼されている個人が SPK 署名を開発チームに配布します。

openssl rsautl -raw -sign -inkey keys/primary0.pem -in secondary.pub.sha384 > secondary.pub.sha384.sig 

このコマンドの出力は secondary.pub.sha384.sig です。

ステージ 2: FSBL で AES を使用して暗号化

開発チームが Bootgen を使用して必要な数のブート イメージを作成します。開発チームは次を使用します。

  • 信頼されている個人からの SPK 署名。
  • SSK、SPK、および SPKID
Stage2:
{
	[keysrc_encryption]bbram_red_key 
	[auth_params] ppk_select=1;spk_id=0x3
	[ppkfile]keys/primary.pub
	[sskfile]keys/secondary0.pem
	[spksignature]secondary.pub.sha384.sig 
	[bootloader,destination_cpu=a53-0, encryption=aes, aeskeyfile=aes0.nky, authentication=rsa] fsbl.elf 
	[destination_cpu=a53-0, authentication=rsa] hello_a53_0_64.elf 
}
Bootgen コマンドは次のとおりです。
bootgen -arch zynqmp -image stage2.bif -o final.bin