附录 4:驱动程序签名问题

下面描述了两个已知的驱动程序签名问题。

上一操作系统的签名问题

每个新版本的Windows和随后在已发布的 Service Pack 中,Microsoft 认证的 CA 供应商的根证书、具有新证书的新供应商或现有供应商都添加到 OS 映像中。 例如,Vista、XP 等。如果测试的计算机未连接到 Internet,则 OS 可能存在未知签名问题或驱动程序未签名问题。 如果受测试的计算机连接到 Internet,则安装驱动程序时会自动下载新证书,并且不会有任何问题。 有时,CA 供应商还可以帮助解决测试的计算机未连接到 Internet 时出现的问题。

代码 52 错误

当目录文件 (.cat) 使用使用 SHA256 算法的新 VeriSign 发布的签名证书签名时,Windows 7 x64 OS 存在已知 bug。 如果打开签名的 cat 文件并查看签名,然后选择“详细信息”选项卡,你会注意到以下内容:

screen shot showing the signature's hash algorithm.

若要解决此问题,可以要求 VeriSign 提供无需使用 SHA1 哈希算法签名的替换证书。

或者,可以购买另一个 SHA1 证书,并使用两个签名对文件进行签名,如下所示(如果想要保留这两个证书)。 请注意,只有.sys文件可以双签名,因为它们是 PE 文件。

Signtool sign /fd sha256 /ac C:\MyCrossCert\Crosscert.cer /s my /n “MyCompany Inc. “ /ph /as /sha1 XX...XX C:\DriverDir\toaster.SYS

其中 XX...XX 是用于辅助签名的证书的哈希。 将 /tr 添加到时间戳签名。

注意 请查看 Microsoft 安全公告 (2880823) “弃用 Microsoft 根证书计划的 SHA-1 哈希算法”,其中介绍了 Microsoft 不再允许根证书颁发机构使用 SHA-1 哈希算法颁发 X.509 证书,以便在 2016 年 1 月 1 日之后使用 SSL 和代码签名。

从 2016 年 1 月 1 日起,Microsoft 将弃用 SHA1 证书。 所有 CA 供应商都必须使用 SHA256 哈希算法颁发签名证书。

Windows将在 2016 年 1 月 1 日之后停止接受 SHA1 代码签名证书,而无需时间戳。