6.6. 配置 HSM
要使用硬件安全模块(HSM),需要联邦信息处理标准(FIPS) 140-2 验证的 HSM。Red Hat Certificate System 默认支持 nShield Connect XC hardware security 模块(HSM)和 Thales Luna HSM (有关 Luna 的限制的更多信息,请参阅 第 4.4 节 “支持的硬件安全模块”)。如果在安装过程的预配置阶段使用 modutil 命令,则证书系统支持的 HSM 会自动添加到 pkcs11.txt 数据库中,如果 PKCS modprobe 库模块位于指定的安装路径中。
- 将 rhcs10.example.com 配置为 HSM 客户端机器。
请按照 HSM 供应商为特定的 HSM 品牌/模型/发行版本提供的说明进行操作。
在我们的示例中,会安装 nShield Connect XC 单元,并配置了最新的软件和固件,以遵守 FIPS 140-2 (Level 3)。在编写 RFS 软件时为 SecWorld_Lin64-12.71.0,固件为 nShield firmware 12.72.1 (FIPS certified), image 12.80.5。
6.6.1. HSM 上的 FIPS 模式 复制链接链接已复制到粘贴板!
要使用硬件安全模块(HSM),需要联邦信息处理标准(FIPS) 140-2 验证的 HSM。某些部署需要设置其 HSM 以使用 FIPS 模式。要在 HSM 上启用 FIPS 模式,请参阅 HSM 供应商文档。
- NShield Connect XC HSM
-
在 nShield Connect XC HSM 上,只能在生成 Security World 时启用 FIPS 模式,之后无法更改它。虽然生成安全世界的方法有多种,但首选方法始终使用
new-world命令。
有关如何生成 FIPS 兼容安全世界的指导,请按照 HSM 供应商文档进行操作。 - Luna HSM
-
同样,必须在初始配置期间在 Luna HSM 上启用 FIPS 模式,因为更改此策略会将 HSM 零化为安全措施。
详情请查看 Luna HSM 供应商文档。有关 Luna 限制的更多信息,请参阅 第 4.4 节 “支持的硬件安全模块”。
以下步骤可帮助您验证是否为 nShield Connect XC 和 Luna HSMs 启用 FIPS 模式。对于其他 HSM,请参考您的 HSM 制造商文档。
NShield Connect XC HSM
要验证是否在 nShield HSM 中启用了 FIPS 模式,请输入:
/opt/nfast/bin/nfkminfo
# /opt/nfast/bin/nfkminfo
在旧版本的软件中,如果 StrictFIPS140 在 state 标志中列出,则启用了 FIPS 模式。在较新的版本中,最好检查新模式行并查找 fips1402level3。在所有情况下,nfkminfo 输出中还应有一个 hkfips 密钥。
Luna HSM
验证在 Luna HSM 上是否启用了 FIPS 模式:
-
打开
lunash管理控制台 使用
hsm show命令,并验证输出是否包含文本The HSM is in FIPS 140-2 approved 操作模式。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
有关完整的流程,请参阅 HSM 供应商文档。
6.6.2. 为 HSM 设置 SELinux 复制链接链接已复制到粘贴板!
某些 HSM 要求您在安装证书系统前手动更新 SELinux 设置。下面描述了 nShield 和 Luna HSM。对于其他 HSM,请参考您的 HSM 制造商文档。
- NShield Connect XC
安装 HSM 并在开始安装证书系统前:
重置
/opt/nfast/目录中文件的上下文:restorecon -R /opt/nfast/
# restorecon -R /opt/nfast/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新启动
nfast软件。/opt/nfast/sbin/init.d-ncipher restart
# /opt/nfast/sbin/init.d-ncipher restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- Thales Luna HSM
- 在开始安装证书系统前,不需要与 SELinux 相关的操作。
有关支持的 HSM 及其限制的详情,请参考 第 4.4 节 “支持的硬件安全模块”。
6.6.3. 准备使用 HSM 安装证书系统 复制链接链接已复制到粘贴板!
在 第 7 章 安装和配置 Red Hat Certificate System 中,您在安装带有 HSM 的证书系统时,会指示使用您传递给 pkispawn 工具的以下参数:
-
pki_hsm_libfile和pki_token_name参数的值取决于您的特定的 HSM 安装。这些值允许pkispawn工具设置 HSM 并启用证书系统来连接它。 -
pki_token_password的值取决于您的特定 HSM 令牌的密码。密码可让pkispawn工具在 HSM 上创建新密钥的读写权限。 -
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
pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so
pki_hsm_modulename=nfast
请注意,您可以将 pki_hsm_modulename 的值设置为任何值。以上是一个推荐的值。
要识别令牌名称,以 root 用户身份运行以下命令:
Cardset 部分中的 name 字段的值列出了令牌名称。
设置令牌名称,如下所示:
pki_token_name=NHSM-CONN-XC
pki_token_name=NHSM-CONN-XC
SafeNet / Luna HSM 参数
对于 SafeNet / Luna HSM,如 SafeNet Luna Network HSM,请指定以下参数:
pki_hsm_libfile=/usr/safenet/lunaclient/lib/libCryptoki2_64.so pki_hsm_modulename=thalesluna
pki_hsm_libfile=/usr/safenet/lunaclient/lib/libCryptoki2_64.so
pki_hsm_modulename=thalesluna
请注意,您可以将 pki_hsm_modulename 的值设置为任何值。以上是一个推荐的值。
要识别令牌名称,以 root 用户身份运行以下命令:
label 列中的值列出了令牌名称。
设置令牌名称,如下所示:
pki_token_name=thaleslunaQE
pki_token_name=thaleslunaQE
有关 Luna 限制的更多信息,请参阅 第 4.4 节 “支持的硬件安全模块”。
6.6.4. 测试 HSM 连接 复制链接链接已复制到粘贴板!
测试 HSM 连接:
创建临时数据库:
mkdir -p /root/tmp1
# mkdir -p /root/tmp1Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -N -d /root/tmp1
# certutil -N -d /root/tmp1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 PKCS modprobe 库模块添加到数据库中:
NShield Connect XC:
modutil -dbdir /root/tmp1 -nocertdb -add nfast -libfile /opt/nfast/toolkits/pkcs11/libcknfast.so --- Module "nfast" added to database.
# modutil -dbdir /root/tmp1 -nocertdb -add nfast -libfile /opt/nfast/toolkits/pkcs11/libcknfast.so --- Module "nfast" added to database.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Thales Luna:
modutil -dbdir ~/testLuna -nocertdb -add thalesluna -libfile /usr/safenet/lunaclient/lib/libCryptoki2_64.so --- Module "thalesluna" added to database.
# modutil -dbdir ~/testLuna -nocertdb -add thalesluna -libfile /usr/safenet/lunaclient/lib/libCryptoki2_64.so --- Module "thalesluna" added to database.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
列出模块并在 "token:" 中记下 HSM 名称(例如,以下示例中的 NHSM-CONN-XC ):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示此令牌的证书:
certutil -L -d /root/tmp1 -h <token name>
# certutil -L -d /root/tmp1 -h <token name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow