ハードウェア・セキュリティ・モジュール

**ハードウェア・セキュリティ・モジュール**（）は、秘密鍵などの機密情報を保護・管理し、デジタル署名、強力な認証、暗号化および復号処理を実行する物理的デバイスである 。これらのモジュールは、伝統的にプラグインカードや、コンピュータまたはネットワークサーバに直接接続される外部デバイスの形態をとる。ハードウェア・セキュリティ・モジュールは、セキュア暗号プロセッサのチップを含んでいる。

## 設計

ハードウェア・セキュリティ・モジュールは、ハードウェア・セキュリティ・モジュールを動作不能にせずに改ざんを困難にする耐タンパー性（tamper resistance）、あるいは改ざん検出時に鍵を削除するなどのタンパー応答性（tamper responsiveness）、改ざんの視覚的な痕跡やログ記録・警告などの耐タンパー性の証拠（tamper evidence）を保持する機能、といった特徴を持つ 。

各モジュールは、改ざんやバスプロービングを防ぐために1つ以上のセキュア暗号プロセッサチップを含む。また、耐タンパー性の証拠、耐タンパー性、タンパー応答性のあるパッケージで保護されたモジュール内のチップを含んでいる。既存のハードウェア・セキュリティ・モジュールの大多数は、主に秘密鍵を管理するために設計されている。多くのハードウェア・セキュリティ・モジュールシステムは、ハードウェア・セキュリティ・モジュールの外部で取り扱う鍵を安全にバックアップする手段を持っている。鍵はラップされた形式でバックアップされ、コンピュータディスクや他のメディアに保存されるか、スマートカードやその他のセキュリティトークンのような安全なポータブルデバイスを使用して外部に保存される。

ハードウェア・セキュリティ・モジュールは重要なインフラストラクチャにおけるリアルタイムの認可・認証に使用されるため、通常はクラスタリング、自動フェイルオーバー、冗長な現場交換可能コンポーネントなど、標準的な高可用性モデルをサポートするように設計されている。

市場で入手可能なハードウェア・セキュリティ・モジュールの中には、安全な筐体内で特別に開発されたモジュールを実行できるものもある。これは、特別なアルゴリズムやビジネスロジックを安全で管理された環境で実行する必要がある場合に有用である。モジュールは、ネイティブのC言語、.NET、Java、またはその他のプログラミング言語で開発できる。

## 認証

アプリケーションやインフラストラクチャの保護において重要な役割を果たすため、汎用ハードウェア・セキュリティ・モジュールや暗号モジュールは、通常、コモンクライテリア（例：プロテクションプロファイル EN 419 221-5、「トラストサービスのための暗号モジュール」を使用）や、FIPS 140（FIPS 140-3）などの国際的に認知された規格に従って認証される。FIPS 140で達成可能な最高のセキュリティ認証レベルはセキュリティレベル4であるが、ほとんどのハードウェア・セキュリティ・モジュールはレベル3の認証を取得している。コモンクライテリアのシステムでは、最高のEAL（評価保証レベル）はEAL7であり、ほとんどのハードウェア・セキュリティ・モジュールはEAL4+の認証を取得している。金融決済アプリケーションで使用される場合、ハードウェア・セキュリティ・モジュールのセキュリティは、PCI SSCによって定義されたハードウェア・セキュリティ・モジュール要件に対して検証されることが多い。

## 用途

ハードウェア・セキュリティ・モジュールは、デジタルキーを使用するあらゆるアプリケーションで採用されうる。通常、そのキーは価値の高いものであり、もし漏洩した場合、キーの所有者に重大かつ否定的な影響が及ぶことを意味する。

ハードウェア・セキュリティ・モジュールの機能は以下の通りである。
* オンボードでの安全な暗号鍵の生成
* オンボードでの安全な暗号鍵の保管（特に最上位かつ最も機密性の高いマスターキー）
* 鍵管理
* 暗号および機密データ素材の使用（例：復号やデジタル署名機能の実行）
* オンボードで管理していた暗号およびその他の機密データ素材の安全な削除

ハードウェア・セキュリティ・モジュールは、データベース用の透過的データ暗号化キーや、ディスクや磁気テープなどのストレージデバイス用のキーを管理するためにも導入される。

一部のハードウェア・セキュリティ・モジュールシステムは、ハードウェア暗号アクセラレータでもある。これらは通常、対称鍵操作においてはハードウェアのみのソリューションの性能を上回ることはできない。しかし、毎秒1から10,000回の1024ビットRSA署名という性能範囲を持つハードウェア・セキュリティ・モジュールは、非対称鍵操作においてCPUの負荷を大幅に軽減することができる。アメリカ国立標準技術研究所（NIST）が2010年から2048ビットRSA暗号の使用を推奨しているため、より長い鍵長での性能が重要になってきている。この問題に対処するため、現在ほとんどのハードウェア・セキュリティ・モジュールは、より短い鍵長でより強力な暗号化を実現する楕円曲線暗号（ECC）をサポートしている。

