インスピレーションと洞察から生成されました 5 ソースから

img6

img7

img8

img9

img10

img11

はじめに

  • セキュアブートの目的: ESP32のセキュアブートは、デバイス上で許可されたコードのみが実行されることを保証するための機能です。

  • セキュアブートのプロセス: セキュアブートは、ブートローダアプリケーションイメージの署名を検証することで、信頼の連鎖を確立します。

  • 鍵の使用: セキュアブートでは、AES 256ビットのセキュアブートキーとECDSA 256ビットの署名鍵が使用されます。

  • eFuseの役割: eFuseは、セキュアブートキーを保存し、セキュアブートを恒久的に有効にするために使用されます。

  • セキュアブートの種類: ESP32のセキュアブートには、One-Time FlashReflashable、Signed App Verification Without Hardware Secure Bootの3つの方式があります。

セキュアブートの目的 [1]

  • 目的: セキュアブートは、デバイス上で許可されたコードのみが実行されることを保証します。

  • セキュリティ: 不正なコードの実行を防ぎ、デバイスのセキュリティを強化します。

  • 信頼の確立: ブートプロセス全体を通じて信頼の連鎖を確立します。

  • データ保護: フラッシュメモリの内容を保護し、データの改ざんを防ぎます。

  • システムの安定性: セキュアブートにより、システムの安定性と信頼性を向上させます。

セキュアブートのプロセス [1]

  • プロセス概要: セキュアブートは、ブートローダとアプリケーションイメージの署名を検証します。

  • 初回ブート: 初回ブート時にセキュアブートが有効化され、eFuseに鍵が書き込まれます。

  • 継続的な検証: 以降のブート時には、ハードウェアがブートローダの変更を検証します。

  • 署名の確認: ソフトウェアブートローダは、署名されたパーティションテーブルとアプリイメージを確認します。

  • ハードウェアサポート: セキュアブートの検証は、ハードウェアによって行われます。

img6

鍵の使用 [1]

  • セキュアブートキー: AES 256ビットの鍵がeFuseに保存されます。

  • 署名鍵: ECDSA 256ビットの公開鍵/秘密鍵ペアが使用されます。

  • 鍵の生成: セキュアブートキーはハードウェア乱数発生器から生成されます。

  • 鍵の保護: eFuseに保存された鍵は読み取り/書き込み保護されます。

  • 公開鍵の配布: 公開鍵は自由に配布可能で、秘密にする必要はありません。

eFuseの役割 [1]

  • eFuseの機能: eFuseは、セキュアブートキーを保存し、セキュアブートを恒久的に有効にします。

  • ABS_DONE_0ビット: このビットを焼きこむことで、セキュアブートが恒久的に有効になります。

  • データ保護: eFuseに保存されたデータは、ソフトウェアからのアクセスが制限されます。

  • ハードウェアサポート: eFuseは、ハードウェアによって管理され、セキュアブートの一部として機能します。

  • セキュリティ強化: eFuseにより、デバイスのセキュリティが強化されます。

img6

img7

セキュアブートの種類 [2]

  • One-Time Flash: 一度書き込んだブートローダは変更できない方式。

  • Reflashable: ブートローダを後で変更できる方式。

  • Signed App Verification Without Hardware Secure Boot: アプリイメージの署名検証のみを行う方式。

  • 選択肢: 各方式は、異なるセキュリティニーズに応じて選択されます。

  • 本番環境: One-Time Flashが本番環境で推奨される方式です。

関連動画

<br><br>