问题标签 [authenticode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
21485 浏览

c# - 如何签署 Visual Studio .msi 的安装文件

我最近从 globalsign 购买了一个验证码证书,但在签署我的文件以进行部署时遇到问题。有几个 .exe 文件由项目生成,然后放入 .msi。当我使用 signtool 签署 .exe 文件时,证书有效并且运行良好。问题是,当我构建 .msi(使用 Visual Studio 安装项目)时,.exe 文件会丢失它们的签名。因此,我可以在构建 .msi 后对其进行签名,但安装的 .exe 文件会继续整个“未知发布者”业务。如何保留这些文件上的签名以便在客户端计算机上安装?

0 投票
2 回答
4714 浏览

winapi - Windows SDK 7.0 的signtool 中的signwizard 发生了什么?

我在signtool.exe 中寻找方便的signwizard,但在Windows SDK 7.0 中找不到了。
它现在是在一个单独的工具中,还是只剩下 CLI?

0 投票
0 回答
2044 浏览

c# - 查明程序集是否使用 Authenticode 签名

我使用第 3 方供应商的程序集。在旧版本中,此程序集使用验证码。这导致组件加载持续很长时间。供应商的开发人员告诉我,新版本没有使用验证码签名。我如何检查这是否属实。在我的开发机器上,程序集加载速度很快。只有在客户端机器上才需要安静一段时间。是否可以使用网络嗅探器进行检查?

问候

0 投票
1 回答
244 浏览

.net - 软件发布者证书和强名称密钥是否相关?

是否应该使用由第三方证书颁发机构授予的软件发布者证书来生成与 .NET 程序集一起使用的强名称密钥?

编辑:

说明问题的另一种方式是代码签名和强名称密钥是否相互关联,或者它们是各自独立的世界?

0 投票
2 回答
2325 浏览

internet-explorer - Internet Explorer 何时/为什么阻止安装(已签名)ActiveX 控件?

当用户访问包含以前从未见过的签名 ActiveX 控件的页面时,我希望 IE 会询问用户安装控件的权限。但有时 IE 会发出安全警告。

例如,考虑这个站点,它有一个测试控件: http ://www.pcpitstop.com/testax.asp

我希望收到这条消息——有时,我会:

“该网站想要运行以下插件:来自‘YYY’的‘XXX’。如果您信任该网站和插件并希望允许它运行,请单击此处...”

但是在 XP 上的 IE8 下,我通常会得到这个:

“为了帮助保护您的安全,Internet Explorer 已限制此站点显示某些内容。单击此处查看选项...”

这是怎么回事?有任何想法吗?

谢谢!

0 投票
5 回答
10708 浏览

hudson - 如何在作为服务运行的 hudson 中正确使用 signtool.exe?

我刚刚从 THAWTE 购买了代码签名证书(MS 验证码),并且显然已将其安装在我的构建机器上。我以用户身份登录,当我打开 cmd 提示符时,我可以使用带有 signtool.exe 的证书对 EXE 进行签名。

不幸的是,同样的命令行在机器上运行的 hudson 进程中不起作用。

我得到的错误信息是:

SignTool 错误:未找到满足所有给定条件的证书。

我认为这是因为 hudson 服务运行的帐户与我从用于从 thawte 获取证书的帐户运行 signtool.exe 的帐户不同。

所以,我的问题是:我该如何解决这个问题?我以为我要从 thawte 下载一个文件,但它只是使用 IE 以某种方式神奇地将证书安装在用户的缓存中。我可能想导出(或任何正确的术语)到我可以在任何其他机器上存储/保存或使用的文件。

我该怎么做以及如何使用系统/服务帐户中其他用户的文件或证书正确调用signtool?

0 投票
1 回答
4934 浏览

activex - 如何使用代码签名证书对 ActiveX 控件进行签名并成为经过验证的发布者?

我正在尝试使用 Thawte 颁发的代码签名证书对 ActiveX 控件进行签名。我能够使用signtool.exe 成功地对控件进行签名。

当我查看文件属性时,它显示“无法验证签名中的证书”。

当我查看证书时,它显示“Windows 没有足够的信息来验证证书”。

在证书路径选项卡上,它显示“找不到此证书的颁发者”。

在 Internet Explorer 中,证书被识别为已签名,但用户收到发布者未经验证的警告。

我尝试创建一个包含我的证书以及链接到我的 Thawte 开发人员证书的根证书和中间证书的单个 PFX 文件,然后使用该 PFX 文件重新签署控件。没有骰子。

有什么建议么?

0 投票
2 回答
2675 浏览

c# - 如何使用 C# 验证 Powershell .ps1 脚本的签名?

我有一些签名的 .ps1 脚本,我需要验证它们是否从 C# 项目正确签名,是否有任何算法或库可以做到这一点?

谢谢!

0 投票
1 回答
1981 浏览

.net - 在执行 .NET 应用程序时验证验证码签名

我觉得我在这里遗漏了一些明显的东西,但我没有看到它写在任何地方。

我使用 Authenticode 证书签署我的可执行文件,但是当我开始了解更多关于它的信息时,我质疑它的价值。

  • 签名的 exe 具有显示为“有效”证书的数字证书。当您从 Internet 下载此类文件时,它会在 Windows 中显示一条警告,说明您将要从 Xyz Corporation 发布的潜在不安全位置运行程序。
  • 如果没有签名,下载的文件将给出一个完全不同的警告框,说明该文件不受信任

现在,我担心的是:

  • 如果签名的 exe 被更改,当您进入“属性”>“数字签名”>“选择签名”>“详细信息...”时,它会显示“此数字签名无效”。这是查看可能是严重问题的一种非常模糊的方式,并且是您不应该运行该文件的一个巨大指标。

    • 如果您从 Windows 运行此文件(未下载),它将运行良好。没有警告或任何迹象表明有问题
    • 如果您下载文件然后尝试运行它,我没有检查会发生什么。
  • 如果您从文件中剥离签名(使用delcert),也没有任何迹象表明有任何问题。同样,您可以运行该文件,只是在属性对话框中不显示任何证书。


为了使它更有用,我认为签名文件需要验证自己。启动时,它应该检查是否存在有效签名,并且可能会检查签名的 sha1 指纹是否与 Xyz 公司证书的预期签名匹配。

(当然,这仍然不能处理有人剥离证书,然后编辑文件以删除证书检查的情况)


我找不到任何人谈论如何做到这一点(至少不是在 .NET 中,当然也不是像我期望的那样使用简单的 API 调用)——所以这导致了几个问题:

  1. 没有检查签名是否有原因?没有这张支票签名还有什么其他好处?
  2. 尝试验证签名作为篡改检测的手段是否如此徒劳以至于尝试毫无意义?
  3. 如何在 .NET 中检查当前可执行文件的证书?
0 投票
7 回答
13275 浏览

c# - 从 .NET 中的 Authenticode 签名文件中获取时间戳

我们需要验证二进制文件是否使用数字签名(Authenticode)正确签名。这可以通过signtool.exe 轻松实现。但是,我们需要一种自动方式来验证签名者姓名和时间戳。这在带有 API 的本机 C++ 中是可行的,CryptQueryObject()如这个精彩的示例所示:如何从 Authenticode 签名的可执行文件中获取信息

然而,我们生活在一个受管理的世界:) 因此寻找相同问题的 C# 解决方案。直接的方法是 pInvoke Crypt32.dll,一切都完成了。但是System.Security.Cryptography.X509Certificates命名空间中有类似的托管 API。X509Certificate2类似乎提供了一些信息,但没有时间戳。现在我们来到了最初的问题,我们如何才能在 C Sharp 中获得数字签名的时间戳?