2010-02-22 60 views
12

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

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

  • 临:如果使用的VeriSign证书,Windows Error Reporting可用于
  • 临:当Windows   Vista和Windows   7显示的一个那些烦人的UAC消息,签名的应用程序呈现得更漂亮一些
  • Con:证书花钱。不是很多,但是如果它们没用,它太多了
  • Con:签名有一些维护开销,我不知道多少。

回答

2

从技术方面说,你已经说过利弊。

从业务角度来看,这取决于您的用户,也许如果您正在销售B2B,那么就好像您正在销售B2C或不那么重要的用户一样,他们会更加欣赏更好的UAC消息。

老实说,我不担心....如果你没有这种冲动,找不到一个真正的理由,那么它并不重要。

我宁愿花这些努力改善别的东西。

0

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

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

+0

您的意思是使用相同的证书签名,还是由任何证书签名?前者是不可能的(不能签署kernel32.dll),但后者似乎也是一个问题。未签名的第三方可执行文件是否可以通过我们的应用程序进行部署? – eran 2010-02-22 11:18:19

4

临:如果使用的VeriSign证书,Windows错误报告可用于

实际上,使用Windows错误报告,你需要Verisign或其他代码接受签名证书,但你需要的证书只能访问WinQual系统。 exe本身并不需要签名,错误报告在无符号的exes上也可以很好地工作。

Con:签名有一些维护开销,我多少不知道。会喜欢从你这里...

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

临:当Vista/7的显示那些烦人的UAC消息中的一个,签名的软件都多一点很好

至于UAC提示 - 做你的应用程序确实需要提升或管理员权限才能运行?避免此提示的最好方法是不要求任何提升的特权。

+0

你对UAC消息是正确的 - 在做了一些工作后,我们的应用程序现在以用户权限运行,所以这些消息不应该出现。但是,如果其他人(例如防火墙),他们可能会更好,如果应用程序签名。 – eran 2010-02-22 20:23:22

+0

防火墙消息和其他类似的东西可以通过安装程序进行处理(假设您使用的是安装程序)。使用提升的权限运行设置通常被认为是合理的,但运行该应用程序不是。 – Suma 2010-02-22 20:33:52

相关问题