第三方加密服务提供程序的验证码签名 (CSP)

Windows Vista 及更高版本中提供了自定义加密服务提供程序 (CSP) 的第三方验证码签名。

因此,Microsoft 将不再对 CSP 进行签名,并且手动 CSP 签名服务已停用。 发送到 cspsign@microsoft.com 或 cecspsig@microsoft.com 要签名的电子邮件和 CSP 将不再由 Microsoft 处理。

现在,所有第三方 CSP 都可以按照此过程进行自签名:

  1. 从证书颁发机构 (CA) 购买代码签名证书,Microsoft 也为其颁发了交叉证书。 内核模式代码签名的跨证书主题提供了 CA 的列表,Microsoft 也为其提供了交叉证书和相应的交叉证书。 请注意,这些是链接到 Microsoft 颁发的“Microsoft 代码验证根”的唯一交叉证书,这将使 Windows 能够运行第三方 CSP。
  2. 从 CA 获得证书和匹配的交叉证书后,可以使用 SignTool 对所有 CSP 二进制文件进行签名。
  3. SignTool 包含在最新版本的 Visual Studio 中。 它还包含在 WDK 版本 7.0 和更新版本中。 请注意,WDK 早期版本随附的 SignTool 与跨证书不兼容,不能用于对二进制文件进行签名。

注意

从 Windows 8 开始,不再需要对 CSP 进行签名。

可以从命令行对二进制文件进行签名,或在 Visual Studio 2012 及更新版本中作为集成生成步骤进行签名。

SignTool 的命令为:

signtool.exe sign /ac <cross-certificate_from_ms> /sha1 <sha1_hash> /t <timestamp_server> /d <”optional_description_in_double_quotes”> <binary_file.ext>
  • <跨certificate_from_ca> 是从 Microsoft 下载的跨证书文件
  • < > sha1_hash是对应于代码签名证书的 SHA1 指纹
  • <timestamp_server> 是用于对签名操作进行时间戳的服务器
  • <“optional_description_in_double_quotes”> 是可选的友好名称说明
  • <binary_file.ext> 是要签名的文件

例如:

signtool.exe sign /ac certificate.cer /sha1 553e39af9e0ea8c9edcd802abbf103166f81fa50 /t "http://timestamp.digicert.com" /d "My Cryptographic Service Provider" csp.dll

注意

无需在 CSP DLL 中包括资源 ID #666 或注册表中的签名,这是旧版 CSP 签名所必需的。

其他帮助和支持

你可以尝试 Windows 桌面版应用程序安全性 论坛以获取帮助。