こんにちは@Kan_Liさん
私は ESP32 ホストと SE050C1 を使って作業しています。環境の詳細:
プラグ&トラスト: v3.0.6 (ミニ)
SE050 アプレットバージョン: 03 01 01 6F FF 01 0B
デフォルトのキーを使用して安全なチャネルを開き、SE で EC キー ペアを生成し、CSR を正常に作成できます。
ここで、独自の SCP03 キーセット (ENC/MAC/DEK、AES-256) を一度プロビジョニングし、新しいキー バージョンで SE050 に保存し、その後は常にそのバージョンを使用して SCP03 セッションを開きたいと思います。
あなたに必要なこと:
API / v3.0.6 の PUT KEY の例 (ミニ)
私の Mini ドロップでは INS_GP_PUT_KEY が定義されていますが、Se05x_API_PutKeys()、nxScp03_ChangeKeys()、または ex_scp03_change_keys の例のような高レベルのヘルパーは見つかりません。
Mini v3.0.6 に SCP03 キーローテーション ヘルパーが含まれているかどうか確認できますか?
はいの場合: どのソース ファイルと関数を呼び出す必要がありますか? また、どのヘッダーを含める必要がありますか?
いいえの場合: ENC/MAC/DEK および KCV 計算に予想される TLV 形式を含め、Mini APDU トランスポート (例: Se05x_API_Transceive/Se05x_API_SendAPDU) を使用して、すでに開いている SCP03 セッションを介して GlobalPlatform PUT KEY (CLA=0x80、INS=0xD8)を送信するための推奨方法 (および最小限のコード サンプル) を共有してください。
v3.0.6 の AES (SCP03) の認証コンテキスト構造
私のブートコンテキストは gex_sss_boot_ctx.ex_se05x_auth です。
argv (--auth aes) 経由で AES を選択し、キーを ex_static.{Enc,Mac,Dek} にロードします。そしてバージョンをkeyVerに入力します。
試行錯誤に頼らないように、v3.0.6 Mini の正しいフィールド名を確認してください。
リファレンス実装 / パス
完全な Plug & Trust (非 Mini) に SCP03 キーの更新を示す例がある場合、そのロジックを Mini にミラーリングできるように、正確なパスと関数名を教えていただけますか?私が探した典型的な名前:
examples/sss/ex_scp03_change_keys.*
ホストライブラリ/ホストライブラリ/libCommon/scp/nxScp03.*
hostlib/hostLib/libSE05X/src/*scp03* または INS_GP_PUT_KEY の使用。
バージョン管理とキーの長さ
AES-256 (32 バイト キー) と新しいキー バージョン (例: 0x11) を使用する予定です。アプレット03 01 01 6F FF 01 0Bのキー バージョンの選択または最小キー長に関して推奨される制約またはベスト プラクティスはありますか?
ツールの代替
一度プロビジョニングしてから、ファームウェアを切り替えて常に新しいキーで開くようにするのが推奨パスである場合、ツール名/コマンド (および入手先) を共有していただけますか。
私にとっての当面の障害は、Mini にPUT KEYの呼び出し可能なヘルパーがないことです。このアプレット バージョンで SE050 が期待する正確な APDU ビルドと送信シーケンスを共有していただければ、生の APDU を実装させていただきます。
ご指導ありがとうございました!
よろしくお願いします、
レディ
こんにちは@Rutwik0409さん、
これまでのところ、MW のフル バージョンと nano バージョンで PlatformSCP キー ローテーション デモを提供していますが、この種のアプリケーションはデバイスの寿命ごとに 1 回実行するだけでよいと思うSO、簡単な解決策として nano パッケージをプラットフォームに移植してみるのもよいかもしれません。https://github.com/NXPPlugNTrust/nano-package/tree/master/examples/se05x_rotate_scp03_keysを参照してください。詳細については。
お役に立てれば幸いです。
すてきな一日を、
カン
---------------------------------------------------------------------------------
注記:
- この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう!
- Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。
後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。
---------------------------------------------------------------------------------