与 Entrust nShield 硬件安全模块 (HSM) 的集成
PAM360 提供强大的加密方法来保护敏感数据。虽然 默认加密方法 为 AES-256 位加密,可保护数据库中的个人密码和特权数字身份,但需要更高安全性的组织可通过集成硬件安全模块 (HSM) 获得更多保障。
PAM360 与Entrust nShield HSM 实现无缝集成,通过基于硬件的数据加密提供高级安全防护。此集成使您能够对存储在 PAM360 数据库中的特权数字身份和个人密码使用基于硬件的加密。通过在 HSM 内保护您的数据加密密钥,您可以在本地环境中对其进行安全防护,并符合 FIPS 140-2 标准,从而确保特权身份的数据安全得到增强。
PAM360 支持与 Entrust nShield HSM 配合使用的两种加密模式:
- 仅模块密钥
- 软卡
本文档将引导您完成这些加密模式的详细配置流程,并介绍迁移至 Entrust nShield HSM 加密的步骤。本文档涵盖以下主题:
1. 工作流图
与 Entrust nShield HSM 的集成涉及若干关键步骤。该过程始于安装 HSM 和 Security World 软件,最终完成 PAM360 与 HSM 之间安全通信的配置与验证。请参阅下图了解完整的集成工作流。

2. 配置 Entrust nShield HSM
2.1 先决条件
在进行集成之前,请确保满足以下先决条件:
- 一个可运行的 PAM360 实例。
- 一台 nShield Connect HSM。
- PAM360 实例与 nShield 的 Security World 之间应保持良好的连接。
其他详细信息
Security World软件应安装并配置在 PAM360 运行的同一台服务器上。Entrust nShield HSM设置可位于 PAM360 服务器可访问的任何机器上,以方便两者之间的通信。
2.2 安装 Security World 软件的步骤
- 安装并配置 Security World 软件。请参阅 HSM 的 安装指南 和 《用户指南》 。
- 将 Security World 实用程序路径C:\Program Files\nCipher\nfast\bin添加到 Windows 系统路径中。
- 检查 PAM360 运行机器与 nShield Security World 之间的连接。
- 运行 anonkneti <单元 IP> 命令来验证连接。
- 该命令的输出为 <设备 ESN> <设备 KNETI 哈希值>
- 此处,ESN 指电子序列号。
- 运行 nethsmenroll <单元 IP> 命令,将 PAM360 配置为访问 nShield HSM。
- 运行以下查询实用程序以确保 HSM 已正确配置。
- 将世界文件和模块文件解压并放置在以下路径中以完成配置:
- Windows -C:\ProgramData\nCipher\Key Management Data\local
- Linux - kmdata/local
- 您可以运行本地基准测试,例如: perfcheck -m1 signing:287,以验证并优化 HSM 的性能。
- 根据贵组织的安全策略,使用new-world -i -m <模块编号> -Q >K/N<命令为您的 nShield HSM 设置创建一个安全世界。作为预防措施,请为每位具有访问权限的人员创建额外的 ACS 卡,并准备几张备用卡。
补充说明
ACS 卡组一旦创建,便无法复制。
- 运行 nfkminfo 实用程序,以确认安全世界是否正常运行。
C:\Users\Administrator>enquiry
服务器
查询回复标志 无
查询回复级别 六
序列号 ####-####-####
运行模式 运行中
...
模块 #1
查询响应标志 无
查询响应级别 六
序列号 ####-####-####
运行模式 运行中
...
C:\Users\Administrator>nfkminfo
World
generation 2
state 0x37270008 Initialised Usable ...
...
模块 #1
第 2 代
状态 0x2 可用
...
模块 #1 插槽 #0 IC 0
第 1 代
物理类型 智能卡
...
错误 OK
...
模块 #1 插槽 #1 IC 0
第 1 代
物理类型 软令牌
...
错误 OK
...
其他详细信息
- Softcard 密钥作为环境变量存储在以下路径中 C:\ProgramData\nCipher\Key Management Data\local 中,而非保存在 PAM360 数据库中。
- 建议根据所选的加密模式,将“仅模块”密钥或 Softcard 及其密钥的副本安全地保存起来。
3. 迁移至 Entrust nShield HSM 加密
请按照以下步骤将加密方式从 PAM360 的默认加密迁移至 Entrust nShield HSM 加密。
- 停止 PAM360 服务。
- 打开命令提示符,并导航至<PAM360_SERVER_HOME>\bin文件夹。
- 在命令提示符下执行以下命令:
- Windows - SwitchToHSM.bat
- Linux - sh SwitchToHSM.sh
- 在弹出的“切换至 HSM 加密”窗口中,从“HSM 解决方案”下拉菜单中选择Entrust nShield。

