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"