使用自签名证书进行代码签名比根本不签署 C# 二进制文件有什么好处吗?

问题描述 投票:0回答:1

我是一名业余程序员,维护一些用 C# 编写的程序(特别是游戏模组)。我通过将 DLL 以 zip 文件形式上传到网站来分发这些文件。每当我上传新版本时,用户都会收到“可疑下载”警告。据我所知,这个警告在很多人下载后就会消失,但每个新版本都会发生这种情况。

我知道代码签名可以在这方面提供帮助,并且我看到三个选项:

  1. 购买证书约 250 美元/年;
  2. 使用自签名证书;
  3. 不要更改任何内容并继续发送未签名的二进制文件。

虽然我能负担得起选项 1,但我觉得对于只是一个爱好来说,这个价格仍然太高了。另外,我同意坚持选项 3。不过,我一直在研究选项 2,想知道它与选项 3 相比是否有任何好处。

  1. 浏览器/操作系统是否确实有一些信誉系统,会导致未签名的二进制文件的“可疑下载”在一段时间后消失?
  2. 使用自签名证书是否可以将声誉延续到新版本?
  3. 与根本不签署二进制文件相比,使用自签名证书进行代码签名还有其他好处/缺点吗?
  4. 是否还有我不知道的第四种选择?
c# code-signing code-signing-certificate
1个回答
0
投票

都是很好的问题。作为其他读者的快速背景知识,浏览器和操作系统都可能标记任何 EXE 下载,无论是否带有可信签名。他们对于如何决定标记都有不同的算法。我所知道的因素有:

  1. 文件已被下载多少次(无论签名如何)。
  2. 由同一证书签名的文件被下载了多少次。
  3. 假设有签名,证书是扩展验证 (EV) 还是常规证书。
浏览器/操作系统是否确实有一些信誉系统,会导致未签名的二进制文件的“可疑下载”在一段时间后消失?

是的,但根据我的轶事经验,除非您的应用程序非常受欢迎,否则它需要比您可能积累的更多的声誉。例如,

7zip 的安装程序没有数字签名,我从未见过 Chrome 或 Windows 对其进行标记。但这是 7Zip。

使用自签名证书是否可以保持声誉 到新版本吗?

再次根据我的经验,对于受信任的证书来说确实如此,尽管此好处会随着每次续订而重置。恐怕我无法肯定地回答这是否适用于不受信任的自签名证书。 (不过,如果你让我打赌,我会说不)。

与根本不签署二进制文件相比,使用自签名证书进行代码签名还有其他好处/缺点吗?

我在猜测,但可以想象,评估者算法可能会更怀疑自签名是一种欺骗信誉良好的作者的尝试。例如,您可以将证书自签名为“Microsoft Corporation”。

是否还有我不知道的第四种选择?

有,但它可能不是专门为业余爱好者提供的选择 - 扩展验证 (EV) 比常规证书昂贵得多,而且只有在您是合法注册的实体时才可用。不幸的是,我们发现我们别无选择,只能购买一个或处理浏览器和操作系统不断出现的问题。不过,据我所知,从那时起,我们从未遇到过下载被浏览器或操作系统阻止的情况(Z 标量和类似的系统是另一回事,但你基本上无法控制)。

© www.soinside.com 2019 - 2024. All rights reserved.