- 在“nShield 功能”字段中,选择“仅模块密钥”或“软卡”。
- 如果选择了“仅模块密钥”,则无需输入密码短语。
- 如果选择了“软卡”,请在相应的字段中输入软卡名称及其密码短语。

- 核对详细信息,然后单击“迁移”。
- 复制 nCipherKM.jar 文件,并将其粘贴到 <PAM360_安装目录>\lib 文件夹中
- 重启 PAM360 服务以完成 HSM 迁移。
- 要验证所应用的加密方法,请转到 PAM360 界面的“管理”选项卡,然后选择“配置”>>“加密和 HSM”。

其他详细信息
- 一旦将 Entrust nShield HSM 配置为主加密方法,若要恢复为 PAM360 加密,则需要对 PAM360 进行完全重新配置。
- 要切换回 PAM360 加密并从旧版本中恢复数据,您有两种选择:
- 导出并重新安装:从使用 HSM 加密的 PAM360 构建中导出所有资源及其密码作为备份。卸载现有的 PAM360 构建,并执行不使用 HSM 加密的全新安装。重新安装将清除现有数据,但允许您导入之前导出的资源和密码。
- 还原备份:卸载当前版本,并还原使用 PAM360 加密密钥的旧版 PAM360 备份。
- 初始配置后无法修改加密模式。
- 如果不完全重新配置 PAM360,则无法直接从SafeNet Luna HSM过渡到Entrust nShield HSM。
3.1 在高可用性环境中配置 Entrust nShield HSM 的步骤
在采用高可用性 (HA) 配置的环境中,将 Entrust nShield HSM 作为主要加密方法时,您应重新配置 HA 设置,以确保服务器之间的同步和功能正常。此过程包括在主服务器和辅助服务器上安装并配置 nShield HSM,并更新 HSM 设置以使其在高可用性环境中无缝运行。
- 在主服务器和辅助服务器上安装并配置 nShield HSM。请遵循针对您数据库类型(PostgreSQL 或 MS SQL)中提供的具体说明来设置高可用性。
- 根据您的加密模式,在高可用性设置中完成 HSM 配置。
- 仅模块密钥:在主服务器上的目录C:\ProgramData\nCipher\Key Management Data\local中查找密钥文件。复制该密钥文件并将其放置在辅助服务器的同一目录中。
- 软卡:目录C:\ProgramData\nCipher\Key Management Data\local中将包含两个软卡密钥文件。将这些文件从主服务器复制,并将其放置在辅助服务器的同一目录中。
- 将文件复制到辅助服务器后,运行主服务器和辅助服务器以完成配置过程。
注意
- 确保高可用性(HA)配置中的两台服务器均运行 PAM360 5550 版或更高版本。
- 配置 Entrust nShield HSM 后,请按照与高可用性配置类似的方式重新配置应用程序扩展和故障转移服务。
3.2 轮换 HSM 密钥的步骤
作为安全最佳实践,建议定期轮换加密密钥。要轮换 HSM 密钥,请遵循与轮换 PAM360 加密密钥相同的步骤。 点击 此处 查看在高可用性(HA)和非高可用性(非HA)环境中执行密钥轮换的操作指南。
4. 故障排除提示
如果在集成过程中遇到问题,<PAM360_Installation_Directory>\logs文件夹中的SwitchToHSM_log.txt日志文件中可能会出现以下错误。
4.1 异常
异常 #1:java.lang.NoClassDefFoundError:com/ncipher/provider/km/nCipherKM
问题: nCipherKM.jar 文件在 <PAM360_安装目录>\lib 文件夹中找不到nCipherKM.jar文件。
解决方案:要解决此问题,请将 nCipherKM.jar文件放入 安装说明中所述,将其放置在 lib 文件夹中。
异常 #2:错误 (st=DecryptFailed) : NFKM_checkpp
问题:迁移过程中提供的 Softcard 密码不正确。
解决方案:请按照 第 3 节 中概述的迁移步骤,并使用正确的 Softcard 密码短语。
4.2 错误
问题:PAM360 服务无法启动,Wrapper.log 中出现以下错误:错误 - 初始化 ManageEngine PAM360 Cryptography 时发生异常。java.lang.Exception:解密时发生异常。
解决方案:按照 步骤 3.1所述。