こんにちは、
Linux上でEdgeLock SE051とSCP03を使ってOpenSSL プロバイダを使おうとしています。se05x_Minimal例が最初は完璧に動作するのに、OpenSSL プロバイダの共有ライブラリをインストールし た後に SCP03認証エラーで失敗するという問題に直面しました。
この対立の原因についてアドバイスをいただけますか?
環境:
基板: MCIMX8M-WEVKおよびOM-SE051ARD
SoC: i.MX 8M
Linuxバージョン: 6.1.151-cip46
OpenSSLバージョン: 3.0.20
Plug & Trust MW バージョン: 04.07.01
講じた措置:
以下のCMake構成を使用して、Plug & Trust MWをビルドしました。
cmake ../simw-top \ -DPTMW_Applet=SE05X_C \ -DPTMW_SE05X_Ver=07_02 \ -DPTMW_Host=iMXLinux \ -DPTMW_SMCOM=T1oI2C \ -DPTMW_HostCrypto=OPENSSL \ -DPTMW_RTOS=Default \ -DPTMW_mbedTLS_ALT=None \ -DPTMW_SCP=SCP03_SSS \ -DPTMW_FIPS=None \ -DPTMW_SBL=None \ -DPTMW_SE05X_Auth=PlatfSCP03 \ -DPTMW_Log=Default \ -DCMAKE_BUILD_TYPE=Release \ -DPTMW_SE_RESET_LOGIC=1
Plug & Trust MWディレクトリから i.MX 8Mの/rootにsimw-top/demos/linux/common/openssl30_sss_se050.cnfをコピーしました。
設定環境変数をエクスポートしました。
export OPENSSL_CONF=/root/openssl30_sss_se050.cnfSE051とSCP03が正しく動作することを確認するため、se05x_Minimalを実行しました。それは成功した。
App :INFO :Running bin/se05x_Minimal
App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments.
App :INFO :PlugAndTrust_v04.07.01_20250519
App :INFO :Using default PlatfSCP03 keys. You can use keys from file using ENV=EX_SSS_BOOT_SCP03_PATH
sss :INFO :atr (Len=35)
(snip)
App :INFO :mem=17196
App :INFO :se05x_Minimal Example Success !!!...
App :INFO :ex_sss Finishedlibsssapisw.so 写した。libsss_pkcs11.so、そして/usr/local/lib/に libsssProvider.so。(注:/usr/local/lib/ は、/root/openssl30_sss_se050.cnf の [nxp_prov_sec] セクションで指定されているパスです。)
se05x_Minimalを再度実行しました。今回は、以下のエラーが発生して失敗しました。
エラー出力:
App :INFO :Running bin/se05x_Minimal
App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments.
App :INFO :PlugAndTrust_v04.07.01_20250519
App :INFO :Using default PlatfSCP03 keys. You can use keys from file using ENV=EX_SSS_BOOT_SCP03_PATH
sss :INFO :atr (Len=35)
(snip)
App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments.
App :INFO :Using default PlatfSCP03 keys. You can use keys from file using ENV=EX_SSS_BOOT_SCP03_PATH
sss :INFO :atr (Len=35)
(snip)
sss :ERROR:Error in RAND_pseudo_bytes
scp :WARN :nxEnsure:'status == kStatus_SSS_Success' failed. At Line:121 Function:nxScp03_AuthenticateChannel
sss :ERROR:Could not set SCP03 Secure Channel
App :ERROR:sss_session_open failed
App :WARN :nxEnsure:'kStatus_SSS_Success == status' failed. At Line:240 Function:OSSL_provider_init
smCom :ERROR:phNxpEseProto7816_DecodeFrame Max retry count reached!!!
smCom :ERROR:phNxpEseProto7816_Transceive Transceive failed, hard reset to proceed
smCom :ERROR: phNxpEse_Transceive phNxpEseProto7816_Transceive- Failed
smCom :ERROR: Transcive Failed
sss :WARN :nxEnsure:'retStatus == SM_OK' failed. At Line:7977 Function:sss_se05x_channel_txn
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:7839 Function:sss_se05x_TXn
sss :WARN :APDU Transaction Error: Error (0xFFFF)
scp :ERROR:GP_InitializeUpdate Failure on communication Link FFFF
scp :ERROR:nxScp03_GP_InitializeUpdate fails with Status 3C3C0000
sss :ERROR:Could not set SCP03 Secure Channel
App :ERROR:sss_session_open failed
App :ERROR:ex_sss_session_open Failed
App :ERROR:!ERROR! ret != 0.OpenSSLプロバイダーが設定によって正常にロードされると、(おそらくRAND_pseudo_bytesに関連する)何かがSCP03チャネルの確立を壊すようです。
同様の現象に遭遇した方、または他にどのような設定が不足しているかご存知の方はいらっしゃいますか?
ご協力ありがとうございます。
こんにちは、 @Uc_S さん。
適切なバージョンのopensslを設定しましたか?以下のオプションをご利用ください。
-DPTMW_OpenSSL=3_0
ちなみに、テスト目的で、より詳細なデバッグ情報を取得するために、詳細ログを有効にしてください。
-DPTMW_Log=詳細
すてきな一日を、
カン
-------------------------------------------------------------------------------
注記:
この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます!
- 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています
もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。
-------------------------------------------------------------------------------
アドバイスをいただき、本当にありがとうございました。あなたの言う通りでした。
問題の根本原因は、CMakeの設定ファイルに「-DPTMW_OpenSSL=3_0」オプションが欠落していたことでした。
「-DPTMW_OpenSSL=3_0 -DPTMW_Log=Verbose 」を追加してMWを再構築したところ、問題は完全に解決しました。結果は以下のとおりです。
ステップ6を実行しても、エラーは発生しなくなりました。期待どおりに「App :INFO :mem=17196」が出力されます。
また、ログレベルを元の設定(「-DPTMW_Log=Default」に設定しても、アプリケーションは完璧に動作し、「App :INFO :mem=17196」を出力することも確認しました。
このトピックは解決したとマークします。