所需的客户端软件
作为客户端连接到 SafeNet Network HSM 的每台计算机都必须安装 cryptoki 库、vtl 客户端 shell 和其他实用程序和支持文件。
每台包含或连接到 SafeNet PCIe HSM 或 SafeNet USB HSM 的计算机都必须安装 cryptoki 库和其他实用程序和支持文件。
Windows 先决条件
在 Windows Server 上安装 SafeNet Client 之前,您必须满足以下先决条件:
•安装 .NET Framework 3.5 版:其他版本的 .NET 可以同时安装在您的系统上而不会发生冲突,但 SafeNet Client 需要 3.5 版才能启动 HTL。有关更多信息,请参阅Windows Server 2012 SafeNet HSM 客户端补充配置。
•安装通用 C 运行时及其必备组件:SafeNet 客户端安装程序需要 Microsoft 通用 C 运行时 (Universal CRT) 才能正常运行。通用 CRT 要求您的 Windows 计算机保持最新版本。在运行 SafeNet 客户端安装程序之前,请确保您的计算机上已安装 Windows 中的通用 C 运行时 (KB2999226) 更新及其必备组件。必须按顺序安装以下更新:
a. 2014 年 3 月 Windows 服务堆栈更新(请参阅https://support.microsoft.com/en-us/help/2919442)
b.2014 年 4 月 Windows 更新(请参阅https://support.microsoft.com/en-us/help/2919355)
c.通用 C 运行时更新(请参阅Update for Universal C Runtime in Windows - Microsoft Support)
在 Windows Server 2008 R2 上安装 SafeNet 客户端之前:
•请参阅Microsoft 安全公告 3033929,了解Windows 7 和 Windows Server 2008 R2 中 SHA-2 代码签名支持的可用性(https://technet.microsoft.com/en-us/library/security/3033929 ),并安装相应的 Windows 更新。这允许 Windows 2008 R2 识别使用基于更安全的 SHA-256 机制的证书签名的驱动程序软件。如果没有更新,HSM 驱动程序将无法工作,并且任何已安装的 SafeNet HSM 都不会显示为插槽。
安装 SafeNet HSM 客户端软件
支持的 Windows 服务器为 64 位。它们允许运行 32 位或 64 位应用程序。
为了确保我们的 HSM 与 Windows 系统兼容,我们提供了 32 位和 64 位库,以便您根据具体情况配合应用程序使用。但我们提供的工具(lunacm、cmu、multitoken 等)仅为 64 位版本。这是因为 64 位操作系统只需要 64 位工具,但我们在此提及这一点,以防您正在寻找 32 位等效工具——因为没有 32 位版本,所以不需要。
为了确保我们的 HSM 与 Windows CAPI 兼容,我们提供了 SafeNet CSP;而为了兼容较新的 Windows CNG,我们提供了 SafeNet KSP。如果您正在使用其中任何一种,本章末尾附近的部分提供了更多具体说明。
提供交互式(提示)和非交互式(无提示)安装选项。
安装 SafeNet HSM 客户端软件
1.以“管理员”或具有管理员权限的用户身份登录 Windows(请参阅下面的故障排除提示)。
2.将 SafeNet 客户端软件 DVD 插入光驱。
3.单击开始 > 运行,然后输入:
d:\windows\64\LunaClient.exe
其中“d”是您的 CDROM 驱动器
或者使用 Explorer 浏览 CD 目录并双击相应的LunaClient.exe。
注意: 安装程序仅适用于 64 位版本。如果您使用的是 32 位应用程序,请继续进行 64 位安装,然后参阅在 SafeNet 客户端中使用 32 位应用程序。
4.在欢迎屏幕上,单击下一步。
5.接受软件许可协议。
6.在“选择目标位置”对话框中,接受提供的默认位置,或者根据需要进行更改。
7.点击选择您想要安装的任何 SafeNet 产品软件选项。标有红色“X”的选项当前已取消选择,继续操作时将不会安装。您必须至少接受 HSM 的主要功能。如果您愿意,可以全部选择 - 不会发生冲突。
安装程序包含 SafeNet SNMP 子代理,可作为任何 SafeNet HSM 的选配,SafeNet Network HSM 除外(内置代理和子代理)。对于 SafeNet PCIe HSM、SafeNet USB HSM 或 SafeNet Backup HSM,如果需要,可以将子代理包含在任意产品中 - 无论是哪款产品均可;它们是同一个子代理,并且位于硬盘上的同一位置。
安装完成后,您需要将 SafeNet MIB 文件移动到适合您的 SNMP 应用程序的目录,并且需要启动 SafeNet 子代理并进行配置以便与您的代理一起使用,如管理指南中所述。
8.在“准备安装” 页面上,单击“安装”。
如果您想修改之前的任何选择,仍然可以点击“返回”查看之前的页面。点击“安装”后,即表示您已完成安装。
9.如果 Windows 显示安全通知询问您是否希望安装 SafeNet 的设备驱动程序,请单击“安装”以接受。
注意: 如果您选择不安装驱动程序,您的 SafeNet 客户端将无法与任何本地连接的 SafeNet 硬件(包括 SafeNet PCIe HSM、SafeNet USB HSM 或 SafeNet 远程备份 HSM)一起运行。
10.安装完成后,单击“完成”。
11.确保通过 SSH 连接到 SafeNet Network HSM 的任何Windows 主机上的每个PuTTY 副本都被新客户端软件附带的 PuTTY 版本替换。
注意: 使用旧版 PuTTY 及相关工具可能会导致设备拒绝接受连接。如果安全更新对旧版本的连接施加了限制,则可能会发生这种情况。为确保兼容性,请始终使用当前客户端安装程序中包含的可执行文件版本。
一般来说,除非 SafeNet 客户支持指示,否则请勿修改 Chrystoki.conf/crystoki.ini 文件。如果您确实要修改该文件,切勿插入制表符 - 请使用单独的空格。避免修改 PED 超时设置。这些设置现在已硬编码在设备中,但 Chrystoki.conf 文件中的数字必须匹配。
12.客户端软件安装完成后,重新启动客户端计算机。
SafeNet 客户端的脚本安装或无人值守安装
如果需要,您可以编写安装脚本。每个 Linux 或 UNIX 版本都有各自的无人值守安装方法。Windows 允许您在 LunaClient.exe 命令后添加标志。
有关更多详细信息,请参阅Windows 上的脚本/无人值守安装。
Java
在安装过程中,如果您允许安装我们的 Java 安全提供程序,SafeNet Java 文件将安装在C:\Program Files\Luna Client\JSP\lib目录下。为了使用我们的 JSP,您必须在系统中单独安装 Java(JDK 或您选择的供应商提供的运行时环境)。
将 SafeNet Java 文件从其默认位置C:\Program Files\SafeNet\Luna Client\JSP\lib复制到 Java 环境目录,例如C:\Program Files\Java\jre6\lib\ext。
注意: 确切的目录可能会有所不同,具体取决于您获取 Java 系统的位置、版本以及在安装和配置时所做的任何选择。
在 64 位操作系统上使用 32 位 JDK
如果在 64 位操作系统上安装 32 位 JDK,则必须将LunaAPI.dll文件复制到C:\Windows\SysWOW64(而不是C:\Windows\System32)
Java 7 和 Java 8 库路径问题
SafeNet 传统上建议您将LunaAPI.dll放在<java install dir> /lib/ext文件夹中。
然而,Windows 版 Java 7 和 Java 8 已将该目录从 Java 库路径中移除。因此,当 Windows 上的 Java 7 或 Java 8 应用程序使用 SafeNet 提供程序时,无法找到LunaAPI.dll库,从而导致应用程序失败。
为了解决此问题,我们建议您使用以下方法之一将LunaAPI.dll添加到 Java 7 或 Java 8 搜索路径:
•将LunaAPI.dll放入任意文件夹,并将该文件夹添加到系统路径。Java 7 或 Java 8 会在系统路径中搜索LunaAPI.dll。
或者
•将LunaAPI.dll放入 Windows 系统文件夹:C:\Windows\System32
将该目标用于 32 位和 64 位
或者,在命令行中指定:“%JAVA_HOME%/jre/bin/java”-Djava.library.path =“C:\ path \to \lunaapi.dll”-jar jMultitoken.jar
有关更多 Java 相关信息,请参阅SDK 参考指南中的Java 接口。
JSP 静态注册
如果您希望所有应用程序都默认使用我们的(SafeNet)提供商,则可以选择提供商的静态注册。
一旦您的客户端使用salogin (请参阅本文档参考部分中的)或您自己的 HSM 感知实用程序进行外部登录,任何应用程序都可以使用 SafeNet 产品,而无需登录到 HSM 分区。
编辑位于 Java SDK/JRE 7 或 8 安装的 \jre\lib\security 目录中的 java.security 文件,使其内容如下:
security.provider.1=sun.security.provider.Sun security.provider.2=com.sun.net.ssl.internal.ssl.Provider security.provider.3=com.safenetinc.luna.provider.LunaProvider security.provider.4=com.sun.rsajca.Provider security.provider.5=com.sun.crypto.provider.SunJCE security.provider.6=sun.security.jgss.SunProvider
如果您的主要模式是 SafeNet HSM 操作,您可以将我们的提供程序设置为第一位以提高效率。但是,如果您的应用程序需要执行 LunaProvider 不支持的操作(例如,安全随机数生成或随机公钥验证),那么它会收到来自 HSM 的错误消息,并且需要妥善处理这些消息,然后再求助于列表中更靠后的提供程序。我们发现,将我们的提供程序设置为第三位对于大多数应用程序来说效果很好。
“java.security”文件中的修改是全局性的,可能会导致其他使用默认 KeyPairGenerator 的应用程序在未先登录 SafeNet Network HSM 的情况下崩溃。出于这种考虑,我们或许应该改用动态注册。
JSP动态注册
根据您的情况,您可能更倾向于使用动态注册提供程序,以避免对同一台计算机上运行的其他应用程序产生负面影响。此外,使用动态注册还能让您的客户尽可能轻松地完成安装。
兼容性
我们对 SafeNet HSM 和 Java 提供程序进行了正式测试,测试平台包括除 AIX 之外的所有平台,并使用 SUN JDK;此外,我们还对 AIX 平台使用 IBM JDK。OpenJDK 并未包含在我们正式测试套件中,但我们在使用 OpenJDK 时没有遇到任何问题。SafeNet JCE 提供程序符合 JCE 规范,并且应该能够与任何实现 Java 语言规范的 JVM 兼容。
偶尔会遇到与 IBM JSSE 相关的问题。
大多数 Linux 系统附带的 GNU JDK 从历史上看都是不完整且不适用的。
CSP 和 KSP
SafeNet CSP 允许您将 SafeNet HSM 与 Microsoft CAPI 一起使用,该 API 在 32 位和 64 位 Windows 上均受支持。
SafeNet KSP 允许您将 SafeNet HSM 与 Microsoft CNG 一起使用,后者更新、具有附加功能并取代了 CAPI。
这两者都需要修改 Windows 注册表。
SafeNet 云服务提供商
对于 SafeNet CSP,实用程序register.exe负责管理注册表。
只需记住根据您正在运行的应用程序运行 64 位版本、32 位版本或两者。
•注册 csp dll:
# register.exe /library
•注册分区:
# register <no argument>
SafeNet KSP
对于 SafeNet KSP,实用程序KspConfig.exe负责管理注册表。请按照SDK 参考指南中“KSP for CNG”中所述的图形化 KspConfig.exe 使用说明进行操作。只需记住根据您正在运行的应用程序运行 64 位版本、32 位版本或两者兼而有之。
注意: cryptoki.ini文件指定了 HSM 及相关软件的多项配置设置,其中一行指定了应用程序所需的 libNT 路径。请确认该路径正确。
注意: 如果在安装时选择了 SafeNet CSP (CAPI) / SafeNet KSP(CNG),则SafeNetKSP.dll文件将安装在以下两个位置:
-C:\Windows\System32(用于 64 位 KSP)
-C:\Windows\SysWOW64(用于 32 位 KSP)
将 32 位应用程序与 SafeNet 客户端结合使用
从 5.2 版本开始,SafeNet 不再支持 Windows 32 位操作系统。我们将继续提供可在 64 位 Windows 操作系统上使用的 32 位库,以支持您较旧的 32 位客户端应用程序。
SafeNet Client 32 位库(cryptoki.dll、cklog.dll等)以及 CSP 和 KSP 库和工具的版本安装在C:\Program Files\SafeNet\Luna Client\win32目录中。
win32目录内容如下:
•cklog201.dll
•cklog201.dll.sig
•加密文件
•cryptoki.dll.sig
•shim.dll
•shim.dll.sig
•jsp目录包含:
–LunaAPI.dll
如果安装了 SafeNet CSP (CAPI) / SafeNet KSP(CNG) 功能,则在win32下也会安装以下内容:
•csp 目录包含:
–keymap
–LunaCSP.dll
–LunaCSP.sig
–ms2Luna
–register
•KSP 目录包含:
–kspcmd
–KspConfig
–ksputil
–ms2Luna
为了在 64 位系统上正确使用 32 位库和工具,有两种基本方法:
直接加载库
将您的应用程序设置为加载安装在 win32 目录下的 32 位库,然后运行该应用程序。有关如何动态加载 cryptoki 库的示例,请参阅 SafeNet SDK。
这适用于任何直接指向所需库的应用程序,并代表大多数客户应用程序。
通过配置文件加载库
如果您需要在 64 位 Windows 上运行 32 位 Windows 应用程序,并且您的应用程序使用 crystoki.ini 来查找 cryptoki 库的位置(例如使用 ckbridge(不再分发)或使用 CSP 的应用程序),我们建议在 win32 目录下创建 crystoki.ini 文件的新副本以指向 32 位 cryptoki 库,如下所述:
•按照平常的方式安装 SafeNet Client 并配置 HSM 或 SA 客户端。
•创建 crystoki.ini 文件的副本并将其存储在 win32 目录中。
•修改文件(win32 目录中的副本)中的 LibNT 条目,使其指向位于 win32 目录中的 cryptoki.dll 库
LibNT=C:\Program Files\SafeNet\Luna Client\win32\cryptoki.dll
•打开一个新的 DOS 提示符(用于运行您的应用程序)。
•将 ChrystokiConfigurationPath 环境变量设置为指向 win32 目录 set
ChrystokiConfigurationPath= C:\Program Files\SafeNet\Luna Client\win32\
•运行您的应用程序。
完全可以在命令提示符窗口中运行 64 位 SafeNet 工具(例如 lunacm、ckdemo、cmu、vtl),同时在另一个命令提示符窗口中运行 32 位应用程序(使用上述 ChrystokiConfigurationPath 环境变量和 crystalstoki.ini 文件的 32 位库),并且两者不会冲突,因为环境是独立的。但是,如果您使用 SafeNet 工具对原始 crystalstoki.ini 文件进行更改,则可能会出现问题;我们将其称为主文件。您的应用程序将查找 C:\Program Files\SafeNet\Luna Client\win32\ 中的 crystalstoki.ini 文件版本,该文件不包含 SafeNet 工具所导致的更改;我们将其称为辅助文件。要解决此问题,您必须在重新启动 32 位应用程序之前,将所有更改从主 crystalstoki.ini 复制到辅助文件。
如果某个工具导致配置文件发生更改,则更改内容将与 64 位 SafeNet 工具所在目录中的文件版本一致。为了使更改对 32 位应用程序生效,您必须使用新的或修订后的条目更新 ChrystokiConfigurationPath 环境变量指向位置的配置文件副本。
示例
在设置或修改与 SafeNet Network HSM 分区的网络信任链接 (NTL) 连接时,vtl createcert、vtl addServer、vtl deleteServer和vtl replaceServer命令会修改 Crystoki.ini 文件并对 ...certs/server/CAFile.pem 进行更改。这些更改位于与 64 位工具关联的文件夹中,并且必须全部复制到 32 位应用程序的等效 .ini 文件和文件夹中。
如果您使用vtl进行任何更改,请检查 crystoki.ini 中的文件日期以及 SafeNet HSM 客户端主安装位置的 certs 文件夹的内容。如果与 32 位位置中的等效文件相比,其中任何文件有所更改,请备份 32 位 SafeNet 文件,然后将 32 位文件夹中被取代的文件替换为 64 位文件夹中的较新版本。
在 lunacm 中运行 stc enable 或 stc disable 命令将会更改 crystoki.ini 文件。请更新您保存在 32 位位置的副本以使其匹配。
卸载、修改或修复 SafeNet 客户端软件
您可能随时需要卸载 SafeNet Client,或修改安装(可能添加您以前未安装的组件或产品),或修复已安装的软件。
卸载、修改或修复 SafeNet HSM 客户端软件
1.再次运行LunaClient.exe程序。由于该软件已安装在您的计算机上,因此在您点击“欢迎”页面后,将显示以下对话框:
2.选择所需选项,点击“下一步”,然后按照提示操作。您可能会看到如下消息:
如果您在卸载 SafeNet Client 时看到该消息,请忽略。您无需重启计算机,系统也不会提示您重启。
安装后
当您将软件安装到客户端后,下一个任务是配置 SafeNet HSM,如配置指南中所述。
在运行 lunacm 或其他需要该库的实用程序之前,打开一个新的命令行/控制台窗口以允许找到库路径。
故障排除
如果您不是安装 SafeNet HSM Client 的计算机的管理员,或者您的用户配置文件中的权限包不允许您使用“以管理员身份运行”启动安装程序,则某些服务可能无法正确安装。您可以尝试让管理员为您执行安装。
另一种方法可能可行。如果您拥有足够的提升权限,则可以右键单击并以管理员身份打开命令提示符窗口。
如果该选项可用,那么您可以使用命令行移动到 LunaClient.msi 文件的位置并在那里启动它,这允许为 HTL、PedClient 和其他 SafeNet 功能加载所需的服务。
管理员权限
在 Windows 7 或 Windows 10 中,使用命令net user administrator /active:yes激活本机管理员帐户。如果管理员帐户仍然处于禁用状态,您可能需要 IT 部门或网络管理员的干预。