我们制作了一个内容管理系统。它是一个基于数据库的系统,仅供企业和组织使用,不能从Internet下载。也就是说,它不是某种人可能偶然发现的软件,不知道它是什么以及它是否安全。在20多年的时间里,我们的系统正在销售,其可执行文件从未进行过数字签名。是时候开始签名了吗?
首先,我可以想到一些优点和缺点:
答案 0 :(得分:4)
Pro:如果使用Verisign证书,则可以使用Windows错误报告
实际上,要使用Windows错误报告,您需要Verisign或其他代码接受签名证书,但您只需要证书才能访问WinQual系统。 exe本身根本不需要签名,错误报告在unsigned exes上也能正常工作。
Con:签名有一些维护开销,我不知道多少。愿你来到这里......
维护开销很大程度上取决于构建管道的质量。如果你手动构建你的应用程序,那么是的,这意味着更多的步骤。但是,如果您有一个构建管道并且构建是自动化的,则代码签名意味着在构建脚本中添加几行并存储代码签名证书的私钥,以便构建可以访问它(如果您有构建服务器,您的代码签名证书很可能需要存储在其中。)
Pro:当Vista / 7显示其中一个恼人的UAC消息时,签名的应用程序会更好地呈现
对于UAC提示 - 您的应用程序是否真的需要提升或管理员权限才能运行?避免此提示的最佳方法是根本不需要任何提升权限。
答案 1 :(得分:2)
从技术方面你已经说明了利弊。
从商业角度来看,它取决于您的用户,也许如果您销售B2B,那么就像您销售B2C一样无关紧要,也不会对不那么精明的用户感兴趣,因为他们会更喜欢更好的UAC消息。
老实说,我不会担心......如果你没有这种冲动而找不到一个非常好的理由,那么它就不重要了。我宁愿花那些努力来改善其他事情。
答案 2 :(得分:0)
签名有一些维护费用,我不知道多少。
我相信如果你分发签名的可执行文件,所有依赖库也必须签名。如果您使用的某些第三方模块无法控制,则可能会出现问题。