TPM・HSM・セキュアエレメントの違い:置き場所・用途・鍵の守り方・認証を比較

どれも、暗号の鍵を専用のハードウェアの中で作って保管し、秘密鍵を外に出さずに署名や復号を中で行うための部品です。違いは、守る対象と置かれる場所にあります。TPMはPCやサーバに1つずつ載り、その機器の起動の状態を記録して証明し、機器に結びついた鍵を守ります。HSMは組織の重要な鍵をまとめて預かる専用の装置で、認証局や決済、クラウドの鍵管理サービスの中心にあり、大量の署名や復号をこなします。セキュアエレメントはICカードやスマートフォンに入る小さな耐タンパ性のチップで、決済や身元認証の資格情報を持ち歩く機器の中で守ります。

項目TPMHSMセキュアエレメント
置かれる場所・形PCやサーバのマザーボードに載る独立したチップ。CPUやSoCの中のファームウェアとして実現したもの(fTPM)もあるPCIeのカード、ネットワークにつなぐ専用の装置。クラウドのサービスとしても提供されるICカード、SIMカード、スマートフォンやIoT機器の基板に載る小さなチップ。SoCの中に組み込む形もある
主な目的その機器の起動の状態を記録して証明し、機器に結びついた鍵を守る組織の重要な鍵をまとめて守り、多くのシステムからの署名や復号の依頼を受けて処理する決済や身元認証、通信事業者の加入者認証などの資格情報を、持ち歩く機器の中で守る
主に使う機器・利用者PC、サーバ認証局、銀行や決済の事業者、データセンターやクラウドの鍵管理サービス(KMS)クレジットカードや社員証などのICカード、SIM、スマートフォン、IoT機器
鍵の守り方鍵をTPMの中で作り、秘密鍵の部分を平文で外に出さない。PCRの値に結びつけて、起動の状態が正しいときだけ鍵を渡すシーリングもできる鍵を装置の中で作って保管し、アプリケーションは「この鍵で署名して」と依頼して結果だけを受け取る。利用者の権限と操作の記録を管理する鍵や資格情報をチップの中に保管し、チップの中のアプリケーション(アプレット)が認証や署名を行う
暗号処理の性能低い。大量のデータの暗号化は、TPMが渡した鍵を使ってCPUで行う高い。多数の署名や鍵の操作を続けて処理できるように作られている低い。短いデータの認証や署名に向く
耐タンパ性と認証独立したチップは耐タンパ性をもつ。fTPMはメインのプロセッサの保護に頼る。製品によって、コモンクライテリアやFIPS 140の認証を受ける装置を開けようとするのを検知すると鍵を消去する。多くの製品がFIPS 140-3などの基準による認証を受けているスマートカード級の耐タンパ性をもち、サイドチャネル攻撃や故障注入攻撃への対策も評価される。コモンクライテリア(ISO/IEC 15408)による評価を受けたものが多い
アテステーション中心の機能。PCRの値に、TPMの外に出せない鍵で署名して(クォート)、リモートアテステーションに使う中心の機能ではない。鍵が装置の中で作られ、外に出せないことを示す証明を出せる製品もある鍵がチップの中で作られたことや、本物のチップであることを示すのに使われる
コスト・大きさ安い。PCの部品の1つで、fTPMなら追加の部品がいらない最も高価で大きい。止められない用途では、冗長化のために複数台を使う最も小さく、カードや小さな機器に入る。大量に作られるので1個あたりは安い
代表的な使い方ディスク暗号化の鍵のシーリング、測定ブート、ネットワークにつなぐ前の機器の健全性の確認認証局の署名鍵、決済の鍵、KMSの最上位の鍵、ソフトウェアに付けるコード署名の鍵非接触の決済、SIM・eSIMの加入者認証、電子パスポートや身分証、IoT機器の機器認証

数値は代表的な目安で、世代や製品によって異なります。

どんなときに使うか

