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改訂履歴
構成 (NONMAIN) フラッシュ メモリのロック

MSPM0 MCU には、静的書き込み保護機能が実装されており、NONMAIN フラッシュ領域を実行時のプログラム / 消去操作からロックアウトできます。書き込み保護機能は、NONMAIN フラッシュ領域のブート セキュリティ ポリシーの一部として構成されます。

目的

デフォルトでは、NONMAIN 構成メモリ (ユーザー指定のブート セキュリティ ポリシーとブートストラップ ローダ ポリシーを含む) は書き込み保護の状態になっていません。これにより、プロビジョニング中にユーザーが NONMAIN を消去し、量産時に使用されるユーザー指定のポリシーで再プログラミングすることができます。

多くの場合、構成メモリはプロビジョニング後にロックするのが適切です。構成メモリをロックすると、セキュリティ ポリシー、ブートストラップ ローダ ポリシー、静的書き込み保護ポリシーが、ブートストラップ ローダまたはアプリケーション コードによって不正に変更されるのを防止できます。ほとんどのアプリケーションでは、量産デバイスの構成メモリの変更は、デバイスのファームウェアが更新された場合でも必要ありません。

機能

保護するように構成した場合、NONMAIN 領域全体が書き込みロックされ、ブート構成ルーチンがブートストラップ ローダまたは MAIN フラッシュ内のユーザー アプリケーション コードに実行を移行したときに、機能を変更することはできません。NONMAIN 領域をアプリケーション コードまたはブートストラップ ローダでプログラムまたは消去しようとすると、ハードウェア フラッシュ動作エラーが発生し、セクタは変更されません。

静的書き込み保護は、アプリケーション コードまたはブートローダによる変更は防止しますが、SWD インターフェイス経由で送信される工場出荷時リセット コマンドは実行されます。この動作が望ましくない場合は、工場出荷時リセットを行う SWD コマンドを固有のパスワードを使用して保護するか、ディセーブルできます (SWD ポリシーを参照)。NONMAIN 構成メモリを変更する手段を完全に削除するには、工場出荷時リセット コマンドと テキサス・インスツルメンツ FA (または SW-DP) をディセーブルする必要があります。

注: NONMAIN が静的に書き込み保護されており、工場出荷時リセット コマンドと テキサス・インスツルメンツ FA (または SW-DP) がディセーブルの場合、NONMAIN は変更不可能な読み取り専用メモリと同等であり、いかなる方法でもデバイス構成を変更することはできません。さらに、MAIN メモリ領域セクタのいずれかが静的保護機能を使用して構成されている場合、これらのセクタはいかなる方法でも変更できず、変更不可能とみなすことができます。