• 検索結果がありません。

F7F8FDE08674A28DC6ED8E37;

ドキュメント内 Bootgen ユーザー ガイド (ページ 125-128)

Linux のブート

IV 0 F7F8FDE08674A28DC6ED8E37;

Key Opt 229C993D1310DD27B6713749B6D07FCF8D3DCA01EC9C64778CBAF457D613508F;

2. 操作キーをデバイス キーとして使用し、暗号化されたブートローダーと残りのパーティションをまとめて完全な イメージを作成します。

bootgen -arch zynqmp -image stage2a.bif -o final.bin -w on -log error stage2.bifの例:

stage2:

{ [bootimage]fsbl_e.bin [

destination_cpu=a53-0, encryption=aes,

aeskeyfile=aes-opt.nky ] hello.elf

[

destination_cpu=a53-1, encryption=aes,

aeskeyfile=aes-opt1.nky ] hello1.elf

}

stage2 の aes-opt.nky の例:

Device xc7z020clg484;

Key 0 229C993D1310DD27B6713749B6D07FCF8D3DCA01EC9C64778CBAF457D613508F;

IV 0 F7F8FDE08674A28DC6ED8E37;

方法 2

まず、チーム A が opt_key オプションを使用してデバイス キーでブートローダーを暗号化し、それをチーム B に渡 します。チーム B は、操作キーをデバイス キーとして使用し、パーティションごとに個別に暗号化されたイメージを 作成します。最後に、チーム B は Bootgen を使用して、暗号化されたパーティションすべてと 暗号化されたブートロ ーダーをまとめて完全なイメージを作成します。

stage1.bif の例:

stage1:

{ [fsbl_config] opt_key

[keysrc_encryption] bbram_red_key [

bootloader,

destination_cpu=a53-0,

encryption=aes,aeskeyfile=aes.nky ] fsbl.elf

}

stage1 の aes.nky の例:

Device xc7z020clg484;

Key 0 AD00C023E238AC9039EA984D49AA8C819456A98C124AE890ACEF002100128932;

IV 0 F7F8FDE08674A28DC6ED8E37;

Key Opt 229C993D1310DD27B6713749B6D07FCF8D3DCA01EC9C64778CBAF457D613508F 2. 操作キーをデバイス キーとして使用し、残りのパーティションを暗号化します。

bootgen -arch zynqmp -image stage2a.bif -o hello_e.bin -w on -log error stage2a.bif の例:

stage2a:

{ [

destination_cpu=a53-0, encryption=aes,

aeskeyfile=aes-opt.nky ] hello.elf

}bootgen -arch zynqmp -image stage2b.bif -o hello1_e.bin -w on -log error

stage2b.bifの例: stage2b:

{ [aeskeyfile] aes-opt.nky [

destination_cpu=a53-1, encryption=aes,

aeskeyfile=aes-opt.nky ] hello1.elf

}

stage2a および stage2b の aes-opt.nky の例:

Device xc7z020clg484;

Key 0 229C993D1310DD27B6713749B6D07FCF8D3DCA01EC9C64778CBAF457D613508F;

IV 0 F7F8FDE08674A28DC6ED8E37;

{ [bootimage]fsbl_e.bin [bootimage]hello_e.bin [bootimage]hello1_e.bin }

注記: aes.nky の opt_key は aes-opt.nky のキー 0 と同じで、IV 0 は両方の nky ファイルで同じである必要が あります。

シングル パーティション イメージ

この機能は、Bootgen の U-Boot プロンプトで作成されたシングル パーティション (ビットストリームなしの) イメー ジの認証および暗号化の両方またはいずれかをサポートします。

注記: 複数パーティションを含むイメージはサポートしません。

セキュア イメージを読み込む U-Boot コマンド

zynqmp secure <srcaddr> <len> [key_addr]

このコマンドは、アドレス $src で $len bytes\ long のセキュア イメージを検証します。暗号化にキーを使用する必要 がある場合は、オプションで key_addr を指定できます。

認証のみのユース ケース

U-Boot で認証のみを使用する場合は、次の例に示すように bif を使用して認証イメージを作成します。

1. U-Boot で認証されるシングル パーティション イメージを作成します。

注記: elf ファイルを指定する場合は、複数のロード可能なセクションが含まれていないことを確認してくださ い。elf ファイルに複数のロード可能なセクションが含まれる場合は、入力を .bin 形式に変換して、その .bin を bif で入力として指定します。次に、bif の例を示します。

the_ROM_image:

{ [pskfile]rsa4096_private1.pem [sskfile]rsa4096_private2.pem

[auth_params] ppk_select=1;spk_id=0x1 [authentication = rsa]Data.bin

}

2. イメージが生成されたら、その認証イメージを DDR にダウンロードします。

3. 次の例のように、U-Boot コマンドを実行してセキュア イメージを認証します。

ZynqMP> zynqmp secure 100000 2d000 Verified image at 0x102800

4. 問題なく認証されると、U-Boot から実際のパーティションの開始アドレスが返されます。エラーがあった場合 は、エラー コードが表示されます。RSA_EN eFUSE をプログラムする場合、イメージ認証は必須です。eFUSE RSA がイネーブルの場合、ブート ヘッダーの認証はサポートされません。

KUP キーの暗号化のみがサポートされます。

認証フロー

次の例は、FSBL およびアプリケーションに対して認証を有効にし、PPK ハッシュ値の検証をスキップしたブート ヘ ッダー認証を有効にしてブートイメージを作成する方法を示しています。

the_ROM_image:

{ [fsbl_config] bh_auth_enable

[auth_params] ppk_select=0; spk_id=0x00000000 [pskfile] PSK.pem

[sskfile] SSK.pem [

bootloader,

authentication=rsa, destination_cpu=a53-0 ] ZynqMP_Fsbl.elf

[destination_cpu=a53-0, encryption=aes] App_A53_0.elf }

ドキュメント内 Bootgen ユーザー ガイド (ページ 125-128)