TPM
PCやサーバで、起動の状態に結びつけて鍵を守りたいとき(ディスク暗号化など)や、その機器が正しいソフトウェアで起動したことをサーバに証明したいとき。
HSM
認証局の署名鍵や決済の鍵のように、組織にとって最も重要な鍵を、多くのシステムから使いながら1か所で守りたいとき。認証を受けた装置で鍵を扱うことが、規則や監査で求められるときにも使います。
セキュアエレメント
カードやスマートフォン、IoT機器のように、攻撃者の手に渡りうる機器の中で、決済や身元認証の資格情報、機器ごとの鍵を物理的な攻撃から守りたいとき。
組み合わせ
1つのシステムで併用するのがふつうです。例えば、サーバの起動の状態はTPMで証明し、サービスの重要な鍵はHSMで守り、利用者のスマートフォンではセキュアエレメントが決済の鍵を守ります。

よくある質問

TPMとHSMは、何が違うのですか?

TPMは1台の機器に載り、その機器の起動の状態を記録して証明し、機器に結びついた鍵を守る部品で、処理は遅めです。HSMは組織の重要な鍵をまとめて預かる専用の装置で、多くのシステムからの署名や復号の依頼を高い性能で処理します。鍵を外に出さずに中で処理する考え方は共通で、規模と役割が違います。

セキュアエレメントとTEEは同じものですか?

違います。セキュアエレメントは、自分のプロセッサとメモリをもつ独立した耐タンパ性のチップです。TEE(信頼できる実行環境)は、ArmのTrustZoneのように、メインのプロセッサの中に分離された実行環境を作るもので、コアやキャッシュを通常のOSと共有します。スマートフォンでは、TEEで指紋の照合などを行い、最も価値の高い鍵はセキュアエレメントで守るというように、両方を使うことがよくあります。

fTPMは、独立したTPMのチップと同じくらい安全ですか?

使い方(インタフェース)は同じですが、守り方が違います。fTPMはメインのプロセッサの中の分離された環境で動くので、別のチップを載せずに済む一方、プロセッサのファームウェアの脆弱性やサイドチャネル攻撃の影響を受けえます。独立したチップは、物理的な攻撃への耐性を専用に作り込めます。どちらを選ぶかは、想定する攻撃によります。

FIPS 140-3とコモンクライテリアは、何が違うのですか?

FIPS 140-3は、米国とカナダの制度で使われる、暗号モジュールのセキュリティの要件を定めた基準で、要件の厳しさを4つのセキュリティレベルに分けています。コモンクライテリア(ISO/IEC 15408)は、製品ごとに定めたセキュリティの目標に対して、どこまで深く評価したかを評価保証レベル(EAL)などで示す国際規格です。HSMはFIPS 140-3、ICカードやセキュアエレメントはコモンクライテリアで評価されることが多いですが、両方を受ける製品もあります。

理解度チェック

パソコンなどに搭載されるTPM(トラステッドプラットフォームモジュール)の主な役割として正しいものはどれか。

  1. A画面の表示を速くするための専用の回路
  2. BCPUの冷却を管理する部品
  3. C鍵を安全に作って保管し、起動したソフトウェアの記録を保持して、その状態を証明するなどのセキュリティの機能を提供する
答えと解説を見る

正解:C. 鍵を安全に作って保管し、起動したソフトウェアの記録を保持して、その状態を証明するなどのセキュリティの機能を提供する

TPMは、鍵の生成と保管、暗号の処理、乱数の生成、起動したソフトウェアのハッシュ値の記録などを行う、外部から改ざんされにくいセキュリティ用のチップ(またはCPUに組み込まれた機能)です。例えば、起動の状態が正しいときだけディスクの暗号化の鍵を取り出せるようにすれば、ディスクを抜き取られたり起動のソフトウェアを書き換えられたりしても、データを読まれにくくなります。

HSM(ハードウェアセキュリティモジュール)の役割として、正しいものはどれか。

  1. A暗号化したデータを大量に保存するための、暗号化の機能を内蔵した高速なストレージ装置
  2. B耐タンパ性のある装置の中で鍵を生成・保管し、鍵を外に出さずに署名や復号などの処理を行う装置
  3. Cネットワークの通信を監視して、不正なパケットや攻撃の通信を見つけて遮断するネットワーク機器
