Articles of authenticode

Windows 10会忽略我的设置文件上的Authenticode

作为Windows 10的“快速响铃”,我在自己的安装可执行文件中遇到了一个奇怪的现象: 我是SHA-1,使用Authenticode以同样的方式签署他们,从来没有任何问题。 最近Windows 10不能识别我的(有效)签名。 从我的网站下载setup.exe并执行时,会出现Windows SmartScreen消息框,并告诉我: … 发行人:未知 … 查看刚下载的安装程序可执行文件的属性时,会显示签名,并告诉我签名是有效的。 另外,整个证书链是有效的。 我正在用这样的东西签名: SignTool.exe sign /v /t http://timestamp.verisign.com/scripts/timstamp.dll /f "my-authenticode.pfx" /p "my-password" "my-setup.exe" (为了便于阅读,添加了换行符) 我的问题: 有谁知道这个可能的原因(和解决)? 更多信息 : 我能想到可能的原因: 使用Windows 10 Fast Ring进行签名是有问题的 。 (我已经使用相同的行为在Windows Server 2008 R2上签名)。 在Windows 10 Fast Ring中运行下载的安装可执行文件是有问题的。 更新1: 我发现2013年的一篇MSDN博客文章似乎在谈论类似的发现,但是我仍然不能确定这是否真的适用。 更奇怪的是:从我们的网站下载更旧的,使用相同的Authenticode证书签名不会触发警告。 也许SmartScreen比较新的签名/安装可执行文件的时间戳和行为不同? 也许我需要添加额外的/不同的参数调用SignTool.exe时? 更新2: 在非快速响铃Windows 10上, 不显示SmartScreen警告。 另外, 也有类似的SO贴子 ,这对我没有帮助。 另外还有一个赛门铁克的post,声称 […]

自解压自检可执行文件

我正在分发一个authenticode签名的自解压可执行文件,其内容由我控制。 它包含基于MSI的安装程序的蘑菇,可以控制分布式系统的热插拔,因此它不能轻易成为MSI本身。 如果可执行文件只是检查自己的authenticode,并拒绝自己提取,如果没有签名将是很好的。 我意识到这并不提供真正的完整性保证,但它会强化内容不可定制的信息,也许会使一些正式的authentication更容易处理。 一个可能的策略可能是基于这个仍然没有答案的问题 。 任何其他的想法?

已签名的INF驱动程序在签名的计算机上工作,而不是其他人

我的公司从Go Daddy购买了一份驱动程序签名证书 。 我用它来签署一个简单的INF文件,它是我们使用微软的usbser.sys的一些USB设备的驱动程序。 一切似乎在我签名的Windows 7 64位计算机上工作:如果我右键单击INF文件并select“安装”,那么我看到的第二个警告是这个好警告,显示正确的发布者名称: 但是,如果我到另一台计算机(Windows Vista 64位),右键单击INF文件,然后select“安装”,然后我得到此错误消息,而不是: 这使我认为我的驱动程序没有正确签名,我的电脑上看起来不错的唯一原因是在Go Daddy安装过程中安装了一些根/中/跨证书。 我绝对希望我的用户能够看到我们是经过validation的发布者,而无需在他们的计算机上手动安装证书。 INF文件和.cat文件放在同一个目录下。 有谁知道为什么会发生这种情况,我该如何解决? 我怀疑主要的问题是,当我运行signtool verify /v pololu.cat (下面的更多细节),我得到这个错误,我还没有想出为什么: SignTool错误:证书链处理,但终止于信任提供程序不信任的根证书。 我的程序的细节 驾驶员签名证书是他们几星期前发布的Go Daddy的新产品。 我不完全确定它与代码签名证书有什么不同,但它是相同的价格。 我按照Go Daddy网站上的说明下载并安装了证书 ,虽然说明与现实完全不符。 在步骤1中安装了Microsoft Cross Certificate之后,我看到一条红色的警告消息: 在安装证书之前,必须使用Windows Update来更新根证书,或者手动下载并从我们的存储库安装根证书。 我不知道该怎么做。 我没有从他们的仓库安装一些GoDaddy根证书,但没有明显的区别。 我安装了Windows Driver Kit(WDK)的最新版本(8.0),然后安装Windows 8的Windows软件开发工具包(SDK)的最新版本(8.0)。 这使我可以访问inf2cat和signtool实用程序。 这两个工具包都是在上个月内发布的,所以有可能会出现一些新的bug。 在一个新的目录中,我把三个文件: pololu_usb_to_serial.inf ,我想签名的INF文件。 它很长很简单, 你可以在这里阅读 。 这个INF文件是一个独立的驱动程序; 我们的驱动程序包中不需要其他文件。 这个文件基本上和我们公司多年来成功发布(未签名)的版本相同,但是我必须对Inf2Cat进行一些更改才能接受。 我从Go Daddy证书库下载的mscvr-cross-gdroot-g2.crt 。 我相信这是交叉证书,certificate“Go Daddy […]

signtool无法对具有时间戳的SHA2和SHA1进行双重签名

我们需要使用signtool.exe对SHA1和SHA2进行双重签名,我们的证书支持256位SHA2。 使用Windows 8 SDK的signtool: 例如: signtool.exe sign / as / fd sha256 / t http://timestamp.verisign.com/scripts/timstamp.dll /f“certificate.pfx”/ p XXXXXXX“file.dll” (其中XXXXXXX是我们的证书密码) 失败与神秘的错误: SignTool错误:SignedCode :: Sign返回错误:0x80070057参数不正确。 SignTool错误:尝试签名file.dll时发生错误 没有时间戳的签名工作,单独签名作为SHA1或SHA256的作品,但我们需要双重签署,并想象没有时间戳是一个不是。 我已经尝试了32位和64位版本的signtool.exe,在Win7和Win8机器上试过了,并试图使用命令行选项,但无济于事。 有没有人在这个问题上打过?

EV代码签名证书或Microsoft Authenticode的代码签名证书

EV代码签名证书或Microsoft Authenticode的代码签名证书 我开发了一个免费的个人理财应用。 这对我来说是一种爱好。 我在我的网站上下载。 http://moneyble.com/download/ 我经常(一个月左右)发布一个新版本。 所以文件的散列变化。 当从我的网站上下载文件时,浏览器会显示一个警告,提示该文件没有经常下载,可能会导致危险。 同样在Windows 8计算机上,popupSmartScreen警告。 这两个警告都是杀死任何试图下载我的软件的新用户。 我阅读了一些关于代码签名的文章,并意识到我必须购买代码签名证书。 向微软支付发布我自己的软件的权利听起来很愚蠢。 就像他们拥有互联网一样。 但无论如何…他们制定了规则。 题: 我应该在EV代码签名证书上花费500美元吗? 要么 我可以购买一个便宜得多的(100 – $ 200)微软Authenticode证书,仍然摆脱这两个警告(下载和吸盘)? 我的EXE目前没有MS的声誉。 我经常更新exe-s。 用户基数从0开始缓慢增长。 任何人都有现实生活中的类似经历? 仍然不知道如何签署一个zip包。 我也提供了一个可移植的安装程序。 如果您在Google Chrome浏览器中下载了便携式压缩包,则会显示一条令人讨厌的消息:“Moneyble.zip不常被下载,可能会有危险”。 该包内的exe被签名。 但是这并没有帮助。 IE没有这个问题。 这只是Google Chrome的问题。 如果任何人有关于如何分发便携式安装的build议 – 我真的很感激。 如果您想检查警告,请从以下url下载其中一个安装程序: http : //moneyble.com/download/