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

代码签名:我应该签名哪些文件类型,为什么?

  •  4
  • oefe  · 技术社区  · 16 年前

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

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

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

    • 在Office2007中,所有可执行文件都是经过签名的
    • 在Visual Studio 2008中,所有.exe和许多.dll都有签名,但也有许多未签名的dll(显然是强名称程序集,可能它们认为强名称足够)
    • 在Windows(7)中,既不签署可执行文件也不签署DLL(甚至不签署需要UAC的可执行文件,如mmc.exe!)
    1 回复  |  直到 10 年前
        1
  •  3
  •   Ryan O'Neill    16 年前

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

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

    1. 它可能有某种优势 与反病毒供应商一起治疗 你的文件更值得信赖, 因此支撑/安装较少 麻烦。
    2. 它将文件标记为对一般用户更值得信任,例如,当我使用MS的自动运行清理受病毒感染的系统时,我倾向于寻找没有签名的劣质材料,它会突出一英里。
    3. 你想看起来更专业些。

    不过,我不知道在检查签名时会有什么开销,所以旧的系统可能会慢一些。此外,如果您的证书来自廉价的证书供应商,那么根CA可能不包括在旧平台中(xp pre sp2等)。

    哦,是的,我只会把它作为构建的一部分来做(集成到msbuild或构建服务器中),因为它可能会变得单调乏味。

    请记住,不要让其他人访问您的密钥,否则您会将其吊销,安装可能会突然停止工作。因此,请为devs使用自签名证书,并将真正的密钥锁定在构建服务器上。

    有点乱,但我想没有正确的答案。