web-dev-qa-db-ja.com

HSMとSEの違いは何ですか?

ハードウェアセキュリティモジュール(HSM)とSecure Element(SE)の違いは何ですか?両方の用語を同じ意味で使用できますか?

私はさまざまな関連する質問に遭遇しました( TMP vs. HSM および TPM vs. SE ))オンラインで見つかったさまざまなHSMおよびSE定義は非常に密接に関連していました。

Microchip ATECC608A のような安全なハードウェアベースのキーストレージを備えた暗号化コプロセッサはどのカテゴリに属しますか?

4
DurandA

ハードウェアセキュリティモジュール(HSM)、セキュアエレメント(SE) 、スマートカード信頼された実行環境(TEE)およびa セキュアなエンクレーブ(再びSE)は、セキュアな実行のために設計されたすべてのコンピューティング環境です。それらは一般的にいくつかの共通の特性を持っています:

  • それらは、ある程度の改ざん耐性を持つ隔離された環境です。データの抽出やクラックが困難になるように設計されています。
  • それらは、デバイス外のエンティティが1つの特定のデバイスと安全に通信できるようにするいくつかの固有の暗号化キーを保持しています。特に、クローンは作成できません。
  • 製造元のコードのみを実行するか、サードパーティのコードを許可する場合は、デバイスのエンドユーザーではなく、署名する必要があります。
  • 攻撃対象を減らすために、限られたインターフェースのセットを提供します。

これらのさまざまなタイプの環境の違いは、フォームファクターです。これは、さまざまな基準をどの程度満たすかに影響を与える可能性があります。たとえば、ソフトウェアによって分離された環境は、物理的な保護を備えた環境と同じレベルのサイドチャネル攻撃への耐性に到達できません。正確な定義は異なる場合があります。通常:

  • ハードウェアセキュリティモジュールは大きな箱に入っており、サーバールームにあります。ラックに独自のシェルフがあるか、PC拡張カードスロットに接続します。物理的な改ざん防止機能があり、箱を開こうとすると自己破壊するように設計されています。それは24時間年中無休で接続されており、内部にバッテリーがあり、バッテリーがなくなった場合に死亡します。物理的な接続はさまざまです。イーサネット、PCI、USBが一般的です。 HSMは通常、独自の通信プロトコルを備えていますが、少なくとも PKCS#11 インターフェースを提供します。
  • スマートカード は、通常クレジットカードサイズのプラスチックに埋め込まれたチップです。 [〜#〜] sim [〜#〜] のように小さいものもあります。プラグインされているデバイス(または 非接触 の場合は無線範囲にあるデバイス)から電力を受け取り、使用されていない間は誰かの財布に座っています。何かをスマートカードと呼ぶことは、一般的に ISO/IEC 7816 インターフェイスを意味します。
  • セキュアエレメントは爪よりも小さく、ボードにはんだ付けされているか、システムオンチップパッケージの一部である場合もあります。同じボードまたはパッケージ上の他のコンピューティング環境から完全に分離されていますが、物理的な改ざんに対する耐性がある場合とない場合があります。セキュアエレメントは、チップのバスにプラグインし、独自の論理インターフェイスを備えています(ただし、多くの場合、製造元がPKCS#11インターフェイスを上に提供します)。
    ときどき、セキュアエレメントがメインプロセッサと同じチップパッケージ内にある場合、セキュアエンクレーブと呼ばれます。これは、たとえば、Appleの安全な飛び地の場合です。ただし、「安全な飛び地」が論理的に分離されているだけで、物理的に分離されていない場合があります。
  • 信頼できる実行環境または安全なエンクレーブは、安全性の低い環境と同じプロセッサで実行されるソフトウェア環境です。ハードウェア機能に依存する小さなソフトウェア(Arm TrustZone、Intel SGXなど)によって分離されています。用語とインターフェースは、IntelとArmのどちらの世界にいるかによって異なります。

繰り返しますが、ここで私が提示しているのは、正式な定義ではなくtypical特性であることを覚えておいてください。簡単に言えば、足に落としたときに痛い場合はHSMです。財布に入れればスマートカードになります。それが取り外し不可能なスマートカードである場合、それは安全な要素です。

スマートカードの内部、小さなHSM(USBドングルサイズ)、TPM、SEなどはすべて同じです。ストレージの量、サポートされているプリミティブ/アルゴリズム、およびそれらのプリミティブで実行できる1秒あたりの操作数、およびサポートするネイティブAPIの詳細(TCG仕様を実装するには、 TPM、およびネイティブAPIに関係なく、ネイティブAPIからpkcs11のようなものに変換して、より一般的に使用できるようにすることができます)。

「より大きなSoCの一部であり、SoCの汎用CPUからI2Cを介して使用することを意図」、「以前と同じだがDMAを使用」、「NFCを介して使用することを意図」、「を意味する」を指定できますUSBポートを介して使用する」、「PCBにはんだ付けして、このバスまたはシリアルのようなバスを介して使用する」、「ラックにマウントしてイーサネットを介して使用する」をどのようなデバイスを正確に意味するかを言います。

そのチップは、適切なAPIを公開することにより、TPMやHSMなどの実装に使用できます(追加のハードウェアが必要になる場合があります)。

実際には、「SE」はマーケティング用語で、特定の技術的な意味はないようです。理解したい場合は、エンドユーザーが使用できるデバイスを意味するのか、デバイスに統合するためのコンポーネントを意味するのか、およびそのフォームファクター(および機能)を指定する必要があります。

2
Z.T.