我们刚刚从 SHA-1 切换到 SHA-2 代码签名证书。 (作为背景信息,我们使用 COMODO 代码签名证书,使用signtool.exe 在 Windows 上对 .exe 和 .xap 文件进行签名。)我们使用经过认证的时间戳来执行此操作,以确保 Windows 在代码签名证书之后继续信任代码签名过期。
现在我注意到了时间戳证书仍然是 SHA-1 证书,当使用http://timestamp.comodoca.com/authenticode http://timestamp.comodoca.com/authenticode。 (详细信息:它是 df946a5...,主题为“CN=COMODO 时间戳签名者,O=COMODO CA Limited,L=索尔福德,S=大曼彻斯特,C=GB”。)
(在 Windows 上,可以通过签名的 .exe 来查看该证书,然后在其“资源管理器属性”对话框中转到“数字签名”选项卡,选择签名并单击“详细信息”,然后在“数字签名详细信息”对话框中单击反签名并单击“详细信息”,然后在第二个“数字签名详细信息”对话框中单击“查看证书”。如果“签名哈希算法”为“sha1”,则该证书是 SHA-1 证书。)
这会是一个问题吗?换句话说,在我们当前的代码签名证书过期之后,并且在 Microsoft Windows 将 SHA-1 视为损坏的算法之后(最晚是 2020 年),我们当前的签名是否仍然可信?或者 Windows 会说“时间戳在代码签名证书的有效范围内,但时间戳是用 SHA-1 证书签名的,所以我不会信任时间戳,因此我不会信任这个签名”?
我们可以/应该使用其他服务吗? (不是威瑞信的http://timestamp.verisign.com/scripts/timstamp.dll http://timestamp.verisign.com/scripts/timstamp.dll,因为他们仍然使用 SHA-1 时间戳证书,即。 6543992...)
自2017年1月1日起 http://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-authenticode-code-signing-and-timestamping.aspx,您不能再在 Windows 7 及更高版本上使用 SHA-1(如果时间戳在 2016 年 1 月 1 日之后)。
本文 https://support.globalsign.com/customer/portal/articles/1698751-ev-code-signing-for-windows-7-and-8描述如何使用时间戳 URL 获取 SHA-256 时间戳证书http://timestamp.globalsign.com/?signature=sha2 http://timestamp.globalsign.com/?signature=sha2。作为替代方案,请参阅这个时间戳服务器列表 https://gist.github.com/fd754e402d98430243455713efada710您也可以使用它。
The signtool https://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.110).aspx /td
标志也很重要(并且记录很少)。
签名是这样的:
signtool sign /fd SHA256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 /a filename.exe
生成带有代码签名证书和时间戳证书(采用 SHA-256 签名哈希算法)的可执行文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)