给Windows驱动程序进行签名需要注意什么

可能很多朋友还不知道在64位版本Windows上运行驱动程序必须对其进行签署,然后Windows才会加载它们。若要签署驱动程序,则必须使用代码签名证书,这里有哪些是需要注意的呢?一起来了解一下。

1、选择什么样的证书进行签署

你可以创建自己的证书,以便在开发和测试过程中签署驱动程序。但是,对于公开发布,你必须使用受信任的根证书颁发机构(如DigiCertComodo等)颁发的代码签名证书签署驱动程序。

2、如何使用Visual Studio署驱动程序包

驱动程序包项目可以将其他项目的输出打包。 如果生成驱动程序包项目,则 Microsoft Visual Studio 将生成它所依赖的其他项目。 驱动程序包项目具有其自己的、与任何其他依赖项目分离的驱动程序签名属性,并且其驱动程序签名属性仅适用于该驱动程序包项目生成的目录(如果有)。

也就是说,驱动程序包项目不会将嵌入式签名自动添加到其他项目生成的驱动程序二进制文件中,因为可使用不同的证书来签署其他驱动程序项目,例如测试证书,此情况下的结果是该驱动程序包中的二进制文件使用一个证书意外签署,而程序包目录则使用另一个证书签署。这可能会导致性能下降。例如,如果某个引导启动驱动程序二进制文件的嵌入式签名无效,则 Windows 将无法使用其签署的证书来验证该二进制文件。而是,Windows 必须根据目录的签名来验证该二进制文件,这就会增加启动时间。

相关文章