同时使用sha1和sha256进行代码签名?

10

由于Windows更改了其安全策略,我们计划开始使用SHA-256算法签名驱动程序文件,而不是SHA-1。但是,我们仍希望能够支持仍需要SHA-1签名的旧操作系统。

使用Microsoft的 signtool.exe,我们可以使用 /fd 标志成功地对文件进行 SHA-1 和 SHA-256 摘要算法的代码签名。然而,如果可能的话,我们希望同时使用两种算法来签名文件。这是否可能?我们希望避免有多组使用不同算法签名的驱动程序,并基于操作系统确定要安装哪一组驱动程序- 这将是我们的替代方法。

如果任何人已经有类似的经验,请解释您采取的方法。如果这不可能,请解释为什么不可能。


1
我相信这就是他们在这个教程中所做的:http://pixcl.com/Signing-Windows-8-Drivers.htm 请记住,如果您有一个内核模式驱动程序,在Windows 10中要求完全改变,您需要通过Microsoft进行签名(参考:http://blogs.msdn.com/b/windows_hardware_certification/archive/2015/04/01/driver-signing-changes-in-windows-10.aspx)。 - David Grayson
2
我还从另一位开发者那里听说,最好的方法是只使用SHA-1签名,但使用SHA-2证书。你的签名仍然在最新版本的Windows中有效。我自己还没有尝试过这些东西,但我的文章可能对你有帮助:http://www.davidegrayson.com/signing/ - David Grayson
感谢提供信息,David。如果使用SHA-2证书签名时,驱动程序签名在Windows 10上能够正常工作,那将是非常棒的。此外,感谢您提醒我们即将到来的要求,即必须通过Microsoft开发者门户签署驱动程序。这似乎可能会带来很大的麻烦。希望我们能找到一种自动化该过程的方法。虽然需要注意,但还是非常有用的。谢谢。 - ksun
该门户网站确实具有API。 - David Grayson
相关内容:仅在2019年7月强制使用SHA2,因此保留Windows 7事物的双重签名SHA1:https://support.microsoft.com/zh-cn/help/4472027/2019-sha-2-code-signing-support-requirement-for-windows-and-wsus - CAD bloke
1个回答

8

您可以通过调用signtool sign /as [签名证书参数] [文件名]将第二个证书附加到EXE/DLL/SYS上。


6
/as = 附加签名 - CJBS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接