### PKI環境（認証局 ハードウェア・セキュリティ・モジュール）

PKI環境では、ハードウェア・セキュリティ・モジュールは認証局（CA）や登録局（RA）によって、非対称鍵ペアの生成、保管、取り扱いに使用されることがある。これらの場合、デバイスはいくつかの基本的な特徴を持つ必要がある。すなわち、
* 論理的および物理的な高レベルの保護
* マルチパートのユーザー認証スキーマ（秘密分散を参照）
* 完全な監査とログの追跡
* 安全な鍵のバックアップ

一方で、PKI環境におけるデバイスの性能は、オンラインおよびオフラインの両方の操作において、一般にそれほど重要ではない。なぜなら、登録局の手順がインフラストラクチャの性能のボトルネックとなるからである。

### カード決済システムハードウェア・セキュリティ・モジュール（銀行ハードウェア・セキュリティ・モジュール）

カード決済業界では、専門化されたハードウェア・セキュリティ・モジュールが使用される。ハードウェア・セキュリティ・モジュールは、取引を処理し、業界標準に準拠するために必要な汎用機能と専門機能の両方をサポートする。通常、標準のAPIは備えていない。

典型的なアプリケーションは、取引の認可と決済カードの個人化であり、次のような機能を必要とする。

* ユーザーが入力したPINが、カード発行会社が知る参照PINと一致することを確認する
* カードのセキュリティコードを確認するか、ATMコントローラやPOS端末と連携してEMVベースの取引のホスト処理コンポーネントを実行することで、クレジットカード/デビットカードの取引を検証する
* スマートカード（EMVなど）との暗号APIをサポートする
* PINブロックを再暗号化して、別の認可ホストに送信する
* 安全な鍵管理を実行する
* POS ATMネットワーク管理のプロトコルをサポートする
* ホスト間の鍵・データ交換APIのデファクトスタンダードをサポートする
* 「PINメーラー」を生成・印刷する
* 磁気ストライプカード用のデータ（PVV、CVV）を生成する
* カードキーセットを生成し、スマートカードの個人化プロセスをサポートする

銀行市場向けのハードウェア・セキュリティ・モジュールの標準を作成・維持している主要な組織は、PCI SSC、ANS X9、およびISOである。

### SSL接続の確立

HTTPS（TLS/SSL）を使用する必要があるパフォーマンスが重要なアプリケーションでは、複数の大きな整数の乗算を必要とするRSA操作を、CPUからSSLアクセラレーションハードウェア・セキュリティ・モジュールに移動させることで、計算上のメリットがある。典型的なハードウェア・セキュリティ・モジュールデバイスは、毎秒約1から10,000回の1024ビットRSA操作を実行できる 。

### DNSSEC

ますます多くのレジストリが、大規模なゾーンファイルへの署名に使用される鍵素材を保管するためにハードウェア・セキュリティ・モジュールを使用している。OpenDNSSECは、DNSゾーンファイルの署名を管理するためのオープンソースツールである。

2007年1月27日、ICANNとベリサインは、アメリカ合衆国商務省の支援を受け、DNSルートゾーンへのDNSSECの展開を開始した。 ルート署名の詳細は、Root DNSSECのウェブサイトで確認できる。

### ブロックチェーンとハードウェア・セキュリティ・モジュール

ブロックチェーン技術は暗号操作に依存している。非対称暗号を利用するブロックチェーンプロセスのセキュリティを維持するためには、秘密鍵の保護が不可欠である。秘密鍵は、画像にあるようなハードウェアウォレットなどの暗号通貨ウォレットに保管されることが多い。

ハードウェア・セキュリティ・モジュールとブロックチェーンの相乗効果はいくつかの論文で言及されており、ブロックチェーン駆動のモビリティソリューションなどの文脈で、秘密鍵の保護や身元確認におけるその役割が強調されている。

## 脚注

## 関連項目
* デジタル署名
* 耐タンパー性能
* 公開鍵基盤
* RSA暗号
* FIPS 140
* TLS/SSL
* セキュリティトークン
* Trusted Platform Module

## 外部リンク

* NIST FIPS-140認証
* ハードウェア・セキュリティ・モジュールの現在のCC認証（「Products for digital signatures」以下）
* ハードウェア・セキュリティ・モジュールのレビュー