X-CUBE-ロゴ

X-CUBE-STSE01 ソフトウェアパッケージ

X-CUBE-STSE ソフトウェアパッケージ (4)

導入

このユーザー マニュアルでは、X-CUBE-STSE01 ソフトウェア パッケージの使用を開始する方法について説明します。
X-CUBE-STSE01 ソフトウェア パッケージは、ホスト マイクロコントローラの STSAFE-A110 および STSAFE-A120 デバイス機能を利用する複数のデモ コードを提供するソフトウェア コンポーネントです。
これらのデモコードは、STM32Cubeソフトウェア技術を基盤とするSTSELib(Secured Elementミドルウェア)を利用しており、異なるSTM32マイクロコントローラ間での移植性を容易にしています。さらに、マイクロコントローラに依存しないため、他のマイクロコントローラへの移植も可能です。
これらのデモ コードは、次の機能を示しています。

  • 認証。
  • 安全なデータストレージ。
  • 安全な使用カウンター。
  • ペアリング。
  • 鍵の確立。
  • ローカル封筒ラッピング。
  • キーペアの生成。

一般情報

  • X-CUBE-STSE01 ソフトウェア パッケージは、STSAFE-A110 および STSAFE-A120 セキュア エレメント サービスをホスト MCU のオペレーティング システム (OS) とそのアプリケーションに統合するためのリファレンスです。
  • Arm® Cortex®-M プロセッサをベースにした STM32 32 ビット マイクロコントローラで実行される STSAFE-A110 および STSAFE-A120 ドライバとデモ コードが含まれています。
  • Armは、米国および/またはその他の国におけるArm Limited(またはその子会社)の登録商標です。
  • X-CUBE-STSE01 ソフトウェア パッケージは ANSI C で開発されています。ただし、プラットフォームに依存しないアーキテクチャにより、さまざまなプラットフォームへの移植が容易になります。
  • 以下の表は、このドキュメントをよりよく理解するために関連する頭字語の定義を示しています。

STSAFE-A1x0セキュアエレメント

STSAFE-A110およびSTSAFE-A120は、ローカルまたはリモートホストに認証およびデータ管理サービスを提供するセキュアエレメントとして機能する、高度なセキュリティソリューションです。最新世代のセキュアマイクロコントローラ上で動作するセキュアオペレーティングシステムを搭載した、完全なターンキーソリューションです。
STSAFE-A110およびSTSAFE-A120は、IoT(モノのインターネット)デバイス、スマートホーム、スマートシティ、産業用アプリケーション、民生用電子機器、消耗品、アクセサリなどに統合できます。主な特長は以下のとおりです。

  • 認証(周辺機器、IoT、USB Type-C® デバイスの)
  • トランスポート層セキュリティ (TLS) ハンドシェイクを含むリモート ホストとの安全なチャネルの確立。
  • 署名検証サービス (セキュア ブートおよびファームウェア アップグレード)。
  • 安全なカウンターによる使用状況の監視。
  • ホスト アプリケーション プロセッサとのペアリングおよび安全なチャネル。
  • ローカルまたはリモート ホスト エンベロープのラッピングとアンラッピング。
  • オンチップキーペア生成。

STSecureElementライブラリ(STSELib)の説明

このセクションでは、STSELib ミドルウェア ソフトウェア パッケージの内容とその使用方法について詳しく説明します。

一般的な説明

STSELib ミドルウェアは、次の目的で設計されたソフトウェア コンポーネントのセットです。

  • STSAFE-A110 および STSAFE-A120 セキュア エレメント デバイスを MCU とインターフェースします。
  • 最も一般的な STSAFE-A110 および STSAFE-A120 の使用ケースを実装します。
  • STSELib ミドルウェアは、セキュア エレメント機能を追加するミドルウェア コンポーネントとして ST ソフトウェア パッケージ内に完全に統合されています。
  • STSELibミドルウェアは、組み込みシステム開発者向けに、高水準のアプリケーション・プログラミング・インターフェース(API)関数の包括的なセットを提供します。このミドルウェアは、STMicroelectronicsのSTSAFE-Aセキュアエレメントファミリを用いて、デバイス、アクセサリ、消耗品のブランド保護に必要なコマンドのビルドとシーケンス処理を抽象化します。
  • このミドルウェアにより、さまざまなホスト MCU/MPU エコシステムで 1 つまたは複数の STSAFE-A をシームレスに統合できます。
  • サポートされている IDE バージョンについては、パッケージのルート フォルダーにあるリリース ノートを参照してください。

建築
STSELibミドルウェアは、下図に示すように3つのソフトウェアモジュールで構成されています。各レイヤーは、組み込みシステム開発者に異なるレベルのシステム抽象化を提供します。

X-CUBE-STSE ソフトウェアパッケージ (2)

