2384588_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2384588_ja-JP

2384588_ja-JP

S32k144でバックドアアクセスキーを使った解析

プロジェクト開始前に、s32k144を使用してバックドアテストを検証したいです。

unsecureProjectに関するサンプルコードがあります。(Example_S32K144_Verify_Backdoor_Access_Key_S32DS1.3_v2.zip)

サンプルコードとリファレンスマニュアルを比較して、いくつか質問があります。


1.Verify Backdoor Access Keyに関するリファレンス・マニュアルによると、以下の表のように記載されています。

LGI_0-1782174796203.png


FCCOB 番号 0 はコマンド時に使用されます。

しかし、コードでは、コマンドのときにFCCOB番号4が使用されます。

LGI_1-1782174829617.png

だから考えたんだ。

FTFC->FCCOB[0x0] = 0x45; // バックドアキー検証コマンド (0x45)
FTFC->FCCOB[0x3] = 0x45; // バックドアキー検証コマンド (0x45)

どちらが正しいですか?


2. ロックとアンロック(バックドアアクセスの確認)機構を確認したい。

初め。T32を使用してバックドアキーを設定します。(普通のやり方ではないことは分かっています。)通常はコードを挿入します)

例) Data.Set SD:0x400 %LE %Long &pwd_Head

データ.Set SD:0x404 %LE %Long &pwd_Tail

データ.Set SD:0x40C %LE %Long 0xFFFF7FBF


2番。リセットすると、FSECレジスタ(0x40020002)はフラッシュ構成フィールド(0x40C)のセキュリティバイトに格納された値で初期化されます。

Q.2-1。これは、デバイスがリセットされるまで非セキュア状態のままであり、リセット後にFSECレジスタ(0x40020002)が0x40Cから読み取られた値で更新され、デバイスがセキュア状態に入るという意味でしょうか?

LGI_2-1782175329362.png


三番目。バックドアアクセスを確認する際、以下のリファレンス・マニュアルに「キャプチャ」と記載されています。

LGI_3-1782175422077.png


Q. 2-2.これは、FSECレジスタが一時的に非セキュアモードに変更され、リセット後に元の状態に戻るという意味でしょうか?リセット時に、FSECレジスタ(0x40020002)は再び0x40Cから値を読み取る、ということですよね?


問2-3この更新が行われるとき、セキュリティ関連ビットだけが変更されるのか、それともFSECバイト全体が上書きされるのか?

例えば、遷移はBF → FEなのか、それともBF → BEなのか?


3. この説明に基づくと、キーが一致しない場合、デバイスはリセットされるまで保護されたままになります。この場合、バックドアアクセスが無効化された場合、どのようにデバイスをリセットできますか?

LGI_4-1782176250749.png

4. 次のコマンドを実行すると:
データ.Set AD:0x40020000 %バイト 0x30

そしてすぐに、以下の方法で読み返してください。

データ.Byte(AD:0x40020000)

値は依然として0x80のままです。

この行動の理由は何で、それは何を意味するのでしょうか?



==================================================================

だから、私は思う

  1. S32K144にデータを書き込む際、設定値は0x400~0x40Fの領域に書き込まれます。
  2. MCUがリセットまたは再起動されると、FTFCレジスタは0x400–0x40F領域に保存された設定値を読み取り、その設定に従って動作します。

右?

また、バックドア比較キーがstartup_S32K144.Sに現れますが、これはmain()に入る前に設定が適用されるという意味でしょうか?



=================================================


アドレス0x40000100または0x40000104を使用して、セキュリティ保護されていない状態を確認します。

これは正しいですか?

リファレンス・マニュアルには関連する説明が見つかりませんでした。



ありがとう。


#s32k144 @backdoor アクセス

Re: Verfiying Backdoor access key using in S32k144サポートありがとうございます!!Re: Verfiying Backdoor access key using in S32k144

こんにちは、 @LGI さん

A4フォローアップ:

アドレス0x40020000にFSTATレジスタがあります。
前述の通り、このレジスタは0から1までのビットを設定する書き方はできません。
ビットに「1」を書き込むとクリアされるだけです(W1C – Write-1-to-clear)。したがって、「1」を書き込んでもビットは設定されず、既に「1」になっているビットがクリアされるだけです。


A8のフォローアップ:

これらはMDM-APの状態および制御レジスタで、Arm Debugアクセスポート(DAP)を通じてのみアクセス可能です。

例えば、このスクリプトでは使用されています。

https://community.nxp.com/t5/S32K-Knowledge-Base/Lauterbach-Script-For-MDM-AP-Mass-erase-S32K142/ta-...


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

ダニエル


Re: Verfiying Backdoor access key using in S32k144

ご回答ありがとうございます。@danielmartynek

それでは、いくつか質問がありますので、お答えください。


A4。アドレス0x40020000に0x30を書き込みましたが、読み戻したときに値は0x30に変わらず、0x80のままでした。

この行動の理由は何で、それは何を意味するのでしょうか?

Q8.これは実際にはTrace32の例に関連しています。

S32K144のTrace32例では、セキュリティ状態情報のためにアドレス0x40000100と0x40000104が使われています。

しかし、0x40000100と0x40000104の住所に関する情報は見つかりませんでした。私が質問しているのはまさにその点です。

再開まで今しばらくお待ちください。

Re: Verfiying Backdoor access key using in S32k144

こんにちは、 @LGI さん

A1:

これは FTFC->FCCOB[0x3] = 0x45; // バックドアキー検証コマンド (0x45) です。

FCCOB0はメモリマップの4番目のレジスタだからです。

danielmartynek_0-1782199747739.png

A2: プログラマーやデバッガを使ってフラッシュ構成フィールドをプログラムできますが、セクターは事前に消去しておく必要があります。一括消去を行うと、FSECバイトも非セキュア状態にプログラムされることに注意してください。

A2.1: はい

A2.2: はい

A2.3:FSEC[SEC]のみ。

A3:MCUには多くのリセットソースがあります(RM、25.2.2システムリセットソース)。

デバッガはピン(PTA5)をアサートすることでMCU Reset_bリセットできます。

A4: レジスタへの書き込みにはW1C機能のみがあります。

danielmartynek_1-1782200487390.png


Q5: S32K144にデータをプログラムする際、設定値は0x400~0x40Fの領域に書き込まれます。

A5: はい


Q6: MCUがリセットまたは再起動されると、FTFCレジスタは0x400–0x40F領域に保存された設定値を読み取り、それらの設定に従って動作します。

A6: はい、MCUはフラッシュ構成フィールドの値をFTFCレジスタに読み込みます。


Q7: また、バックドア比較キーはstartup_S32K144.Sに現れますが、これはmain()に入る前に設定が適用されるという意味でしょうか?

A7: リセットが必要ですが、これはプログラマー/デバッガーがプログラミング後に通常行うことです。


Q8: アドレス 0x40000100 または 0x40000104 を使用して、セキュリティ保護されていない状態を確認します。これは正しいですか?

A9:私はあなたが言っているような人間ではありません。詳しく説明してください。


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

ダニエル

标记 (1)
无评分
版本历史
最后更新:
星期三
更新人: