Dav*_*son 20 drivers certificate driver-signing windows-8
我在一家销售USB设备并为其提供驱动程序的公司工作.
在Windows 7中,您可以为USB设备安装和使用未签名的INF驱动程序文件,只要它们不向内核添加任何代码即可.我们公司使用Microsoft(usbser.sys和winusb.sys)提供的通用驱动程序,因此我们永远不需要签署我们的驱动程序包.
根据我们的客户和另一个Stack Overflow问题的报告,Windows 8的驱动程序签名要求发生了哪些变化?和Arduino论坛一样,听起来Windows 8 Consumer Preview有更严格的签名要求,需要所有第三方INF文件签名.人们在尝试安装适用于Windows 7的驱动程序时收到的错误消息是:
第三方INF不包含数字签名信息.
微软的官方消息是什么证实了Windows 8的最终版本仍然需要签名?来自MSDN.com的一两句就足够了,但我找不到任何东西.
我正在考虑购买签名证书,但在我支付200美元之前,我想确保从长远来看我真的需要它.新的签名要求可能只是在消费者预览中,而不是在真实版本中?
Dav*_*son 20
回答我自己的问题:是的,Windows 8的最终版本确实需要对所有INF文件进行签名,但您不需要将您的驱动程序提交给WHQL.我在" 实用Windows代码和驱动程序签名"一文中写到了这个要求以及更多内容.
小智 9
它不仅需要签署INF文件,还要求它们由WHQL证书签名,而不是用于嵌入式签名.sys文件等的证书.在INF文件上使用我的代码签名证书根本不起作用.(与未签名的问题相同.)
编辑:
这就是微软希望你思考的问题.他们说某些类别的驱动程序必须是WHQL签名,否则它们将无法工作,并且Authenticode签名仅适用于那些没有WHQL进程的人.
事实证明你是CAN Authenticode标志驱动程序包,除非你必须像现在这样内核代码一样小心并签名,这意味着为你的CA获取正确的交叉证书(来自内核模式代码签名的交叉证书,有吨)现在,包括StartCom,我有(2级,两年60美元,但不能加时间戳).提供此交叉证书(与CA的自签名证书或其中间证书不同).它只能在那个MSDN页面上通过交换机提供给SignTool/ac.
然后使用SignTool验证/kp交换机,看看你是否正确交叉签名.没有任何开关的SignTool验证要求.cat文件是WHQL签名的,而/pa之前似乎没问题的交换机现在太宽松了,只适用于非驱动程序签名(如EXE文件,ClickOnce等) .
如果您不想获得自己的内核级签名证书(现在比以前更容易,坦率地说,在它仅限于VeriSign的超级昂贵,以及GlobalSign每年200美元的签名证书之前,我想微软看到的不是许多人为x64系统编写了内核级漏洞利用程序,你可以创建一个自签名的根CA,让你的驱动程序安装程序将它安装到LocalMachine的"受信任的根证书颁发机构"商店(请参阅参考资料certmgr.exe),然后安装.cat文件.由那签署.当然,由于这不是内核级代码证书,您必须只使用已经拥有其他人嵌入式内核级代码证书的.sys文件(这意味着,您只能修改驱动程序包中的.inf文件) .显然,有一些漏洞允许自签名证书签署.cat文件(如果您创建了自己的CA,然后用它签署了证书,然后使用它签署了.cat文件,它就不会像这样工作).
对于它为每个驱动程序INF包执行此操作的套件,请参阅libwdi,以及它们在cat文件上的自签名证书如何允许在Windows 8上安装.
EDIT2:
删除了CERTUM"开源"开发人员证书提及,因为它未经Microsoft交叉认证(您获得的不是Certum TRUSTED NETWORK,Microsoft交叉认证).
| 归档时间: |
|
| 查看次数: |
15085 次 |
| 最近记录: |