下の図は、STM32 Nucleo ボードに搭載された X-NUCLEO-SAFEA1 または X-NUCLEO-ESE01A1 拡張ボード上で実行される標準の STM32Cube アプリケーションに統合された STSELib ミドルウェアを示しています。

図2. X-CUBE-STSE01アプリケーションブロック図

X-CUBE-STSE ソフトウェアパッケージ (3)

ハードウェアとプラットフォームの独立性を最大限に高めるために、STSELibミドルウェアはSTM32Cube HALに直接接続されるのではなく、インターフェースを介して接続されます。 fileアプリケーションレベルで実装

  • アプリケーションプログラミングインターフェース(API)層
    このソフトウェア層は、システムアプリケーションへのエントリポイントです。STMicroelectronicsのセキュアエレメントとの連携を可能にする高レベル関数群を提供します。API層は、セキュアエレメント管理、認証、データストレージ、鍵管理といった様々なアプリケーションのための抽象化を提供します。
  • サービス層
    サービス層は、対象となるセキュアエレメントでサポートされるすべてのコマンドをフォーマットし、上位層のAPI/アプリケーションに応答を報告する製品サービスのセットを提供します。この層はアプリケーションから直接使用できます(上級ユーザー向け)。
  • コア層
    ST セキュア エレメントの一般的な定義と、ターゲット セキュア エレメントと通信するための関数が含まれています。
    コア層はメッセージのフレーミングを処理するとともに、上位層のプラットフォーム抽象化も提供します。

フォルダ構造
下図はX-CUBE-STSE01のフォルダ構造を示しています。

X-CUBE-STSE ソフトウェアパッケージ (4)

デモンストレーションソフトウェア

このセクションでは、STSELib ミドルウェアに基づくデモ ソフトウェアについて説明します。

認証
このデモでは、STSAFE-A110/STSAFE-A120 がリモート ホスト (IoT デバイスの場合) に対して認証するデバイスにマウントされ、ローカル ホストがリモート サーバーへのパススルーとして使用されるコマンド フローを説明します。
STSAFE-A110/STSAFE-A120が、例えばローカルホストに認証する周辺機器に搭載されているシナリオampゲーム、モバイルアクセサリ、または消耗品のファイルもまったく同じです。
デモンストレーションの目的で、ここではローカル ホストとリモート ホストは同じデバイスです。

  1. 公開キーを取得するために、デバイスのデータ パーティション ゾーン 0 に保存されている STSAFE-A110/STSAFE-A120 の公開証明書を抽出、解析、検証します。
    • STSAFE-A110/STSAFE-A120 のゾーン 0 を介して STSELib ミドルウェアを使用して証明書を読み取ります。
    • 暗号化ライブラリのパーサーを使用して証明書を解析します。
    • CA 証明書を読み取ります (コードを通じて入手可能)。
    • 暗号化ライブラリのパーサーを使用して CA 証明書を解析します。
    • 暗号化ライブラリを通じて CA 証明書を使用して証明書の有効性を確認します。
    • STSAFE-A110/STSAFE-A120 X.509 証明書から公開キーを取得します。
  2. チャレンジ番号で署名を生成し、検証します。
    • チャレンジ番号(乱数)を生成します。
    • チャレンジをハッシュします。
    • STSELib ミドルウェアを介して STSAFE-A110/STSAFE-A120 秘密キー スロット 0 を使用して、ハッシュされたチャレンジの署名を取得します。
    • 暗号化ライブラリを使用して生成された署名を解析します。
    • 暗号化ライブラリを通じて STSAFE-A110/STSAFE-A120 の公開キーを使用して、生成された署名を検証します。
    • これが有効な場合、ホストは周辺機器または IoT が本物であることを認識します。

ペアリング(ホストキーのプロビジョニング)
このコード例ampleは、デバイスとそれが接続されるMCUとのペアリングを確立します。このペアリングにより、デバイスとMCU間の通信が認証(署名と検証)されます。STSAFE-A110デバイスは、ペアリングされたMCUとの組み合わせでのみ使用可能になります。
ペアリングは、ホスト MCU がホスト MAC キーとホスト暗号キーを STSAFE-A110 に送信することから構成されます。両方のキーは STSAFE-A110 の保護された NVM に保存され、STM32 デバイスのフラッシュ メモリに保存される必要があります。
デフォルトでは、この例ではampホストMCUは、STSAFE-A110に既知の鍵を送信します(下記のコマンドフローを参照)。これはデモ目的で使用することを強く推奨します。このコードでは、ランダム鍵の生成も可能です。
さらに、コード例ampSTSAFE-A110の対応するスロットがまだ実装されていない場合、leはローカルエンベロープ鍵を生成します。ローカルエンベロープスロットが実装されている場合、STSAFE-A110デバイスはホストMCUがローカルエンベロープをラップ/アンラップして、ホストMCU側で鍵を安全に保存できるようにします。
注: ペアリングコード例amp次のすべてのコードを実行する前に、ファイルが正常に実行される必要があります。ampレ。

