JAJA733A January   2023  – December 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   概要
  3.   商標
  4. 1はじめに
    1. 1.1 主な概念
    2. 1.2 サイバー・セキュリティの目標
    3. 1.3 プラットフォームのセキュリティ イネーブラ
  5. 2デバイス セキュリティ モデル
    1. 2.1 デバイス ID
    2. 2.2 ブート時の初期条件
    3. 2.3 ブート構成ルーチン (BCR)
    4. 2.4 ブートストラップ・ローダ (BSL)
    5. 2.5 ブート フロー
    6. 2.6 ユーザー指定のセキュリティ ポリシー
      1. 2.6.1 ブート構成ルーチン (BCR) ポリシー
        1. 2.6.1.1 シリアル ワイヤ デバッグ関連のポリシー
          1. 2.6.1.1.1 SWD セキュリティ・レベル 0
          2. 2.6.1.1.2 SWD セキュリティ・レベル 1
          3. 2.6.1.1.3 SWD セキュリティ レベル 2
        2. 2.6.1.2 ブートストラップ ローダ (BSL) のイネーブル / ディセーブル ポリシー
        3. 2.6.1.3 フラッシュ・メモリの保護と整合性ポリシー
          1. 2.6.1.3.1 アプリケーション (MAIN) フラッシュ メモリのロック
          2. 2.6.1.3.2 構成 (NONMAIN) フラッシュ メモリのロック
          3. 2.6.1.3.3 アプリケーション (MAIN) フラッシュ メモリの整合性の検証
        4. 2.6.1.4 ブートストラップ・ローダ (BSL) のセキュリティ・ポリシー
          1. 2.6.1.4.1 BSL アクセス・パスワード
          2. 2.6.1.4.2 BSL 読み出しポリシー
          3. 2.6.1.4.3 BSL セキュリティ・アラート・ポリシー
      2. 2.6.2 カスタマ セキュア コード (CSC) セキュリティ ポリシー
        1. 2.6.2.1 CSC によるバンク スワップ強制
        2. 2.6.2.2 CSC が適用したファイアウォール
        3. 2.6.2.3 KEYSTORE への CSC キー書き込み
      3. 2.6.3 構成データのエラー耐性
        1. 2.6.3.1 CRC で保護された構成データ
        2. 2.6.3.2 クリティカル・フィールドの 16 ビット・パターン一致
  6. 3セキュア ブート
    1. 3.1 セキュア処理環境の分離
    2. 3.2 カスタマ セキュア コード (CSC)
      1. 3.2.1 セキュア ブートのフロー
      2. 3.2.2 フラッシュ メモリ マップ
      3. 3.2.3 特長
        1. 3.2.3.1 CMAC アクセラレーション
        2. 3.2.3.2 非対称検証
        3. 3.2.3.3 KEYSTORE とファイアウォール
        4. 3.2.3.4 CSC 性能
      4. 3.2.4 クイック スタート ガイド
        1. 3.2.4.1 環境設定
        2. 3.2.4.2 ステップ バイ ステップ ガイダンス
        3. 3.2.4.3 CSC NONMAIN の設定
        4. 3.2.4.4 CSC の例で変更をカスタマイズ
    3. 3.3 ブート イメージ マネージャ (BIM)
      1. 3.3.1 セキュア ブートのフロー
      2. 3.3.2 フラッシュ メモリ マップ
      3. 3.3.3 クイック スタート ガイド
  7. 4セキュア ストレージ
    1. 4.1 フラッシュ書き込み保護
    2. 4.2 フラッシュ読み取り実行保護
    3. 4.3 フラッシュ IP 保護
    4. 4.4 データ バンクの保護
    5. 4.5 セキュアなキー ストレージ
    6. 4.6 SRAM 保護
    7. 4.7 ハードウェア単調カウンタ
  8. 5暗号化アクセラレーション機能
    1. 5.1 ハードウェア AES アクセラレーション
      1. 5.1.1 AES
      2. 5.1.2 AESADV
    2. 5.2 ハードウェア真性乱数生成器 (TRNG)
  9. 6FAQ (よくある質問)
  10. 7まとめ
  11. 8参考資料
  12. 9改訂履歴

ブート フロー

MSPM0 デバイスにおける高レベルのブート フローを、以下の図に示します。

BOOTRST では、TI ブートコードの実行が開始されます。ブートが成功すると、ブートコードが BOOTDONE を発行します。この時点で、SYSCTL はデバイスに SYSRST を発行し、フラッシュ メモリからの実行をトリガします。ブート構成レコードに応じて、これにより、メインアプリケーションの起動 (この構成で CSC が存在しない場合) または CSC の起動 (CSC が設定されている場合) のいずれかに進みます。

CSC は、実行バンクの決定、メモリ領域の保護設定、キーストアへのセキュア キーの初期化などを担当します。顧客セキュア コードが SYSCTL.SECCFG.INITDONE MMR に書き込んで INITDONE を発行すると、SYSCTL は 2 回目の SYSRST を発行します。デバイスは再び、フラッシュにマップされた 0x0 から実行を開始し、CSC が 2 回目に実行されます。今回は、CSC が INITDONE がすでに以前に発行されていることを検出し (これは SYSCTL.SECCFG.SECSTATUS.INITDONE ビットを読み取ることで判定されます)、メイン アプリケーションを直接呼び出します。

 大まかなブート フロー図 2-1 大まかなブート フロー.

BOOTRST からメイン アプリケーションまでの大まかなブート フロー:

注: セキュリティが有効化されていないデバイスとのブート フロー互換性を保つため、ブート構成のデフォルト設定は『CSC が存在しない』状態に設定されています。

セキュアな実行フローは、CSC_EXISTS = YES のパスです。この場合、BOOTRST の後、メイン アプリケーションが起動する前に 2 つの SYSRST が発行されることがあります。最初の SYSRST の後、顧客のスタートアップ コードが実行されます。セキュリティを設定し、INITDONE を発行します。この時点で、セキュリティ設定はロックされ、強制されます。この時点で 2 番目の SYSRST が発行され、スタートアップ コードの実行が再開されます。2 番目の SYSRST では、INITDONE が YES であるため、メイン アプリケーションが起動します。

BCRBSL のどちらにも、ロック可能な NONMAIN フラッシュ メモリ領域にユーザー指定の構成データ構造が格納されています。これらのデータ構造で指定されているセキュリティ ポリシーについては、セクション 2.6 を参照してください。