代码之家  ›  专栏  ›  技术社区  ›  Eran

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

  •  12
  • Eran  · 技术社区  · 14 年前

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

    首先,我可以考虑一些利弊:

    • pro:如果使用Verisign证书, Windows Error Reporting 可以使用
    • pro:当Windows Vista和Windows 7显示其中一个令人讨厌时 UAC 消息、签名的应用程序显示得更漂亮一点
    • 反对:证书要花钱。不多,但如果没用的话就太多了
    • 反对者:签字有一些维护费用,我不知道多少。
    3 回复  |  直到 11 年前
        1
  •  2
  •   user97863    14 年前

    从技术方面来说,你已经说明了优点/缺点。

    从业务角度看,这取决于您的用户,也许如果您销售的是B2B,那么就没有关系了,就好像您销售的是B2C,或者销售给不太精明的用户,而这些用户会更喜欢更好的UAC信息。

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

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

        2
  •  4
  •   Suma    14 年前

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

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

    反对者:签字有一些维护费用,我不知道多少。希望你能来这里…

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

    pro:当vista/7显示其中一条烦人的UAC消息时,签名的应用程序会显示得更漂亮一点。

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

        3
  •  0
  •   user151323    14 年前

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

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