コマンドの流れ

  1. STSELib ミドルウェアを使用して、STSAFE-A110 でローカル エンベロープ キーを生成します。
    デフォルトではこのコマンドは有効になっています
    この操作は、STSAFE-A110 のローカル エンベロープ キー スロットがまだ装着されていない場合にのみ発生します。
  2. ホスト MAC キーとホスト暗号キーとして使用する 2 つの 128 ビットの数値を定義します。
    デフォルトでは、既知のゴールデンキーが使用されます。これらのキーの値は次のとおりです。
    • ホストMACキー
      0x00、0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88、0x99、0xAA、0xBB、0xCC、0xDD、0xEE、0xFF
    • ホスト暗号キー 0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF、0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF
  3. ホスト MAC キーとホスト暗号キーを STSAFE-A110/STSAFE-A120 のそれぞれのスロットに保存します。
  4. ホスト MAC キーとホスト暗号キーを STM32 のフラッシュ メモリに保存します。

鍵確立(対称鍵AES-128 CMAC)
このデモでは、STSAFE-A110 デバイスがデバイス (IoT デバイスなど) にマウントされ、リモート サーバーと通信し、データを交換するために安全なチャネルを確立する必要がある場合を示します。
この例ampたとえば、STM32 デバイスは、リモート サーバー (リモート ホスト) と STSAFE-A110 デバイスに接続されているローカル ホストの両方の役割を果たします。
このユースケースの目的は、STSAFE-A110の静的(ECDH)または一時(ECDHE)キーを使用した楕円曲線Diffie-Hellman方式を使用して、ローカルホストとリモートサーバー間で共有秘密を確立する方法を示すことです。
共有秘密は、さらに 1 つ以上の作業キーに導出される必要があります (ここでは図示されていません)。これらの作業キーは、TLS などの通信プロトコルで使用できます。ampローカル ホストとリモート サーバー間で交換されるデータの機密性、完全性、信頼性を保護するためのファイル。

コマンドの流れ
図 4. キー確立コマンド フローはコマンド フローを示しています。

  • リモートホストの秘密鍵と公開鍵はコード内にハードコードされている。ampル。
  • ローカル ホストは、STSAFE-A110/STSAFE-A120 に Generate Keypair コマンドを送信し、一時スロット (スロット 0xFF) にキー ペアを生成します。
  • STSAFE-A110 は、公開キー (スロット 0xFF に対応) を STM32 (リモート ホストを表す) に送り返します。
  • STM32 は、リモート ホストの秘密を計算します (STSAFE デバイスの公開キーとリモート ホストの秘密キーを使用)。
  • STM32 はリモート ホストの公開鍵を STSAFE-A110/STSAFE-A120 に送信し、API を使用してローカル ホストの秘密を計算するように STSAFE-A110/STSAFE-A120 に要求します。
  • STSAFE-A110/STSAFE-A120 は、ローカル ホストのシークレットを STM32 に送り返します。
  • STM32は2つの秘密鍵を比較し、結果を出力します。秘密鍵が一致した場合、秘密鍵の確立は成功です。

X-CUBE-STSE ソフトウェアパッケージ (1)

ローカルエンベロープをラップ/アンラップする

  • このデモンストレーションでは、STSAFE-A110/STSAFE-A120 がローカル エンベロープをラップ/アンラップして、秘密を不揮発性メモリ (NVM) に安全に保存するケースを示します。
  • 暗号化/復号化キーは、このようにして追加メモリまたは STSAFE-A110/STSAFE-A120 のユーザー データ メモリ内に安全に保存できます。
  • ラッピングメカニズムは、秘密鍵または平文を保護するために使用されます。ラッピングの出力は、AES鍵ラップアルゴリズムで暗号化されたエンベロープであり、その中に保護対象の鍵または平文が含まれています。コマンドフロー
  • ここでは、ローカル ホストとリモート ホストは同じデバイスです。
  1. ローカル エンベロープに同化されたランダム データを生成します。
  2. STSELib ミドルウェア API を使用してローカル エンベロープをラップします。
  3. 包んだ封筒を保管してください。
  4.  STSELIB ミドルウェアを使用して、ラップされたエンベロープをラップ解除します。
  5.  ラップされていないエンベロープと最初のローカルエンベロープを比較します。それらは等しいはずです。

