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

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

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

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

  1. 从证书颁发机构(CA)购买代码签名证书,Microsoft还会颁发跨证书。 内核模式代码签名的跨证书主题提供了 Microsoft 所提供的 CA 列表及其相应的跨证书。 请注意,这些证书是唯一链接到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>
  • <交叉证书_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 桌面版的应用程序安全性 论坛以获取帮助。