2247427_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2247427_ja-JP

2247427_ja-JP

S32K144 CSEc セキュアブート - デバイスがセキュア状態のままになっており、セキュア解除できません

ハードウェア: S32K144 開発ボード
IDEs : S32 Design Studio
プログラミング:S32DS経由直接

問題の説明:

次の手順で、S32K144 に CSEc セキュア ブートを正常に実装しました。

  1. キーを設定する - MASTER_ECU_KEYとBOOT_MAC_KEYを設定する
  2. フラッシュ領域内のフラッシュアプリケーション - S32DS経由でDebug_FLASH構成を使用
  3. セキュアブートを設定する - BOOT_MACを保存するためにS32DS経由のDebug_RAM構成を使用しました
  4. リセット後 - セキュアブートが正常に動作している
  5. アプリケーションの動作 - LED表示で確認済み、BOK=1

問題
ネガティブCASE(失敗シナリオ)をテストする場合:

  • フラッシュ領域に別のアプリケーションをフラッシュしてみる → 「デバイスは安全です。消去すると安全ではなくなりますか?」 ダイアログが表示されます
  • 「はい」をクリックして消去します→ 同じダイアログが繰り返し表示される
  • 工場出荷時設定へのリセットを試みた → まだ同じエラー
  • 新しいアプリケーションをフラッシュできません

質問

  1. 「はい」をクリックすると、一括消去が自動的に実行されるのでしょうか? ダイアログが繰り返し表示されるのはなぜですか?
  2. S32DS のみを使用してデバイスのセキュリティを適切に解除するにはどうすればよいですか? 正しい手順は何ですか?
  3. CAN S32DS で大量消去コマンドを使用できますか? もしそうなら、具体的な手順は何ですか?
  4. デバイスは永久にロックされていますか? あるいはS32DS経由の回復方法はありますか?

現在のステータス:
デバイスは安全な状態のままになっているようです。S32DS を使用してアプリケーションをフラッシュできません。デバイスのセキュリティを解除するには、段階的な回復手順が必要です。

Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

どのセキュア ブート モードを設定しましたか?シーケンシャルモード、パラレルモード、厳密なシーケンシャルモードがあります。

シーケンシャルまたはパラレルブートモードが失敗した場合、ブート保護キーが使用できなくなるという結果しか生じません。これが唯一の効果であり、アプリケーションには影響せず、引き続き実行されます。

厳密なシーケンシャル ブート モードが失敗すると、デバイスは永久にリセット状態のままになり、回復する方法はありません。

回答: AN5401sw の S32K144_CSEc_Secure_boot_add_boot_MAC_Manual の例を使用して、BOOT_DEFINE() 関数ブート モード 1 でシリアル セキュア ブートを構成しました。ブート モード1が厳密なシーケンシャル ブート モードに対応する場合、発生している永続的なリセット動作が説明されます

/* ステップ3 セキュアブートのフレーバーとBOOT_SIZEを定義する*/
csec_error = BOOT_DEFINE(128*1024*8, 1);



リセット信号を確認しましたか?電源投入後に解除されますか?

回答:はい、リセット信号を確認しました。電源投入後もリセット信号はアクティブのまま(リセットLEDが点灯したまま)、デバイスがまだリセット状態にあることを示しています。

また、CSEc が有効になると、一括消去 (すべてのブロックを消去するコマンド) がロックされます。

Kishore_14_0-1764067663149.png


一括消去を有効にするには、MASTER_ECU_KEY を認識した上で、CMD_DBG_CHAL コマンドと CMD_DBG_AUTH コマンドを使用してすべてのキーを消去する必要があります。

回答: AN5401_S32K144_CSEc_Resetting_Flash_to_Factory_Stateをフラッシュしようとすると、「デバイスはセキュリティ保護されています。消去してセキュリティ保護を解除しますか?」というダイアログが表示されます。「はい」をクリックしても同じダイアログが繰り返し表示されます。

S32DS には、「フルチップ消去による緊急 Kinetis デバイス回復」オプションがあります。これを使ってデバイスを回復すべきでしょうか?

Kishore_14_2-1764069429876.png

注記:
フラッシュおよび消去用のデバッガーが設定されていません。フラッシュとデバッグには S32DS を使用しています。したがって、大量消去に関する支援が必要です。

 


Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

こんにちは@Kishore_14

どのセキュア ブート モードを設定しましたか?シーケンシャルモード、パラレルモード、厳密なシーケンシャルモードがあります。

シーケンシャルまたはパラレルブートモードが失敗した場合、ブート保護キーが使用できなくなるという結果しか生じません。これが唯一の効果であり、アプリケーションには影響せず、引き続き実行されます。

厳密なシーケンシャル ブート モードが失敗すると、デバイスは永久にリセット状態のままになり、回復する方法はありません。

リセット信号を確認しましたか?電源投入後に解除されますか?

また、CSEc が有効になると、一括消去 (すべてのブロックを消去するコマンド) がロックされます。

lukaszadrapa_0-1764055246465.png

一括消去を有効にするには、MASTER_ECU_KEY を認識した上で、CMD_DBG_CHAL コマンドと CMD_DBG_AUTH コマンドを使用してすべてのキーを消去する必要があります。

よろしくお願いいたします。

ルーカス

Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

ブート フレーバー パラメータが 0 に設定されている場合、厳密なシーケンシャル ブート モードが構成されます。

image.png

しかし、元のシーケンシャルブートを維持した場合は意味がありません。


