ImageMagick 的 Windows 安装程序将不再签名
ImageMagick 的维护者表示,在新的规则实际上要求使用硬件支持或云 HSM 证书、且每年成本约 600 美元后,他们将停止对 Windows 安装程序进行签名,并转而寻求赞助。评论者则争论 Windows 上的代码签名是否已经变成一种让志愿开源项目吃亏的“保护性收费机制”,还是对真实恶意软件和密钥盗用事件作出的必要回应。讨论进一步扩展到开源应如何融资、主要平台和公司是否应支持像 ImageMagick 这样的关键工具,以及应用商店、Web 应用或基于 Linux 的工作流等替代方案是否更可持续。
开源经济学 vs. 629 美元的证书
- 许多人注意到其中的讽刺:ImageMagick 代表着巨大的无偿劳动,却连每年几百美元的开销都难以承担。
- 有人解释说:贡献代码是“有趣的”,也能建立声誉;而掏钱既不有趣,也很难在公司内部证明其合理性。
- 有些人认为 OSS 没有内在的商业模式;另一些人则说它 必须 开始像企业一样运作,才能覆盖真实成本。
- 还有几位评论者从原则上反对:他们付得起证书费用,但拒绝为发布自己本来就是免费提供的软件而付费。
代码签名要求与安全理由
- 新的 CA/B Forum 规则要求使用硬件支持的密钥(HSM 或令牌),这破坏了许多基于 CI 的签名流程。
- 支持者表示,被盗密钥已在真实攻击中被滥用;HSM 和更严格的身份检查可提高吊销能力与责任追踪。
- 批评者认为这是一种安全表演主义、保护性收费机制,并推动一种“企业版信任网络”,在其中发布软件需要成为一个与 Microsoft/CA 生态绑定的法律实体。
对 Windows 用户和开发者的影响
- 未签名的二进制文件会触发 SmartScreen、Defender 和浏览器警告,令非技术用户困惑并损害信任。
- 有人认为 ImageMagick 的典型使用方式(被其他应用捆绑、用于服务器端,或在 *nix 上使用)使得 Windows 安装程序未签名只是小问题。
- 另一些人强调,在 Windows 上,未签名二进制文件实际上是二等公民;要顺利分发,签名几乎是必需的。
替代方案与变通办法
- 建议包括:
- 使用其他操作系统(Linux、macOS),或通过 WSL 或容器运行 ImageMagick。
- 发布便携式 ZIP,或将 ImageMagick 作为内置依赖集成。
- 通过 Microsoft Store 分发(更便宜,且由 MS 代为签名)。
- 使用更便宜的 CA 或面向 OSS 的特殊优惠(例如更低成本的代码签名,或像 SignPath 这样由基金会支持的签名)。
- 使用云 HSM(Azure Key Vault、DigiCert、SSL.com)恢复 CI 签名能力。
关于“代码版 Let’s Encrypt”的呼声
- 许多人希望有一个免费或非常便宜、自动化的代码签名 CA。
- 反对意见是:TLS 只证明域名控制权;代码签名的目的是将二进制文件与某个法律实体绑定,以满足责任和政策需求。
- Sigstore 以及 GitHub/npm provenance 等项目被提及为部分解决方案,但操作系统厂商目前仍未将它们作为根信任。
更广泛的担忧
- 讨论进一步扩展为:
- 对 Windows 安全 UX 以及其生态“恶化”的不满。
- 关于沙盒、应用商店,以及通用计算能力被侵蚀的争论。
- 对像 ImageMagick 这样关键 OSS 长期资金不足与治理脆弱性的担忧。