6.2. ハードウェアセキュリティーモジュール
ハードウェアセキュリティーモジュール (HSM) を使用するには、FIPS (Federal Information Processing Standard) 140-2 で検証された HSM が必要です。Certificate System は、デフォルトで nCipher nShield ハードウェアセキュリティーモジュール (HSM) と Gemalto Safenet LunaSA HSM をサポートします。Certificate System がサポートする HSM は、PKCS #11 ライブラリーモジュールが指定されているインストールパスにある場合、インストールの事前設定段階で modutil
コマンドを使用して pkcs11.txt
データベースに自動的に追加されます。
6.2.1. HSM での FIPS モードの有効化
特定のデプロイメントでは、FIPS モードを使用するように HSM を設定する必要があります。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.2.2. FIPS モードが HSM で有効になっているかどうかの確認
このセクションでは、特定の HSM に対して FIPS モードが有効になっているかどうかを確認する方法を説明します。その他の HSM は、ハードウェアの製造元のドキュメントを参照してください。
6.2.2.1. FIPS モードが nCipher HSM で有効にされているかどうかの確認
完全な手順は、HSM ベンダーのドキュメントを参照してください。
FIPS モードが nCipher HSM で有効になっているかどうかを確認するには、次のコマンドを実行します。
/opt/nfast/bin/nfkminfo
# /opt/nfast/bin/nfkminfo
古いバージョンのソフトウェアでは、StrictFIPS140
が state フラグに一覧表示されると、FIPS モードが有効になります。ただし、新しいバージョンでは、新しい mode
の行を確認して fips1402level3
を検索することが推奨されます。すべてのケースで、nfkminfo
出力には hkfips
キーも存在しているはずです。
6.2.2.2. FIPS モードが Luna SA HSM で有効にされているかどうかの確認
完全な手順は、HSM ベンダーのドキュメントを参照してください。
FIPS モードが Luna SA HSM で有効になっているかどうかを確認するには、次を実行します。
-
lunash
管理コンソールを開きます。 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. ...
lunash:> hsm show ... FIPS 140-2 Operation: ===================== The HSM is in FIPS 140-2 approved operation mode. ...
Copy to Clipboard Copied!
6.2.3. HSM 用の SELinux の設定
特定の HSM では、Certificate System をインストールする前に、手動で SELinux 設定を更新する必要があります。
以下のセクションでは、対応している HSM に必要なアクションを説明します。
- nCipher nShield
HSM をインストールし、Certificate System をインストールする前に、以下を行います。
/opt/nfast/
ディレクトリーのファイルのコンテキストをリセットします。restorecon -R /opt/nfast/
# restorecon -R /opt/nfast/
Copy to Clipboard Copied! nfast
ソフトウェアを再起動します。/opt/nfast/sbin/init.d-ncipher restart
# /opt/nfast/sbin/init.d-ncipher restart
Copy to Clipboard Copied!
- Gemalto Safenet LunaSA HSM
- Certificate System をインストールする前に、SELinux 関連のアクションは必要ありません。
対応している HSM の詳細は、「サポート対象のハードウェアセキュリティーモジュール」 を参照してください。
6.2.4. HSM を使用した Certificate System のインストールの準備
「pkispawn
ユーティリティーを使用して RHCS をインストールする」 では、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 ...
...
[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
の値は、後続のpkispawn
操作で HSM を識別するために使用される名前です。文字列は、任意のものとして設定できる識別子です。これにより、pkispawn
および Certificate System は、後の操作で HSM および設定情報を名前で参照できます。
以下のセクションでは、各 HSM の設定を説明します。HSM がリストにない場合は、HSM の製造元のドキュメントを参照してください。
HSM の使用に関する詳細は、サブシステムでのハードウェアセキュリティーモジュールの使用 を参照し てください。
6.2.4.1. nCipher HSM パラメーター
nCipher HSM の場合は、以下のパラメーターを設定します。
pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast
pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so
pki_hsm_modulename=nfast
pki_hsm_modulename
の値は任意の値に設定できることに注意してください。上記の値は推奨値です。
例6.1 トークン名の特定
トークン名を特定するには、root
ユーザーとして以下のコマンドを実行します。
/opt/nfast/bin/nfkminfo
[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
pki_token_name=NHSM-CONN-XC
6.2.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_libfile=/usr/safenet/lunaclient/lib/libCryptoki2_64.so
pki_hsm_modulename=lunasa
pki_hsm_modulename
の値は任意の値に設定できることに注意してください。上記の値は推奨値です。
例6.2 トークン名の特定
トークン名を特定するには、root
ユーザーとして以下のコマンドを実行します。
/usr/safenet/lunaclient/bin/vtl verify
# /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
pki_token_name=lunasaQE