6.6. HSM の設定


ハードウェアセキュリティーモジュール (HSM) を使用するには、FIPS (Federal Information Processing Standard) 140-2 で検証された HSM が必要です。Red Hat Certificate System は、nShield Connect XC ハードウェアセキュリティーモジュール (HSM) と Thales Luna HSM をデフォルトでサポートしています (Luna の制限の詳細は 「サポート対象のハードウェアセキュリティーモジュール」 を参照してください)。Certificate System がサポートする HSM は、PKCS #11 ライブラリーモジュールが指定されているインストールパスにある場合、インストールの事前設定段階で modutil コマンドを使用して pkcs11.txt データベースに自動的に追加されます。

  • rhcs10.example.com を HSM クライアントマシンとして設定します。
重要

特定の HSM ブランド/モデル/リリースは、HSM ベンダーから提供された指示に従ってください。

この例では、nShield Connect XC ユニットが最新のソフトウェアとファームウェアでインストールされ、FIPS 140-2 (レベル 3) に準拠するように設定されています。この記事の執筆時点では、RFS ソフトウェアは SecWorld_Lin64-12.71.0、ファームウェアは nShield ファームウェア 12.72.1 (FIPS 認定)、イメージ 12.80.5 です。

6.6.1. HSM 上の FIPS モード

ハードウェアセキュリティーモジュール (HSM) を使用するには、FIPS (Federal Information Processing Standard) 140-2 で検証された HSM が必要です。特定のデプロイメントでは、FIPS モードを使用するように HSM を設定する必要があります。HSM で FIPS モードを有効にする場合は、HSM ベンダーのドキュメントを参照してください。

重要
nShield Connect XC HSM
nShield Connect XC HSM では、FIPS モードは Security World 生成時にのみ有効にでき、その後は変更できません。Security World を生成するにはさまざまな方法がありますが、常に new-world コマンドを使用することが推奨されます。
FIPS 準拠の Security World を生成する方法は、HSM ベンダーのドキュメントを参照してください。
Luna HSM
同様に、Luna HSM で FIPS モードを有効にするには、初期設定時に行う必要があります。これは、このポリシーを変更すると、セキュリティー対策として HSM がゼロになるためです。
詳細は、Luna HSM ベンダーのドキュメントを参照してください。Luna の制限の詳細は、「サポート対象のハードウェアセキュリティーモジュール」 を参照してください。

以下の手順は、nShield Connect XC および Luna HSM で FIPS モードが有効になっているかどうかを確認するために役立ちます。その他の HSM は、HSM 製造元のドキュメントを参照してください。

nShield Connect XC HSM

nShield HSM で FIPS モードが有効になっているかどうかを確認するには、次のように入力します。

# /opt/nfast/bin/nfkminfo
Copy to Clipboard

古いバージョンのソフトウェアでは、StrictFIPS140 が state フラグに一覧表示されると、FIPS モードが有効になります。ただし、新しいバージョンでは、新しい mode 行を確認して fips1402level3 を検索することが推奨されます。すべてのケースで、nfkminfo 出力には hkfips キーも存在しているはずです。

Luna HSM

FIPS モードが Luna 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.
    ...
    Copy to Clipboard
注記

完全な手順は、HSM ベンダーのドキュメントを参照してください。

6.6.2. HSM 用の SELinux の設定

特定の HSM では、Certificate System をインストールする前に、手動で SELinux 設定を更新する必要があります。以下では、nShield と Luna HSM を説明しています。その他の HSM は、HSM 製造元のドキュメントを参照してください。

nShield Connect XC

HSM をインストールした後、Certificate System をインストールする前に以下を実行します。

  1. /opt/nfast/ ディレクトリーのファイルのコンテキストをリセットします。

    # restorecon -R /opt/nfast/
    Copy to Clipboard
  2. nfast ソフトウェアを再起動します。

    # /opt/nfast/sbin/init.d-ncipher restart
    Copy to Clipboard
Thales Luna HSM
Certificate System をインストールする前に、SELinux 関連のアクションは必要ありません。

サポートされている HSM とその制限の詳細は、「サポート対象のハードウェアセキュリティーモジュール」 を参照してください。

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

7章Red Hat Certificate System のインストールと設定 では、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
...
Copy to Clipboard
  • 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 の製造元のドキュメントを参照してください。

nShield HSM パラメーター

nShield Connect XC の場合は、次のパラメーターを設定します。

pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so
pki_hsm_modulename=nfast
Copy to Clipboard

pki_hsm_modulename の値は任意の値に設定できることに注意してください。上記の値は推奨値です。

トークン名を特定するには、root ユーザーとして以下のコマンドを実行します。

# /opt/nfast/bin/nfkminfo

Module #1 Slot #0 IC 1
 generation    1
 phystype      SmartCard
 slotlistflags 0x2 SupportsAuthentication
 state         0x5 Operator
 flags         0x10000
 shareno       1 (`CONNXC-1')
 shares        LTU(PIN) LTFIPS
 error         OK
Cardset
 name          "NHSM-CONN-XC"
 k-out-of-n    1/2
 flags         Persistent PINRecoveryForbidden(disabled) !RemoteEnabled
 timeout       none
 card names    "CONNXC-1" "CONNXC-2"
 hkltu         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 gentime       2021-11-17 21:19:47

Module #1 Slot #1 IC 0
 generation    1
 phystype      SoftToken
 slotlistflags 0x0
 state         0x2 Empty
 flags         0x0
 shareno       0
 shares
 error         OK
No Cardset

No Pre-Loaded Objects
Copy to Clipboard

Cardset セクションの name フィールドの値は、トークン名を一覧表示します。

以下のようにトークン名を設定します。

pki_token_name=NHSM-CONN-XC
Copy to Clipboard

SafeNet/Luna HSM パラメーター

SafeNet Luna Network HSM などの SafeNet / Luna HSM の場合は、次のパラメーターを指定します。

pki_hsm_libfile=/usr/safenet/lunaclient/lib/libCryptoki2_64.so
pki_hsm_modulename=thalesluna
Copy to Clipboard

pki_hsm_modulename の値は任意の値に設定できることに注意してください。上記の値は推奨値です。

トークン名を特定するには、root ユーザーとして以下のコマンドを実行します。

# /usr/safenet/lunaclient/bin/vtl verify

The following Luna Slots/Partitions were found:

Slot    Serial #            Label
===    ===============    =====
   0       1209461834772     thaleslunaQE
Copy to Clipboard

label 列の値にはトークン名がリストされます。

以下のようにトークン名を設定します。

pki_token_name=thaleslunaQE
Copy to Clipboard
注記

Luna の制限の詳細は、「サポート対象のハードウェアセキュリティーモジュール」 を参照してください。

6.6.4. HSM 接続のテスト

HSM 接続をテストするには以下を行います。

  1. 一時データベースを作成します。

    # mkdir -p /root/tmp1
    Copy to Clipboard
    # certutil -N -d /root/tmp1
    Copy to Clipboard
  2. PKCS#11 ライブラリーモジュールをデータベースに追加します。

    • nShield Connect XC:

      # modutil -dbdir /root/tmp1 -nocertdb -add nfast -libfile /opt/nfast/toolkits/pkcs11/libcknfast.so
      ---
      Module "nfast" added to database.
      Copy to Clipboard
    • Thales Luna:

      # modutil -dbdir ~/testLuna -nocertdb -add thalesluna -libfile /usr/safenet/lunaclient/lib/libCryptoki2_64.so
      ---
      Module "thalesluna" added to database.
      Copy to Clipboard
  3. モジュールを一覧表示し、次のステップのために "token:" の HSM 名を書き留めます (たとえば、次の例の NHSM-CONN-XC)。

    # modutil -dbdir /root/tmp1 -list
    
    1. NSS Internal PKCS #11 Module
    …
    token: NSS FIPS 140-2 Certificate DB
    …
    2. nfast
    …
    token: accelerator
    …
    token: NHSM-CONN-XC
    …
    Copy to Clipboard
  4. このトークンの証明書を表示します。

    # certutil -L -d /root/tmp1 -h <token name>
    Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat