6.2. 硬件安全模块
要使用硬件安全模块(HSM),需要一个联邦信息处理标准(FIPS) 140-2 验证的 HSM。证书系统默认支持 nCipher nShield 硬件安全模块(HSM)和 Gemalto Safenet LunaSA HSM。如果在安装过程的预配置阶段使用 modutil
命令,则证书系统支持的 HSM 会自动添加到 pkcs11.txt
数据库中,如果 PKCS modprobe 库模块位于指定的安装路径中。
6.2.1. 在 HSM 中启用 FIPS 模式
某些部署需要设置其 HSM 以使用 FIPS 模式。要在 HSM 上启用 FIPS 模式,请参阅您的 HSM 供应商文档来了解具体说明。
- nCipher HSM
-
在 nCipher HSM 中,只有生成 Security World 时才能启用 FIPS 模式,之后无法更改它。虽然生成安全世界的方法有多种,但首选方法始终使用
new-world
命令。有关如何生成 FIPS 兼容安全 World 的指导,请按照 nCipher HSM 供应商文档进行操作。 - LunaSA HSM
- 同样,必须在 Luna HSM 上启用 FIPS 模式,因为更改此策略会将 HSM 归类为安全措施。详情请查看 Luna HSM 供应商文档。
6.2.2. 验证 HSM 上是否启用了 FIPS 模式
本节描述了如何为某些 HSM 验证是否启用了 FIPS 模式。有关其他 HSM,请参阅硬件厂商的文档。
6.2.2.1. 验证 nCipher HSM 是否启用了 FIPS 模式
有关完整的流程,请参阅 HSM 供应商的文档。
要验证在 nCipher HSM 上是否启用了 FIPS 模式,请输入:
# /opt/nfast/bin/nfkminfo
在旧版本的软件中,如果 StrictFIPS140
在 state 标志中列出,则启用了 FIPS 模式。在较新的 vesions 中,最好检查新模式行并查找 fips1402level3
。在所有情况下,
nfkminfo
输出中还应有一个 hkfips
密钥。
6.2.2.2. 验证 Luna SA HSM 上是否启用了 FIPS 模式
有关完整的流程,请参阅 HSM 供应商的文档。
验证 Luna SA HSM 上是否启用了 FIPS 模式:
-
打开
lunash
管理控制台 使用
hsm show
命令,并验证输出是否包含文本The HSM is in FIPS 140-2 approved 操作模式。
lunash:> hsm show ... FIPS 140-2 Operation: ===================== The HSM is in FIPS 140-2 approved operation mode. ...
6.2.3. 为 HSM 设置 SELinux
某些 HSM 要求您在安装证书系统前手动更新 SELinux 设置。
下面的部分描述了支持的 HSMs 所需的操作:
- nCipher nShield
安装 HSM 并在开始安装证书系统前:
重置
/opt/nfast/
目录中文件的上下文:# restorecon -R /opt/nfast/
重新启动
nfast
软件。# /opt/nfast/sbin/init.d-ncipher restart
- Gemalto Safenet LunaSA HSM
- 在开始安装证书系统前,不需要与 SELinux 相关的操作。
有关支持的 HSM 的详情,请参考 第 4.4 节 “支持的硬件安全模块”。
6.2.4. 准备使用 HSM 安装证书系统
在 第 7.2 节 “使用 pkispawn
工具安装 RHCS” 中,您在安装带有 HSM 的证书系统时,会指示使用您传递给 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 ...
-
pki_hsm_libfile
和pki_token_name
参数的值取决于您的特定的 HSM 安装。这些值允许pkispawn
工具设置 HSM 并启用证书系统来连接它。 -
pki_token_password
的值取决于您的特定 HSM 令牌的密码。密码可让pkispawn
工具在 HSM 上创建新密钥的读写权限。 -
pki_hsm_modulename
的值是一个在后续pkispawn
操作中使用的名称来标识 HSM。字符串是一个标识符,您可以原样设置。它允许pkispawn
和 Certificate System 在后续操作中按名称引用 HSM 和配置信息。
以下部分为各个 HSMs 提供设置。如果没有列出 HSM,请咨询您的 HSM 制造商文档。
6.2.4.1. nCipher HSM 参数
对于 nCipher HSM,请设置以下参数:
pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast
请注意,您可以将 pki_hsm_modulename
的值设置为任何值。以上是推荐的值。
例 6.1. 识别令牌名称
要识别令牌名称,以 root
用户身份运行以下命令:
[root@example911 ~]# /opt/nfast/bin/nfkminfo World generation 2 ...snip... Cardset name "NHSM6000-OCS" k-out-of-n 1/4 flags NotPersistent PINRecoveryRequired(enabled) !RemoteEnabled timeout none ...snip...
Cardset
部分中的 name
字段的值列出了令牌名称。
设置令牌名称,如下所示:
pki_token_name=NHSM6000-OCS
6.2.4.2. SafeNet / Luna SA HSM 参数
对于 SafeNet / Luna SA HSM,如 SafeNet Luna Network HSM,请指定以下参数:
pki_hsm_libfile=/usr/safenet/lunaclient/lib/libCryptoki2_64.so pki_hsm_modulename=lunasa
请注意,您可以将 pki_hsm_modulename
的值设置为任何值。以上是推荐的值。
例 6.2. 识别令牌名称
要识别令牌名称,以 root
用户身份运行以下命令:
# /usr/safenet/lunaclient/bin/vtl verify The following Luna SA Slots/Partitions were found: Slot Serial # Label === =============== ===== 0 1209461834772 lunasaQE
label
列中的值列出了令牌名称。
设置令牌名称,如下所示:
pki_token_name=lunasaQE