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

ハードウェアセキュリティーモジュール (HSM) を使用するには、FIPS (Federal Information Processing Standard) 140-2 で検証された HSM が必要です。HSM をインストール、設定、および FIPS モードでセットアップする方法については、HSM のドキュメントを参照してください。

6.4.1. HSM 用の SELinux の設定

特定の HSM では、Certificate System をインストールする前に、手動で SELinux 設定を更新する必要があります。
以下のセクションでは、対応している HSM に必要なアクションを説明します。
nCipher nShield
HSM をインストールし、Certificate System をインストールする前に、以下を行います。
  1. /opt/nfast/ ディレクトリーのファイルのコンテキストをリセットします。
    # restorecon -R /opt/nfast/
  2. nfast ソフトウェアを再起動します。
    # /opt/nfast/sbin/init.d-ncipher restart
Thales Luna HSM
Certificate System をインストールする前に、SELinux 関連のアクションは必要ありません。
対応している HSM の詳細は、「サポート対象のハードウェアセキュリティーモジュール」を参照してください。

6.4.2. HSM での FIPS モードの有効化

HSM で FIPS モードを有効にするには、特定の手順については、HSM ベンダーのドキュメントを参照してください。
重要
nCipher HSM
nCipher HSM では、FIPS モードが Security World を生成する場合にのみ有効にできます。これは後で変更することはできません。Security World を生成するにはさまざまな方法がありますが、常に new-world コマンドを使用することが推奨されます。FIPS 準拠の Security World を生成する方法は、nCipher HSM ベンダーのドキュメントを参照してください。
LunaSA HSM
同様に、Luna HSM で FIPS モードを有効にするには、初期設定時に行う必要があります。これは、このポリシーを変更すると、セキュリティー対策として HSM がゼロになるためです。詳細は、Luna HSM ベンダーのドキュメントを参照してください。

6.4.3. FIPS モードが HSM で有効になっているかどうかの確認

本セクションでは、特定の HSM に対して FIPS モードが有効になっているかどうかを確認する方法を説明します。その他の HSM は、ハードウェアの製造元のドキュメントを参照してください。

6.4.3.1. FIPS モードが nCipher HSM で有効にされているかどうかの確認

注記
完全な手順については、HSM ベンダーのドキュメントを参照してください。
FIPS モードが nCipher HSM で有効になっているかどうかを確認するには、次のコマンドを実行します。
# /opt/nfast/bin/nfkminfo
古いバージョンのソフトウェアでは、StrictFIPS140 が state フラグに一覧表示されると、FIPS モードが有効になります。ただし、新しいバージョンでは、新しい mode の行を確認して fips1402level3 を検索することが推奨されます。すべてのケースで、nfkminfo 出力には hkfips キーも存在しているはずです。

6.4.3.2. FIPS モードが Luna SA HSM で有効にされているかどうかの確認

注記
完全な手順については、HSM ベンダーのドキュメントを参照してください。
FIPS モードが Luna SA HSM で有効になっているかどうかを確認するには、次を実行します。
  1. lunash 管理コンソールを開きます。
  2. hsm show コマンドを使用して、出力に The HSM is in FIPS 140-2 approved operation mode. の文字が含まれていることを確認します。
    lunash:> hsm show
    ...
           FIPS 140-2 Operation:
           =====================
           The HSM is in FIPS 140-2 approved operation mode.
    ...
    

6.4.4. HSM を使用した Certificate System のインストールの準備

pkispawn ユーティリティーの概要」 では、HSM を使用して Certificate System をインストールする場合は、pkispawn ユーティリティーに渡す設定ファイルで以下のパラメーターを使用します。
...
[DEFAULT]
##########################
# Provide HSM parameters #
##########################
pki_hsm_enable=True
pki_hsm_libfile=hsm_libfile
pki_hsm_modulename=hsm_modulename
pki_token_name=hsm_token_name
pki_token_password=pki_token_password

########################################
# Provide PKI-specific HSM token names #
########################################
pki_audit_signing_token=hsm_token_name
pki_ssl_server_token=hsm_token_name
pki_subsystem_token=hsm_token_name
...
  • pki_hsm_libfile パラメーターおよび pki_token_name パラメーターの値は、特定の HSM インストールにより異なります。これらの値により、pkispawn ユーティリティーで HSM をセットアップし、Certificate System が接続できるようになります。
  • pki_token_password の値は、特定の HSM トークンのパスワードによって異なります。パスワードは、HSM で新しいキーを作成するための pkispawn ユーティリティーの読み取りおよび書き込み権限を付与します。
  • pki_hsm_modulename の値は、HSM を識別するため、後続の pkispawn 操作で使用される名前です。文字列は、任意のものとして設定できる識別子です。これにより、pkispawn および Certificate System は、後の操作で HSM および設定情報を名前で参照できます。
以下のセクションでは、各 HSM の設定を説明します。HSM が一覧にない場合は、HSM の製造元のドキュメントを参照してください。

6.4.4.1. NCipher HSM パラメーター

nCipher HSM の場合は、以下のパラメーターを設定します。
pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so
pki_hsm_modulename=nfast
pki_hsm_modulename の値を任意の値に設定することができることに注意してください。上記の値は推奨値です。

例6.1 トークン名の特定

トークン名を特定するには、root ユーザーで以下のコマンドを実行します。
[root@example911 ~]# /opt/nfast/bin/nfkminfo
World
 generation  2

...~snip~...

Cardset
 name          "NHSM-CONN-XC"
 k-out-of-n    1/4
 flags         NotPersistent PINRecoveryRequired(enabled) !RemoteEnabled
 timeout       none

...~snip~...
Cardset セクションの name フィールドの値は、トークン名を一覧表示します。
以下のようにトークン名を設定します。
pki_token_name=NHSM-CONN-XC

6.4.4.2. SafeNet / Luna SA HSM パラメーター

SafeNet Luna Network HSM などの SafeNet / Luna SA HSM の場合は、次のパラメーターを指定します。
pki_hsm_libfile=/usr/safenet/lunaclient/lib/libCryptoki2_64.so
pki_hsm_modulename=lunasa
pki_hsm_modulename の値を任意の値に設定することができることに注意してください。上記の値は推奨値です。

例6.2 トークン名の特定

トークン名を特定するには、root ユーザーで以下のコマンドを実行します。
# /usr/safenet/lunaclient/bin/vtl verify

The following Luna SA Slots/Partitions were found:

Slot    Serial #            Label
====    ================    =====
   0       1209461834772     lunasaQE
label 列の値は、トークン名を表示します。
以下のようにトークン名を設定します。
pki_token_name=lunasaQE

6.4.5. ハードウェアセキュリティーモジュールでのキーのバックアップ

HSM に保存されている鍵と証明書を、.p12 ファイルにエクスポートすることができません。このようなインスタンスをバックアップする必要がある場合には、HSM の製造元に連絡してサポートしてください。