1228041_ja-JP

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

1228041_ja-JP

1228041_ja-JP

OP-TEEキー

こんにちは、

iMX8M miniにYocto BSPを使用しています。ここがこの質問をするのに適切な場所かどうかわかりません。そうでないCASEはお知らせください。

https://source.codeaurora.org/external/imx/imx-optee-os/tree/documentation/porting_guidelines.md?h=i...をご覧ください

私はそれを読むことができます


## 9. Trusted Application private/public keypair
By default all Trusted Applications (TA's) are signed with the pre-generated
2048-bit RSA development key (private key). This key is located in the `keys`
folder (in the root of optee_os.git) and is named `default_ta.pem`. This key
**must** be replaced with your own key and you should **never ever** check-in
this private key in the source code tree when in use in a real product.  

また、次の場所でもご覧いただけます:

https://optee.readthedocs.io/en/latest/building/trusted_applications.html#tas の署名

警告

「optee_os には、開発、テスト、デバッグ、QA を容易にするために、ソースにデフォルトの秘密キーが付属しています。このキーを使用してoptee_osバイナリを本番環境にデプロイしないでください。代わりに、このキーをできるだけ早く公開キーに置き換え、キーの秘密部分をオフラインで、できれば HSM 上に保管してください。」

 

はい、その後、新しいキーペアを生成し、公開キーを抽出しました。

次に、抽出した公開キーをキー フォルダーに配置し、名前を default_ta.pem に変更して、元の default_ta.pem を上書きします。

つまり、default_ta.pem には現在公開鍵のみが存在することになります。

現在、 optee-os-imx は正しくビルドされますが、 optee-test-imx はエラーを発生させます。これは、信頼できるアプリであり、署名に秘密キーが必要であるため、理解できます。

SO、私の質問は、default_ta.pemを別のKEYPAIR.pemに置き換えたらどうなるでしょうか?私が生成したファイルは安全ですか?optee-os-imx と optee-test-imx は正しくビルドされますが、キーペアの秘密キー部分は optee-os バイナリ ファイルから削除されますか?または、default_ta.pem キーペアはイメージに完全に埋め込まれますか?

この最後のCASEでは、ビルド中のソースに秘密鍵を入れないようにという指示と少し衝突することになります。

この部分を処理するスクリプトをCAN教えていただけますか?

ご協力の程、よろしくお願い申し上げます。



Re: OP-TEE key

Yocto ビルドで HSM を使用して署名するために何を変更する必要があるかわかっている人はいますか?

Re: OP-TEE key

私は、Yocto を使用して imx93 にセキュア ストレージを実装する予定です。この投稿に従い、実装方法は明確ですが、次の 2 つの点が明確ではありません。
-ハードウェアユニークキー(HUK)はTEEに既に存在しますか?SO、何もする必要はありません。

- TA を追加する必要がない場合でも、default_ta.pem を変更する必要がありますか?これに関するガイドはありますか?(キー生成 + Yocto での置換)


HUK を抽出する方法はないと思うので、デバッグ目的であっても、別のハードウェア (組み込みまたはノートPC) でデータを解読することはできないと思いますが、本当でしょうか?

Re: OP-TEE key

はい、その通りです@IvanRuiz

唯一の問題は、imx-optee-test レシピもビルドし、これには optee-os が必要であり、optee-os ビルド フォルダーから秘密キーを取得しようとすることです。

とにかく、Tee イメージに埋め込む前に、秘密鍵がキーペアから取り除かれることがわかりました。これは次のスクリプトによって実行されます。

pem_to_pub_c.py

キーペアから抽出された公開キーの情報のみを含む ac ファイルを生成します。

それが tee.bin ファイルに追加されます。

あなたのドキュメントに従って、私たちは秘密鍵をソースとともにリポジトリにコミットするつもりはありません。

Re: OP-TEE key

こんにちは、


セキュリティ上の理由から、 keys/default_ta.pemに秘密鍵を保存することは推奨されません。ドキュメントによると、生成された公開鍵のみを使用することが推奨されています。これは、公開鍵は暗号化にのみ使用され、秘密鍵はできれば HSM に保存されるためです。TA は、ドキュメントに記載されているように、OP-TEE のsign_encrypt.pyを使用して署名されます。


お役に立てれば幸いです!


BR、

イワン。

Re: OP-TEE key

こんにちは@antonio_santagi
最終的にどのように問題を解決しましたか?私は、ドキュメントで説明されているように生成されたキー ペアを imx93 で使用しようとしており、 TA_SIGN_KEY および TA_PUBLIC_KEY 環境変数を使用してそれを yocto に提供しています。
値はoptee-osとoptee-os-tadevkitのdo_compibleジョブに正しく転送されますが、imx93ターゲットでxtestを実行すると、

* regression_1039 サブキー検証のテスト
o 回帰_1039.1 TAに2レベルのサブキーをロードする
/usr/src/debug/optee-test/4.4.0.imx/host/xtest/regression_1000.c:3278: xtest_teec_open_session(&session, &subkey1_ta_uuid, ((void *)0), &ret_orig) に予期しない値があります: 0xffff000f = TEEC_ERROR_SECURITY、期待値は 0x0 = TEEC_SUCCESS
回帰_1039.1 失敗
o regression_1039.2 識別サブキーを使用してTAをロードする
/usr/src/debug/optee-test/4.4.0.imx/host/xtest/regression_1000.c:3285: xtest_teec_open_session(&session, &subkey2_ta_uuid, ((void *)0), &ret_orig) に予期しない値があります: 0xffff000f = TEEC_ERROR_SECURITY、期待値は 0x0 = TEEC_SUCCESS
回帰_1039.2 失敗
回帰_1039 失敗

Re: OP-TEE key

こんにちは@imx8mp_developerさん

申し訳ありませんが、しばらくこのトピックに取り組んでいませんでした。

当時、数年前のことを思い出すと、元のキー ペアを置き換えて、キー ペアに同じデフォルト名を使用すると正常に動作しました。あなたが言及した 2 つの環境変数を試したかどうかは覚えていません。まず同じ名前を使用してデフォルトのキーペアを置き換えてみて、それが機能するかどうかを確認してください。

Re: OP-TEE key

こんにちは!ご回答ありがとうございます。

その間に、私が言及した変数を Yocto 内で直接使用することができ、optee-os および optee-tadevkit コンポーネントの do_compile ログで正しいパスが使用されていることが確認できたので、動作していると思います。
システムで「xtest」を起動しようとしたところ、テスト 1039 が失敗していることがわかりました。これは、新しいキーではなく、default_ta.pem キーで事前署名された中間キーを内部的に使用しているためだと思います。ちなみに、これは xtest 側の問題であり、optee-os / opte-tadevkit によって展開された TA は正常に動作すると思います。

Tags (1)
No ratings
Version history
Last update:
‎01-15-2026 03:21 AM
Updated by: