違いは何?HSM, TPM, セキュアエンクレーブ, セキュアエレメント

Hardware Security Module (HSM)

ハードウェアセキュリティモジュール(HSM)は、デジタル鍵管理と鍵交換を保護し、デジタル署名、認証、およびその他の暗号化操作を実行する物理コンピューティングデバイスです。 これは、暗号化操作を実行するための「信頼できる」ネットワークコンピュータと考えることができます。 HSMは、次の理由で安全です:

  • 十分にテストされ、ラボで認定されたハードウェアの上に構築
  • セキュリティ重視のOSを搭載
  • ネットワークインターフェイスを介したアクセスに対して内部ルールに基づいて制限
  • 暗号化マテリアルを積極的に隠し、保護

HSMには、改ざんの目に見える兆候を示す機能、改ざんによってHSM自身を動作不能にすることを防止する機能、不正開封検出時に鍵を削除するなどの改ざん対応機能が備わっているものもあります。 多くのHSMシステムは安全なバックアップシステムを備え、安全なポータブルデバイスを使用して鍵をバックアップしてコンピュータディスクに保存したり、外部に保存することができます。 HSMは通常、FIPS 140などの国際的に認められた規格に認定されており、健全な設計と実装の独立した保証を提供します。

トラストアンカーやその他の暗号化マテリアルを保護するには専用設計されたハードウェアコンポーネントを使用することが最善です。 ハードウェアセキュリティモジュール(HSM、TPMなど)は通常、同一モジュール内でキーストレージ機能と暗号化オペレーションの高速化の両方を提供します。 wolfSSLは、HSMと同じ機能を提供しますが、i.MXシリコンに組み込まれているNXPCAAMハードウェアをサポートします。 詳細については、NXPCAAMに関するブログをご覧ください。

wolfBootの下層で機能を提供している暗号エンジンwolfCryptは、Microchip ATECC608、ARM CryptoCell、NXP CAU / mmCAU / LTC、STMicroelectronic PKAなど、この機能にアクセスするための幅広いメーカー固有のAPIから可能なすべてのスキームをサポートします。

wolfSSLは、暗号トークンを使用するためのAPIを定義するHSM標準であるPKCS#11もサポートしています。 アプリケーションまたはデバイスでwolfSSLを使用すると、ハードウェアセキュリティモジュール、スマートカード、およびその他の暗号化トークンにアクセスするためにPKCS#11を利用できるようになります。

 

Trusted Platform Module (TPM)

トラステッドプラットフォームモジュール(TPM)は、セキュア暗号化プロセッサの国際標準のことです。この規格に準拠したチップを指す場合もあります。統合された暗号化鍵を介してハードウェアを保護するように設計された特別なマイクロコントローラーです。 このマイクロコントローラーは、標準のハードウェア/ソフトウェアプラットフォームとインターフェースしますが、設計者のみ利益を享受できる(つまり他者には利益を与えない)ように機能します。 この規格はTrusted Computing Groupによってデザインされており、最新版はTPM2.0です。

TPMは次の目的で使用されます:

  • 暗号化鍵を安全に作成、保存、および使用制限します。
  • プラットフォームデバイスを認証し、TPMの一意のRSAバインド鍵を使用してデータを暗号化します。
  • セキュリティとシステム整合性の測定値を保存することにより、プラットフォームの整合性を確保します。
  • ハードウェアとソフトウェアの構成のハッシュ鍵のサマリーを作成します。これはほぼ偽造不可能であり、サードパーティがソフトウェアが変更されていないことを確認できます。これはリモートアテステーションと呼ばれます。
  • ハードウェアから乱数を生成します。

wolfTPMは、TPM 2.0準拠のセキュアエレメントにアクセスするためのAPIを提供しているライブラリです。また、ベアメタルおよび組み込みシステム用に設計された唯一のTPM 2.0ライブラリでもあります。更に、迅速な開発とテストのためのTPMシミュレーターに加えて、ネイティブのWindowsとLinuxをサポートしています。 wolfTPMでサポートされている一般的なTPMデバイスには、ST33とInfineon 9670があります。wolfTPMは移植性に富んでいるので、新しいプラットフォームでのコンパイルは非常に簡単です。 詳細については、wolfTPM製品ページをご覧ください。

Secure Enclave

セキュアエンクレーブは、システム上で実行されている他のプロセスから機密性の高いコードとデータを分離して保護するための一般的な方法になりつつあります。セキュアエンクレーブとしてよく知られているのはSGXとTrustZoneであり、どちらも信頼できる実行環境の保護に使用できます。

Trusted execution environment(TEE)は、メインプロセッサ内の安全な領域のことを指し、内部にロードされたコードとデータの機密性と整合性を保証します。 分離された実行環境としてのTEEは、分離された実行、TEEで実行されるアプリケーションの整合性、および資産の機密性などのセキュリティ機能を提供します。

Intel Software Guard Extensions(SGX)は、一部の最新のIntelCPUに組み込まれているセキュリティ関連の命令コードセットです。 SGXを使用すると、ユーザーレベルおよびオペレーティングシステムのコードでエンクレーブを定義できます。エンクレーブは、コンテンツが保護されており、外部プロセスによる読み取りや保存ができないメモリのプライベート領域です。 SGXは、メモリの一部をCPUで暗号化し、アプリケーション分離テクノロジを介してデータを保護します。 暗号化では、SGXを使用して独自のアルゴリズムと暗号化キーを隠すことができます。

SGXは、同じデバイス上で実行されている他のアプリケーションからは特権に関係なく内部を見ることができないブラックボックスと考えることができます。 これは、セキュリティの観点から、悪意のあるアクターが(root権限を含む)システムを完全に制御したとしても、そのアクターはこの「ブラックボックス」内のデータにアクセスできないことを意味します。 インテルエンクレーブは、ストレージと実行の両方を提供できるユーザーレベルのTEEの形式です。ユーザーは機密情報を保存したり、プログラムの機密部分またはアプリケーション全体を内部に移動したりできます。

wolfCrypt FIPS検証済み暗号化モジュールは、Intel SGXエンクレーブ内で実行中に検証され、Linux環境とWindows環境の両方で例が設定されています。 詳細については、wolfSSLおよびIntelSGXに関するブログをご覧ください。

Arm TrustZoneテクノロジーは、CPUに組み込まれたハードウェアによる分離により、セキュリティに対する効率的なシステム全体のアプローチを提供します。 これは、プラットフォームセキュリティアーキテクチャ(PSA)ガイドラインに基づいてデバイスの信頼のルートを確立するための完璧な出発点を提供します。 TrustZoneは、認証、支払い、コンテンツ保護、エンタープライズなど、さまざまなユースケースで価値の高いコードとデータを保護するために、何十億ものアプリケーションプロセッサで使用されています。 アプリケーションプロセッサでは、TrustZoneは、GlobalPlatformの信頼できる実行環境にセキュリティ境界を提供するために頻繁に使用されます。

wolfBootは、TEEを備えたシステムでの安全な起動のサポートを提供します。 wolfBootは、組み込み開発者に、それをサポートするCPUとマイクロコントローラー上で、セキュアワールドと非セキュアワールドを分離するための仕様に準拠するコードベースを提供します。 ARMv8 Cortex-A CPUおよびCortex-Mマイクロコントローラーでは、ARM TrustZoneテクノロジーを使用して、2つの世界をハードウェアで強制的に分離できるようになりました。 詳細については、ARMTrustZoneのwolfBootサポートに関するブログを参照してください。

Secure Element/Hardware Root of Trust

”Hardware Root of Trust”は、信頼の基点を内部に格納しているハードウエアと言う意味です。具体的には製造中にチップに秘密鍵のセットを直接埋め込み、その鍵を使用して暗号化機能を提供します。この機能によりユーザーが制御するソフトウェアでハードウェアをシミュレーションすることができなくなります。 これらの鍵は、デバイスがリセットされた後でも変更できず、公開されている鍵はメーカーのデータベースに保持されています。 公開鍵は、信頼できるベンダー制御のファームウェア(SGXのセキュアエンクレーブなど)のデジタル署名を検証するために使用され、リモート認証で使用されます。

ハードウェアルートオブトラストは、マルウェア攻撃から保護するハードウェアを使用して、安全なブートプロセスも可能にします。 単独で使用することも、プロセッサまたはシステムオンチップ(SoC)内のセキュリティモジュールとして実装することもできます。

セキュアエレメントとは、STSAFE、ATECC608などのハードウェアルートオブトラストを指していますが、TPM以外の独自のインターフェイスを提供してハードウエアを指す場合にも使います。 

セキュアエレメントは、改ざん防止のハードウェアプラットフォームであり、アプリケーションを安全にホストし、機密データと暗号化データを保存できます。 これは、ユーザーの資格情報を保護する非常に安全な環境を提供します。 セキュアエレメントが提供する機能は次のとおりです:

  • ハッキングと変更の試みの検出
  • 暗号化システム用のRoot of Trust(RoT)プラットフォームの作成
  • 秘密暗号化キーやその他の機密情報を保存するための安全なメモリ
  • 安全な乱数生成
  • 暗号化キーの生成

wolfTPM ライブラリはTPM 2.0 に準拠したセキュアエレメントにアクセスする為のAPI を提供しています。

まとめ

HSM、TPM、Secure Enclave、およびSecure Element / Hardware Root of Trustはすべて同じ機能を備えており、鍵を安全に保存し、暗号化操作を安全に実行します。 違いは、すべて独自に名前が付けられていることです。 wolfSSLは、暗号化のニーズに最適なすべての異なるスキームをサポートする製品を提供します。

 

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/difference-hsm-tpm-secure-enclave-se