4.2. FIPS 140-2 準拠の暗号を使用するシステムでの Data Grid Server の設定
FIPS (Federal Information Processing Standards) とは、米国連邦政府のコンピューターシステムの標準およびガイドラインです。FIPS は米国連邦政府が使用するために開発されたものですが、民間部門の多くは自発的にこれらの標準を使用しています。
FIPS 140-2 は、暗号モジュールに対するセキュリティー要件を定義しています。代替の JDK セキュリティープロバイダーを使用することで、FIPS 140-2 仕様に準拠する暗号化方式を使用するように Data Grid Server を設定することができます。
4.2.1. PKCS11 暗号プロバイダーの設定
SunPKCS11-NSS-FIPS
プロバイダーで PKCS11 キーストアを指定すると、PKCS11 暗号化プロバイダーを設定できます。
前提条件
-
FIPS モード用にシステムを設定する。システムが FIPS モードを有効にしているかどうかは、Data Grid のコマンドラインインターフェイス (CLI) で
fips-mode-setup --check
コマンドを発行することで確認できます。 -
certutil
ツールを使用して、システム全体の NSS データベースを初期化します。 -
SunPKCS11
プロバイダーを有効にするようにjava.security
ファイルを設定した JDK をインストールします。このプロバイダーは、NSS データベースと SSL プロバイダーを指します。 - NSS データベースに証明書をインストールします。
OpenSSL プロバイダーは秘密鍵を必要としますが、PKCS#11 ストアから秘密鍵を取得することはできません。FIPS では、FIPS 準拠の暗号モジュールから暗号化されていない鍵のエクスポートをブロックしているため、FIPS モードでは TLS 用の OpenSSL プロバイダーを使用することはできません。起動時に -Dorg.infinispan.openssl=false
引数で OpenSSL プロバイダーを無効にすることができます。
手順
- Data Grid Server 設定を開いて編集します。
-
server-identities
定義を Data Grid Server セキュリティーレルムに追加します。 -
SunPKCS11-NSS-FIPS
プロバイダーで PKCS11 キーストアを指定します。 - 変更を設定に保存します。
キーストアの設定
XML
<server xmlns="urn:infinispan:server:14.0"> <security> <security-realms> <security-realm name="default"> <server-identities> <ssl> <!-- Adds a keystore that reads certificates from the NSS database. --> <keystore provider="SunPKCS11-NSS-FIPS" type="PKCS11"/> </ssl> </server-identities> </security-realm> </security-realms> </security> </server>
JSON
{ "server": { "security": { "security-realms": [{ "name": "default", "server-identities": { "ssl": { "keystore": { "provider": "SunPKCS11-NSS-FIPS", "type": "PKCS11" } } } }] } } }
YAML
server: security: securityRealms: - name: "default" serverIdentities: ssl: keystore: provider: "SunPKCS11-NSS-FIPS" type: "PKCS11"
4.2.2. Bouncy Castle FIPS 暗号プロバイダーの設定
Bouncy Castle FIPS (Federal Information Processing Standards) 暗号化プロバイダーは、Data Grid サーバーの設定で設定することができます。
前提条件
-
FIPS モード用にシステムを設定する。システムが FIPS モードを有効にしているかどうかは、Data Grid のコマンドラインインターフェイス (CLI) で
fips-mode-setup --check
コマンドを発行することで確認できます。 - 証明書を含む BCFKS 形式のキーストアを作成します。
手順
-
Bouncy Castle FIPS JAR ファイルをダウンロードし、Data Grid Server のインストール先の
server/lib
ディレクトリーにファイルを追加してください。 Bouncy Castle をインストールするには、
install
コマンドを実行します。[disconnected]> install org.bouncycastle:bc-fips:1.0.2.3
- Data Grid Server 設定を開いて編集します。
-
server-identities
定義を Data Grid Server セキュリティーレルムに追加します。 -
BCFIPS
プロバイダーで BCFKS キーストアを指定します。 - 変更を設定に保存します。
キーストアの設定
XML
<server xmlns="urn:infinispan:server:14.0"> <security> <security-realms> <security-realm name="default"> <server-identities> <ssl> <!-- Adds a keystore that reads certificates from the BCFKS keystore. --> <keystore path="server.bcfks" password="secret" alias="server" provider="BCFIPS" type="BCFKS"/> </ssl> </server-identities> </security-realm> </security-realms> </security> </server>
JSON
{ "server": { "security": { "security-realms": [{ "name": "default", "server-identities": { "ssl": { "keystore": { "path": "server.bcfks", "password": "secret", "alias": "server", "provider": "BCFIPS", "type": "BCFKS" } } } }] } } }
YAML
server: security: securityRealms: - name: "default" serverIdentities: ssl: keystore: path: "server.bcfks" password: "secret" alias: "server" provider: "BCFIPS" type: "BCFKS"