セキュア・ブートをサポートするデバイスを準備するには、以下のプロビジョニング手順が必要です。
- ブート・イメージ・マネージャ・ファームウェアは、MAIN フラッシュ・メモリに構成およびプログラムする必要があります。リセット・ベクトルは 0x0000.0004 で、ブート・イメージ・マネージャの開始を指しています。
- ブート・イメージ・マネージャが必要とするすべての認証キー・マテリアルは、ブート・イメージ・マネージャに隣接する MAIN フラッシュ・メモリにプログラムする必要があります。
- デバイスの NONMAIN 構成メモリは、次のようにプログラムする必要があります。
- ブート・イメージ・マネージャ・ファームウェアと認証キー・マテリアルを含む MAIN フラッシュ・セクタは、変更を防止するため静的書き込み保護として構成する必要があります。
- NONMAIN フラッシュ・セクタは、変更を防止するため静的書き込み保護として構成する必要があります。
- 一括消去および工場出荷時リセット・コマンドは、パスワード保護またはディセーブルすることを推奨します。上記の構成設定で工場出荷時リセットをディセーブルすると、NONMAIN 構成がブート・イメージ・マネージャおよび認証キーを含むセクタと共に永続的にロックされます。
- MAIN フラッシュ・メモリの整合性チェックはイネーブルにし、アドレス範囲をブート・イメージ・マネージャと認証キーを含めるように設定することを推奨します。
プロビジョニングが完了し、署名済みファームウェアがデバイスにプログラムされると、デバイスの電源投入からのセキュア・ブート・フローは次のようになります。
- 電源投入時、デバイスは最大のセキュア状態になります。BCR がデバイス構成メモリの整合性をチェックし、デバイス構成が有効な場合はそれに応じてユーザー指定のポリシーをロードします。
- BCR が BIM と認証キー・マテリアルを含む MAIN フラッシュ・メモリに対応する CRC 値を計算します。CRC チェックに成功すると、BCR は最初のユーザー・コード (ブート・イメージ・マネージャ) に実行を移行します。
- ブート・イメージ・マネージャが、残りのアプリケーション・コードのダイジェストを計算します。
- 非対称認証の場合、アプリケーション・コードのセキュア・ハッシュ (SHA2-256) ダイジェストはソフトウェアで計算されます。
- 対称型認証の場合、アプリケーション・コードに対応する CMAC メッセージ認証コードは、認証キーを使用して計算されます。
- ブート・イメージ・マネージャが、供給された署名に対してダイジェストを検証します。
- 非対称認証の場合、楕円曲線デジタル署名アルゴリズム (ECDSA) を使用してソフトウェアでデジタル署名が復号化され、その結果が計算されたハッシュと比較されます。
- 対称型認証の場合、計算された CMAC がデジタル署名の CMAC と比較されます。
- アプリケーション・コード・ダイジェストが署名と一致すると、アプリケーション・コードが開始します。一致しない場合は、ユーザー指定のエラー・ハンドラが呼び出されます。