6

我有一个全新的代码签名证书,并且一直想知道我应该签署哪些文件。

显然,应该对 setup .msi 包和所有运行提升的 .exe 进行签名以避免“未知发布者”警告,但我是否应该签署其他可执行文件,例如不需要提升的 .exe、.dll 或 .oxc?

微软自己似乎对此处理不一致:

  • 在 Office 2007 中,所有可执行文件都已分配
  • 在 Visual Studio 2008 中,所有 .exe 和许多 .dll 都已签名,但是,也有许多未签名的 DLL(显然是强命名程序集,也许他们认为强命名就足够了)
  • 在 Windows (7) 中,可执行文件和 dll 都没有签名(甚至不需要 UAC 的可执行文件,比如 mmc.exe!)
4

1 回答 1

7

我想你回答了你自己的问题,只在需要的地方签名以避免提示。

我会考虑签署所有文件的原因只有几个。

  1. 反病毒供应商可能会将您的文件视为更值得信赖的文件,从而减少支持/安装麻烦,这可能具有某种优势。
  2. 它将文件标记为对普通用户更值得信赖,例如,当我使用 MS 的自动运行清理受病毒感染的系统时,我倾向于寻找没有签名的伪劣东西,它会伸出一英里。
  3. 你想看起来更专业。

我不知道检查签名有什么开销,所以旧系统可能会更慢。此外,如果您的证书来自便宜的证书供应商,那么根 CA 可能不包含在旧平台(XP pre SP2 等)中。

哦,是的,我也只会将其作为构建的一部分(集成到 MSBuild 或构建服务器中),因为它可能会变得乏味。

请记住不要让其他任何人访问您的密钥,否则您将取消它,并且突然之间,安装可能会停止工作。因此,为开发人员使用自签名证书并将真实密钥锁定在构建服务器上。

有点漫无边际,但我认为没有正确的答案。

于 2010-02-12T16:41:07.367 回答