キーペアの生成
このデモは、STSAFE-A110/STSAFE-A120デバイスがローカルホストにマウントされている場合のコマンドフローを示しています。リモートホストは、このローカルホストに対し、スロット1に鍵ペア(秘密鍵と公開鍵)を生成し、生成された秘密鍵でチャレンジ(乱数)に署名するよう要求します。
リモート ホストは、生成された公開キーを使用して署名を検証できます。
このデモは認証デモに似ていますが、次の 2 つの違いがあります。

  • 認証デモのキー ペアはすでに生成されています (スロット 0 上)。一方、この例では、ampたとえば、スロット 1 にキー ペアを生成します。STSAFE-A110/STSAFE-A120 デバイスは、スロット 0xFF にキー ペアを生成することもできますが、これはキーの確立目的のみです。
  • 認証デモの公開鍵はゾーン0の証明書から抽出されます。この例ではample、公開鍵は、Generate Keypair コマンドに対する STSAFE-A110/STSAFE-A120 応答とともに送り返されます。

コマンドの流れ
デモンストレーションの目的で、ここではローカル ホストとリモート ホストは同じデバイスです。

  1. ホストは、Generate Keypair コマンドを STSAFE-A110/STSAFE-A120 に送信し、STSAFE-A110/STSAFE-A120 は公開キーをホスト MCU に送り返します。
  2. ホストはGenerate Random APIを使用してチャレンジ(48バイトの乱数)を生成します。STSAFE-A110は生成された乱数を返します。
  3. ホストは、暗号化ライブラリを使用して、生成された数値のハッシュを計算します。
  4. ホストはSTSAFE-A110/STSAFE-A120に計算されたハッシュの署名を生成するよう要求します。
    署名生成API。STSAFE-A110/STSAFE-A120は生成された署名を返します。
  5. ホストは、ステップ 1 で STSAFE-A110/STSAFE-A120 から送信された公開鍵を使用して、生成された署名を検証します。
  6. 署名検証結果が印刷されます。

用語集

略語 意味
エーエス 高度暗号化標準
ANSI アメリカ国家規格協会
翻訳 アプリケーションプログラミングインターフェース
BSPS の ボードサポートパッケージ
CA 認証機関
CC 共通基準
C-マック コマンドメッセージ認証コード
ECCC 楕円曲線暗号
ECDH 楕円曲線ディフィー・ヘルマン
ECDHE 楕円曲線ディフィー・ヘルマン – 一時的
ウォーム Arm® 向け IAR Embedded Workbench®
ハル ハードウェアアブストラクションレイヤー
入出力 入力/出力
IARシステムズ® 組み込みシステム開発向けソフトウェア ツールおよびサービスの世界的リーダー。
IDE 統合開発環境。コンピュータプログラマーにソフトウェア開発のための包括的な機能を提供するソフトウェアアプリケーション。
IoT モノのインターネット
I²C インターインテグレーテッドサーキット(IIC)
LL 低レベルドライバー
マック メッセージ認証コード
マイレージ マイクロコントローラユニット
MDK-ARM Arm®用Keil®マイクロコントローラ開発キット
マイクロプロセッサ メモリ保護ユニット
ノーム 不揮発性メモリ
OS オペレーティング·システム
SE セキュアエレメント
シャ セキュアハッシュアルゴリズム
サービスレベル保証 ソフトウェア使用許諾契約
ST STマイクロエレクトロニクス
TLS トランスポート層セキュリティ
USB ユニバーサルシリアルバス

改訂履歴

日付 リビジョン 変更点
23年2025月XNUMX日 1 初回リリース。

重要なお知らせ – よくお読みください

  • STMicroelectronics NV およびその子会社 (以下「ST」) は、ST 製品および/またはこのドキュメントを予告なしにいつでも変更、修正、拡張、修正、および改善する権利を留保します。購入者は、注文を行う前に ST 製品に関する最新の関連情報を入手する必要があります。ST 製品は、注文確認時に適用される ST の販売条件に従って販売されます。
  • ST 製品の選択、選択、使用については購入者が単独で責任を負い、ST は購入者の製品の適用支援や設計については一切責任を負いません。
  • ST は、明示的か黙示的かを問わず、いかなる知的財産権のライセンスも付与しません。
  • ここに記載されている情報と異なる規定を伴う ST 製品を再販した場合、当該製品に対して ST が付与した保証は無効になります。
  • STおよびSTロゴはSTの商標です。ST商標に関する追加情報については、 www.st.com/商標その他すべての製品名またはサービス名は、それぞれの所有者の財産です。
  • このドキュメントの情報は、このドキュメントの以前のバージョンで以前に提供された情報に優先し、置き換えられます。
  • © 2025 STマイクロエレクトロニクス – 無断転載を禁じます

ドキュメント / リソース

ST X-CUBE-STSE01 ソフトウェア パッケージ [pdf] ユーザーマニュアル
X-CUBE-STSE01 ソフトウェアパッケージ、ソフトウェアパッケージ、ソフトウェア

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *