自 2023 年 6 月起,所有代码签名证书都将在符合 FIPS 标准的预配置安全 USB 设备上签发。这意味着代码签名证书不再像以前那样,只能从证书供应商或经销商处下载,然后本地安装在构建机器上。
自 2023 年 6 月起,所有代码签名证书都将在符合 FIPS 标准的预配置安全 USB 设备上签发。这意味着代码签名证书不再像以前那样,只能从证书供应商或经销商处下载,然后本地安装在构建机器上。
一旦公司的验证过程成功,USB设备将通过快递运送到该公司供使用。
USB 加密狗将包含证书(可以导出)以及私钥,但是私钥不能从 USB 加密狗中导出,这意味着 USB 加密狗始终需要插入,并且可以访问以进行任何代码签名。
这对在 Microsoft Hyper-V 下运行的虚拟机提出了特殊的挑战。
那么,当虚拟机上没有物理 USB 端口时,如何在 HyperV 虚拟机上使用 USB 设备呢?
答案是使用 HyperV 服务器上的 USB 端口,然后使用“USB 直通”功能,以便客户端计算机能够看到它。
通常,这是通过在 HyperV 服务器和虚拟机上启用“增强会话模式”,然后配置远程桌面连接以共享或“直通”驱动器、USB 设备和其他连接的东西来实现的。
然后,当通过“删除桌面连接”连接到 HyperV 客户端计算机时,您将使用连接对话框上的**“本地资源”**选项卡,检查您希望虚拟 PC“看到”的相关设备/端口/驱动器等,然后连接。
看起来应该可以……但实际上不行。
尽管进行了这些设置,你的虚拟电脑仍然无法识别 USB 加密狗。
无论你做了什么配置,HyperV 似乎都无法与 USB 加密狗兼容。
解决方案分为两部分:
无法使用 Microsoft 远程桌面连接 (RDP) 会话连接到虚拟机。同样,您也无法使用“vmconnect”,也无法通过 HyperV 服务器本身使用 HyperV 进行连接。所有这些基于 Microsoft 的连接方法都会阻止对 USB 加密狗的访问,无论您使用何种配置设置。
解决方案是使用其他远程连接方法。
TightVNC可用于连接到 HyperV 客户端,并且不会阻止对 USB 加密狗的访问。在虚拟客户端(服务器模式)上安装 TightVNC,并使用客户端模式进行基于客户端的远程访问。
当您需要查看、使用或配置 USB 加密狗时,需要使用 TightVNC。
可以使用第三方软件实现 USB 直通,以完成 HyperV 无法实现的功能。
www.virtualhere.com是一家以合理的价格提供此软件解决方案的公司,并且有一个允许概念验证的试用模式。
在 HyperV服务器以及 HyperV客户端上下载并安装 VirtualHere 。
在 HyperV 主机上安装VirtualHere Server并运行它。
在HyperV 客户端上安装VirtualHere Client并运行它。它将显示插入 HyperV 服务器的所有 USB 设备的列表。
右键单击eToken 5510+ FIPS,然后选择“使用此设备”。
您现在应该能够从 Windows 系统托盘中看到 USB 密钥
## 安装 USB 加密狗驱动程序和软件
一旦 USB 加密狗出现在 HyperV 客户端中,您现在就可以下载并安装用于管理 USB 加密狗的驱动程序和软件。
https://knowledge.digicert.com/solution/how-to-install-the-safenet-drivers-and-client-software-windows.html
安装驱动程序后,您必须安装 Windows DigiCert 硬件证书安装程序。
https://www.digicert.com/StaticFiles/DigiCertHardwareCertificateInstaller.zip
DigiCert 有此指南可供您遵循(从步骤 6-7 开始):
https://knowledge.digicert.com/solution/e-token-setup-and-certification-installation.html
配置 USB 加密狗并包含代码签名证书后,请使用 SafeNet 身份验证客户端软件进行配置,以便每次签名文件时都无需输入密码。
使用**“客户端设置”>“高级”选项卡**
将ssl导出到本地计算机以供使用。
打开 SafeNet 身份验证客户端并点击证书。使用工具栏中的“导出”选项将证书导出为 .cer 文件。
将其保存到磁盘的某个位置。该文件将在代码签名过程中使用。
## 复制证书详细信息以供 Microsoft SignTool.exe 使用
为了使用代码签名证书对文件进行签名,您需要从证书中提取一些信息。这些信息将用作签名过程中的参数。复制加密提供程序
的名称。它应该是:eToken Base Cryptographic Provider。复制容器名称。它的格式为 p11#xxxxxxxxxxxxxxxxx。
## 签名文件
使用 Microsoft SignTool 对文件进行数字签名。使用代码签名证书中的参数为签名工具构建命令行。
示例命令行
signtool.exe 签名 /v /d ContentDescriptionGoesHere /du DescriptionURLGoesHere /fd sha256 /tr http://timestamp.digicert.com /td sha256 /f "C:\Certificate Location\CodeSigning Cert.cer" /p TopSecretPasswordGoesHere /csp "eToken Base Cryptographic Provider" /kc ContainerNameGoesHere "c:\Files\FileToSign.dll"
请参阅此处的 Microsoft SignTool 文档:
https://learn.microsoft.com/en-us/windows/win32/seccrypto/signtool
推荐申请,价格随时改变!