/* ステップ3 セキュアブートのフレーバーとBOOT_SIZEを定義する*/
csec_error = BOOT_DEFINE(128*1024*8, 1);


シーケンシャルブートが失敗した場合でも、これによって永続的なリセットが発生することはありません。オシロスコープで信号を確認してみましたか、それとも LED だけを観察しましたか?リセット信号はトグルしていませんか?

リセット信号が永続的にアサートされている場合、回復する方法はありません。




Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

直接観察すると、LED は切り替わっておらず、常時点灯しています。

シーケンシャル ブート モードの場合、新しいアプリケーションがフラッシュされるときにデバイスが継続的にリセットされる可能性はどれくらいありますか?


例のすべての Flashconfig 設定が以下の通りの場合、デバイスはどのように保護されますか。

/* フラッシュ設定 */
。セクション.FlashConfig, "a"
。長さ0xFFFFFFFF /* 8バイトのバックドア比較キー */
。長さ0xFFFFFFFF /* */
。長さ0xFFFFFFFF /* 4バイトのプログラムフラッシュ保護バイト */
。長さ0xFFFF7FFE /* FDPROT:FEPROT:FOPT:FSEC(0xFE = 保護されていない) */

利用できないためデバッガーを直接フラッシュすることができないので、Kinetis の大量消去オプションを試すことはできますか。


注: このCASEは別のボードでも確認されており、以下のリンクに投稿されています。
エラー: デバイスはセキュリティ保護されています。消去してセキュリティ保護を解除してください - NXPコミュニティ

Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

リセット ピンの切り替えは非常に高速であるため、肉眼では確認できない場合があります。それで、オシロスコープで試してみたかどうか尋ねたのです。

永久リセットが必要な理由は 2 つしかありません。
1. 厳密なシーケンシャルブートモードに失敗しました。
2. ハードウェアの問題 - 通常は電圧が不十分なので、電圧モニターではデバイスの起動ができません...

(間違った) アプリケーションによってデバイスを強制的に永久的にリセットする方法はありません。これは、たとえば GPIO を短絡に設定するなど、何らかの自己破壊的な方法でのみ実行できます。

「デバイスは安全です。」というメッセージが表示されます。「消去して安全でない状態にしますか?」というのは、一般的な質問です。ほとんどの場合、これはデバッガーが接続を確立できなかったことを意味します。このCASE、デバイスが保護されていても、有効になっている CSEc モジュールによって大量消去操作がブロックされているため、保護を解除することはできません。

Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

こんにちは、
リセット ピンの切り替えは非常に高速であるため、肉眼では確認できない場合があります。それで、オシロスコープで試してみたかどうか尋ねたのです。
リセット信号を確認しましたか?電源投入後に解除されますか?

回答: リセット ピンがトグルしていることがわかりました。

Kishore_14_2-1764229793234.png


以前にフラッシュされたアプリケーションが、SW / WDG リセットでスタックしていることを意味しますか?
SWD デバッガーのフラッシュによってCAN回復できますか?

 
 

Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

MDM-AP を読み取るための Segger J-Link プローブまたは Lauterbach デバッガーをお持ちですか?残念ながら、Pemicro ではそれが不可能です。

デバイスがロックされる可能性があるまれなシナリオがあります。このThreadを確認してください:

https://community.nxp.com/t5/S32K/Unbricking-S32K146/mp/937227

確認するにはMDM-APを読み取る必要があります。


Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

残念ながら、フラッシュ用の JLink または PE Micro はありません。
デバッグにはS32DS OpenSDAを使用します。

以下はAN12130から引用したものです。
プログラム パーティション コマンド (PGMPART) を起動するときは、CSEc キー サイズを必ず 0 以外の値に割り当ててください。
• CSEc キー(少なくとも MASTER_ECU_KEY)をプログラムします。
• CMD_DBG_CHAL および CMD_DBG_AUTH コマンドを発行してキーを消去します。CMD_DBG_AUTHコマンドは、
データ IFR によりパーティション コードが消去され、大量消去が再び機能するようになります。
いずれかの CSEc キーが「書き込み保護」されている場合、上記の手順は機能せず、大量消去を開始できません。

質問: 別のアプリケーションをフラッシュしたとき、最初の試行で正常にフラッシュされました。
上記のシーケンスに従わない場合、次回のリセット時に、新しいアプリケーションが連続してリセットされる可能性がありますか?これは正しいですか?

Re: S32K144 CSEc Secure Boot - Device Stuck in Secure State, Cannot Unsecure

OpenSDA も Pemicro のものです。

通常、CSEc が有効になっていても、一部のキーが書き込み保護されている場合でも、OpenSDA によって新しいアプリケーションをプログラムすることは可能です。これは、一括消去ではなく、フラッシュ ブロックをブロックごとに消去するためです。AN12130 では次のような問題について言及しているということです。

lukaszadrapa_0-1764582832674.png


lukaszadrapa_1-1764582841459.png


SO、これらはむしろ、プログラミング中に予期しないリセットなど、何か問題が発生した場合に発生する問題です。

残念ながら、このような状態を確認する唯一の方法は、前述の MDM_AP レジスタを読み取ることです。そうすれば、デバイスが永続的にロックされているかどうかがわかります。しかし、レジスタは OpenSDA では読み取ることができません。

よろしくお願いいたします。

ルーカス


Tags (1)
No ratings
Version history
Last update:
‎12-03-2025 01:38 AM
Updated by: