4.2. 在具有 FIPS 140-2 兼容加密的系统上配置 Data Grid Server
FIPS (Federal Information Processing Standards)是美国联邦计算机系统的标准和准则。虽然 FIPS 由美国联邦政府开发,但很多位于私营部门使用这些标准。
FIPS 140-2 定义加密模块的安全要求。您可以使用替代 JDK 安全供应商,将 Data Grid Server 配置为使用遵循 FIPS 140-2 规格的加密密码。
4.2.1. 配置 PKCS11 加密供应商
您可以使用 SunPKCS11-NSS-FIPS
供应商指定 PKCS11 密钥存储来配置 PKCS11 加密供应商。
先决条件
-
为 FIPS 模式配置系统。您可以通过在 Data Grid 命令行界面(CLI)中发出
fips-mode-setup --check
命令检查您的系统是否启用了 FIPS 模式 -
使用
certutil
工具初始化系统范围的 NSS 数据库。 -
使用配置为启用
SunPKCS11
供应商的java.security
文件安装 JDK。这个供应商指向 NSS 数据库和 SSL 供应商。 - 在 NSS 数据库中安装证书。
OpenSSL 供应商需要一个私钥,但您无法从 PKCS alternatives 存储检索私钥。FIPS 会阻止来自 FIPS 兼容加密模块的未加密的密钥导出,因此当处于 FIPS 模式时,您无法将 OpenSSL 供应商用于 TLS。您可以使用 -Dorg.infinispan.openssl=false
参数在启动时禁用 OpenSSL 供应商。
流程
- 打开 Data Grid Server 配置进行编辑。
-
在 Data
Grid 服务器
安全域中添加服务器事件定义。 -
使用
SunPKCS11-NSS-FIPS
供应商指定 PKCS11 密钥存储。 - 保存对您的配置的更改。
密钥存储配置
XML
<server xmlns="urn:infinispan:server:13.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 加密供应商
您可以在 Data Grid 服务器配置 中配置 Bouncy Castle FIPS (Federal Information Processing Standards)加密供应商。
先决条件
-
为 FIPS 模式配置系统。您可以通过在 Data Grid 命令行界面(CLI)中发出
fips-mode-setup --check
命令检查您的系统是否启用了 FIPS 模式。 - 以 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 配置进行编辑。
-
在 Data
Grid 服务器
安全域中添加服务器事件定义。 -
使用
BCFIPS
供应商指定 BCFKS keystore。 - 保存对您的配置的更改。
密钥存储配置
XML
<server xmlns="urn:infinispan:server:13.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"