Windows驱动程序签名的复杂性(重新命名和重新签名OpenVPN点击驱动程序)

时间:2012-11-21 01:34:25

标签: windows driver openvpn

我不清楚司机应该如何在我的具体情况下签名。

OpenVPN有一个tap tap驱动程序,包含tap0901.sys,tap0901.cat和OemWin2k.inf文件。

当我在win7 64位上使用“devcon install OemWin2k.inf tap0901”安装它时,它会安静地安装,没有可怕的警告。

我将驱动程序重命名为ogtap100(通过将文件重命名为ogtap100.sys,ogtap100.cat并将OemWin2k.inf中的“tap0901”字符串替换为“ogtap100”,按照http://community.openvpn.net/openvpn/wiki/ManagingWindowsTAPDrivers进行重命名。 OemWin2k.inf)。

然而,当我在重命名的驱动程序上运行“devcon install OemWin2k.info ogtap100”时,我从Windows获得了一个可怕的警告,即驱动程序来自未知来源。它会安装,但我打算将它作为我的应用程序的一部分发货,因此大的可怕警告并不好。

当我运行“signtool verify / v ogtap100.cat”时,我得到:“SignTool错误:已处理证书链,但终止于信任提供程序不信任的根证书。”即使它还说根证书是“颁发给:DigiCert High Assurance EV Root CA”。

我尝试使用自己的证书(在签署常规.exe文件时有效)重新签名(signtool sign / f cert.pfx ogtap100.cat),但我得到了同样可怕的警告。

我错过了什么?

可以吗?与目录(.cat)文件有关吗?

我已阅读http://msdn.microsoft.com/en-us/windows/hardware/gg463050但它假设我自己会生成.cat文件。我已经有来自OpenVPN的.cat文件了。重命名文件和OewmWin2k.inf后,是否必须重新生成它?如果是,怎么样?

2 个答案:

答案 0 :(得分:0)

1)您确定获得了高保证digicert证书吗?他们发布的标准版本并不适合司机。改变很简单...... https://www.digicert.com/code-signing/driver-signing-in-windows-using-signtool.htm

2)如果你下载了Windows 7 DDK并做了一点“阅读意图和代码”。与仅遵循说明相反,您可以成功构建自己的驱动程序(cat和sys文件),正确地重命名和签名。  https://community.openvpn.net/openvpn/wiki/BuildingTapWindows

查看为重命名提供的一些强有力提示而生成的OemWin2k.inf。注意:时间戳需要正确,并且是(荒谬的)mm / dd / yyyy格式。

3)至于警告消息,至少可以让它正确显示您的公司名称,Windows将接受(而不是禁用)正确签名的驱动程序。

答案 1 :(得分:0)

有关驾驶员签名的详细信息,请查看 https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/0b00c9d4-dff9-4fbe-b741-768c9b39349c/practical-windows-code-and-driver-signing-discussion?forum=wdk

这是一个指向一些参考文档的总结。从inf生成.cat文件很简单。

查看语法和操作顺序。我也在使用Digicert证书。确保你有一个签发的驱动程序签名,并注意确保交叉证书是正确的。

构建脚本使用inf2cat方法,所以如果你遵循WHOLE指令(并在inf中没有告诉你的设置中搜索东西......寻找常量),那么你就是在生成。猫文件。

对于我的安装,我认为应该在生成.cat并签名之前签署.sys文件。

此外,请确保您的电脑具有所有Windows更新。这实际上确实能够“修复”具有相同错误签名的PC。 (它没有验证交叉证书所需的证书,它自动下载。)