コンテンツにスキップ

概要

wolfHSMは、暗号操作・鍵管理・不揮発性ストレージの制御など、HSM操作用の統合APIを提供するソフトウェアフレームワークです。 HSMアプリケーションに関連するコードの移植性を向上させるように設計しており、ベンダー固有のライブラリ呼び出しに縛られることなく、強力なセキュリティ機能を多くのハードウェア上で容易に使用できるようにします。 wolfCrypt APIを直接使用できるため、クライアントアプリケーションが大幅に簡素化されます。ライブラリは、クライアントアプリで追加のロジックを必要とせずに、すべての機密性の高い暗号化操作をリモートプロシージャコールとしてHSMコアに自動的にオフロードします。

当初、主に自動車に搭載されるHSM対応マイクロコントローラを対象としていました。 しかし現在では、自動車に限らずあらゆるユースケースにおいてPKCS11やAUTOSAR SHEなどの標準化されたインターフェイスとプロトコルをサポートできるようにしました。 プラットフォームに将来追加される機能をサポートすることのできる、拡張可能なソリューションです。wolfCrypt以外の外部依存はなく、ほぼすべての実行環境に移植可能です。

機能

  • ユーザーベースの権限による安全な不揮発性オブジェクトストレージ
  • ハードウェアキーをサポートする暗号鍵管理
  • 互換性のあるデバイスに対するハードウェア暗号化サポート
  • 完全に非同期のクライアントAPI
  • 柔軟なコールバックアーキテクチャにより、ライブラリを変更せずにカスタムユースケースを実現
  • wolfCrypt APIをクライアントで直接使用し、HSMコアに自動的にオフロード
  • 信頼チェーンをサポートするイメージマネージャー
  • AUTOSARとの統合
  • SHE+との統合
  • PKCS11インターフェイスを使用可能
  • TPM 2.0インターフェイスを使用可能
  • Secure OnBoard Communication (SecOC) モジュール統合を使用可能
  • 証明書の処理
  • 共通鍵暗号・公開鍵暗号の両方に対応
  • 半導体ベンダーによって実装されたアルゴリズムだけでなく、wolfCryptに実装されているすべてのアルゴリズムを提供することで、「暗号アジリティ」をサポート
  • FIPS 140-3認証を取得可能

アーキテクチャ

wolfHSMは、サーバーが信頼できる安全な環境(通常は安全なコプロセッサ上)で実行され、クライアントがライブラリであるクライアントサーバーモデルを採用しています。このアーキテクチャにより、機密性の高い暗号化操作と鍵管理がサーバー内で安全に処理され、クライアントライブラリがサーバーとのレイヤーの低い通信を抽象化します。

  • サーバー: wolfHSMのサーバーコンポーネントは、HSMコアで実行されるスタンドアロンアプリケーションです。安全な環境内で暗号化操作、鍵管理、不揮発性ストレージを処理します。サーバーはクライアントからの要求を処理し、結果を返す役割を担います。

  • クライアント: wolfHSMのクライアントコンポーネントは、ユーザーアプリケーションにリンクできるライブラリです。サーバーに要求を送信し、応答を受信するためのAPIを提供します。クライアントは、通信の複雑さを抽象化し、アプリケーションがHSMと安全かつ効率的に対話できるようにします。

ポート

wolfHSM自体には特定のハードウェアと対話するためのコードは含まれておらず、単体では実行できません。 wolfHSMをデバイスで実行するには、サーバ アプリケーションがクライアントと通信して実行できるように、必要なハードウェアドライバーと抽象化レイヤーを使用してライブラリを構成する必要があります。具体的には、次の要素が必要です。

  • サーバーアプリケーションの起動とハードウェアの初期化
  • サーバーにおけるwolfCrypt構成
  • サーバーの不揮発性メモリ構成
  • サーバーとクライアントのトランスポート構成
  • サーバーとクライアントの接続処理

これらの要件を提供し、サーバーAPIを起動可能なアプリケーションにラップするコードを、wolfHSM「ポート」と呼んでいます。

wolfHSMの公式ポートは、サポートされているさまざまなアーキテクチャ用に提供しています。それぞれのポートには次のものが含まれます。

  • スタンドアロンリファレンスサーバーアプリケーション: このアプリケーションは、HSMコアで実行され、すべての安全な操作を処理することを目的としています。すぐに使用できる状態で完全に機能しますが、エンドユーザーがカスタマイズして追加のユースケースをサポートすることもできます。
  • クライアントライブラリ: このライブラリは、ユーザーアプリケーションにリンクして、サーバーとの通信を容易にします。

対応状況

本章執筆時点において、次のデバイス/環境のポートをサポートしています。

  • POSIX ランタイム
  • ST Micro SPC58N*
  • Infineon Aurix TC3xx*
  • Infineon Aurix TC4xx* (近日対応予定)
  • Infineon Traveo T2G* (近日対応予定)
  • Renesas RH850* (近日対応予定)
  • NXP S32* (近日対応予定)

ここに示した環境のほか、いくつかの環境へのポートを現在準備中です。

* 残念ながら、これらのポートでは、HSMコアに関する情報を取得するためにシリコンベンダーとのNDAが必要です。したがって、これらのプラットフォームのwolfHSMポートは一般には公開しておりません。ご興味がございましたら、info@wolfssl.jp までお問い合わせください。