答えと解説を見る

正解:B. 耐タンパ性のある装置の中で鍵を生成・保管し、鍵を外に出さずに署名や復号などの処理を行う装置

HSMは、認証局の署名鍵や決済の鍵、クラウドの鍵管理サービス(KMS)の最上位の鍵などを守るための専用の装置です。鍵はHSMの中で生成され、平文のまま外に出せないように作られており、アプリケーションは「この鍵で署名して」などと依頼して、結果だけを受け取ります。装置を開けようとすると鍵を消去するなどの耐タンパ性をもち、多くの製品は FIPS 140-3 などの基準による認証を受けています。スマートフォンのセキュアエレメントやPCのTPMも、規模は小さいものの、似た考え方で鍵を守ります。

ICカードなどのセキュリティ用のチップに求められる耐タンパ性の説明として正しいものはどれか。

  1. Aチップが水に濡れても壊れない性質
  2. Bチップを開けたり探針を当てたりする物理的な攻撃を難しくし、検知したら鍵を消すなどして、中の秘密を守る性質
  3. Cチップが高い温度でも速く動く性質
答えと解説を見る

正解:B. チップを開けたり探針を当てたりする物理的な攻撃を難しくし、検知したら鍵を消すなどして、中の秘密を守る性質

耐タンパ性とは、チップを分解したり内部の配線に探針を当てたりして秘密を取り出そうとする攻撃に耐える性質です。表面を覆う金属の配線の網(シールド)が切られたら検知する、光や温度、電圧の異常を検知する、内部の配線を暗号化したり複雑に配置したりする、異常を検知したら鍵を消去する、などの対策を組み合わせます。サイドチャネルや故障注入への対策も含めて評価されます。

  1. リモートアテステーション(遠隔証明)の説明として正しいものはどれか。
  2. 故障注入攻撃の説明として正しいものはどれか。
  3. DEKをデータ暗号化鍵、KEKを鍵暗号化鍵とする。クラウドのストレージなどで使われる、エンベロープ暗号化の説明として正しいものはどれか。

ハードウェアセキュリティの練習問題へ

関連する用語の解説

TPM
トラステッドプラットフォームモジュール。鍵の生成と保管、起動したソフトウェアの測定値の記録、状態の証明などを行うセキュリティ用のチップや機能。
HSM(ハードウェアセキュリティモジュール)
暗号の鍵を安全に生成・保管し、鍵を外に出さずに署名や復号などの処理を中で行う専用の装置。耐タンパ性をもち、こじ開けなどを検出すると鍵を消去する。認証局の署名鍵、決済の鍵、クラウドの鍵管理サービス(KMS)の最上位の鍵などを守るのに使われる。多くの製品は、FIPS 140-3 などの基準による認証を受けている。PCIeのカードやネットワークにつなぐ装置の形のほか、クラウドのサービスとしても提供される。
耐タンパ性
チップを開けたり探針を当てたりする物理的な攻撃に耐え、検知したら鍵を消すなどして、中の秘密を守る性質。
リモートアテステーション
機器が自分の中で動くソフトウェアの状態を、チップの中の鍵で署名して遠くのサーバに示し、信頼できるかを確かめてもらう仕組み。
測定ブート
起動の各段階で次のソフトウェアのハッシュ値をTPMなどに積み重ねて記録し、後から起動の状態を確かめられるようにする仕組み。メジャードブート。
TEE(信頼できる実行環境)
通常のOSからも隔離された、ハードウェアで守られた実行環境。鍵の処理や認証などの重要な処理を行う。ArmのTrustZoneなど。
エンベロープ暗号化
データをデータ暗号化鍵(DEK)で暗号化し、そのDEKを別の鍵暗号化鍵(KEK)で暗号化(ラップ)して、データと一緒に保存する方式。KEKはKMSやHSMの中に置いて外に出さず、大きなデータは手元で暗号化できる。KEKを更新するときは、データ全体ではなく、小さなDEKだけを暗号化し直せばよい。クラウドのストレージやデータベースの暗号化で広く使われる。

関連する比較