对可执行文件进行数字签名有多重要?

发布于 2024-08-23 04:42:23 字数 577 浏览 3 评论 0原文

我们生产内容管理系统。它是一个基于数据库的系统,仅供企业和组织使用,并且不能从互联网上下载。也就是说,它不是那种人们可能会偶然发现并想知道它是什么以及运行是否安全的软件。我们的系统销售了 20 多年,其可执行文件从未经过数字签名。我们是时候开始签署他们了吗?

对于初学者来说,我可以想到一些优点和缺点:

We produce a content management system. It's a database-based system, used only by businesses and organizations, and never downloadable from the Internet. That is, it's not the kind of software someone might stumble upon and wonder what it is and whether it's safe to run. Over the 20+ years our system is being sold, its executables have never been digitally signed. Is it time for us to start signing them?

For starters, I can think of a few pros and cons:

  • Pro: If using Verisign certificates, Windows Error Reporting can be used
  • Pro: When Windows Vista and Windows 7 show one of those annoying UAC messages, signed applications are presented a bit more nicely
  • Con: Certificates cost money. Not a lot, but if they're useless it's too much
  • Con: Signing has some maintenance overhead, how much I don't know.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

失去的东西太少 2024-08-30 04:42:23

优点:如果使用 Verisign 证书,则可以使用 Windows 错误报告

实际上,要使用 Windows 错误报告,您需要 Verisign 或其他代码接受的签名证书,但您只需要访问 WinQual 系统即可使用该证书。 exe 本身根本不需要签名,错误报告在未签名的 exe 上也绝对可以正常工作。

缺点:签名有一些维护开销,我不知道有多少。希望您能来到这里...

维护开销很大程度上取决于构建管道的质量。如果您手动构建应用程序,那么是的,这意味着需要更多步骤。但是,如果您有构建管道并且构建是自动化的,则代码签名意味着在构建脚本中添加几行并存储代码签名证书的私钥,以便构建可以访问它(如果您有构建服务器,您的代码签名证书很可能需要存储在上面)。

优点:当 Vista/7 显示那些烦人的 UAC 消息之一时,签名的应用程序会显示得更好一点

至于 UAC 提示 - 您的应用程序真的需要提升权限或管理员权限才能运行吗?避免此提示的最佳方法是根本不需要任何提升的权限。

Pro: If using Verisign certificates, Windows Error Reporting can be used

Actually, to use Windows Error Reporting you need Verisign or other code accepted signing certificate, but you need the certificate only to access the WinQual system. The exe itself does not have to be signed at all, the error reporting works absolutely fine on unsigned exes as well.

Con: Signing has some maintenance overhead, how much I don't know. Would love to here from you...

The maintenance overhead highly depends on the quality of your build pipeline. If you build your application manually, then yes, it means a few more steps. However, if you have a build pipeline and your builds are automated, code signing means adding a few lines into the build scripts and storing the private key of the code signing certificate so that the build can access it (if you have a build server, your code signing certificate will most likely need to be stored on it).

Pro: When Vista/7 show one of those annoying UAC messages, signed apps are presented a bit more nicely

As for UAC prompt - does you application really need elevated or admin privileges to run? The best way to avoid this prompt is not to require any elevated privileges at all.

凝望流年 2024-08-30 04:42:23

从技术方面来说,您已经阐述了优点/缺点。

从业务角度来看,这取决于您的用户,也许如果您销售 B2B,那么您销售 B2C 或不太懂行的用户可能会更欣赏更好的 UAC 消息,这并不重要。

老实说,我不会担心……如果你没有这种冲动,也找不到真正好的理由,那么这还不重要。

我宁愿把这些努力花在改进其他事情上。

From the tech side you already stated the pros/cons.

From the business point of view it depends on your users, maybe if you are selling B2B it wouldn’t matter as if you were selling B2C or to less savvy users whom would appreciate more a nicer UAC message.

Honestly, I wouldn’t worry.... If you haven’t had the urge and can't find a really good reason, then it’s not important yet.

I'd rather spend those efforts improving something else.

阳光①夏 2024-08-30 04:42:23

签名有一些维护开销,我不知道有多少。

我相信如果您分发签名的可执行文件,所有依赖库也必须签名。如果您使用一些您无法控制的第三方模块,则可能会遇到问题。

Signing has some maintenance overhead, how much I don't know.

I believe if you distribute signed executables, all dependent libraries have to be signed as well. If you're using some third-party modules over which you have no control, you can get an issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文