主要观点:将大型软件安全地发送到终端用户设备是复杂的过程,代码签名是其中之一,Mozilla 过去 20 年在代码签名方面有诸多发展。
关键信息:
- 早期使用 GPG 和 Authenticode 签名,在 Windows 机器上进行,私钥和证书保存在 USB 上。
- 后来开始对 Windows 内部文件签名,过程类似安装程序签名。
- 改进包括自动化大部分复制粘贴、提高签名速度、实现自动签名、在 Linux 上签名 Windows 构建等。
- 引入了多种工具和技术,如 osslsigncode、winsign、msix-packaging 等。
- 推出了 Autograph 服务,提高了安全性和性能。
- 2023 年开始使用 rcodesign 进行 macOS 构建的公证。
重要细节: - GPG 签名用标准 GPG 工具,Authenticode 签名用 signcode.exe 工具,需通过 AutoIt 脚本注入密码。
- 早期签名过程部分脚本化,需手动运行约 15 个命令。
- 改进后的签名过程提高了效率,减少了人为错误。
- 迁移到 Taskcluster 后,签名任务由专门的 workers 负责,引入了 Chain of Trust 安全增强。
- Autograph 可将私钥保存在 HSM 中,提高了安全性,还支持只发送签名字节的哈希值节省网络流量。
- 各种工具如 osslsigncode、winsign 等在不同签名场景中发挥作用,msix-packaging 用于签名 MSIX 包,apple-codesign 用于 macOS 签名等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。