代码签名证书用于确认软件发布者身份,并验证安装包、驱动程序或脚本在签名后是否被修改。真正需要严密保护的不是证书文件本身,而是与证书配套的私钥。私钥一旦被复制或滥用,攻击者可能以企业名义签署未经授权的软件。
目前公开信任代码签名证书的私钥不能再按普通文件方式保存在电脑或服务器中。GlobalSign 代码签名证书支持Token 实现和 HSM 实现,私钥需要在符合要求的硬件加密设备中生成和使用。选择哪一种,不能只比较设备价格,还要看签名由谁完成、多久签一次以及是否需要多人共享。
两种私钥存储方式的主要区别
| 存储方式 | 更适合的场景 | 需要提前确认 |
| USB Token | 签名频率不高,由固定授权人员在指定电脑上操作 | 驱动与工具兼容性、PIN 管理、设备备份和人员交接 |
| HSM | 签名任务较多,需要多名人员或多套系统使用同一受控密钥 | 设备采购、机房条件、权限配置、日志和灾备能力 |
Token适合签名量不高的团队
GlobalSign 代码签名证书可以选择加密 USB Token 部署。私钥在 Token 内生成或保存,签名操作需要设备和PIN,私钥不会作为普通文件导出。对于每月发布次数有限、签名人员固定的小型开发团队,这种方式直观,也便于明确谁在保管签名介质。
Token 的限制也很明确。设备长期插在共享电脑上,会削弱物理隔离的意义;PIN 写在文档或脚本中,也会形成新的泄露点。企业还要考虑保管人员请假、设备损坏和跨地区团队如何签名。若经常需要快递或远程共享同一枚Token,说明当前方式可能已经不适合实际发布流程。
HSM适合多人和高频签名
HSM 把密钥生成、存储和签名运算限制在专用硬件边界内。与个人保管 Token 相比,HSM 更适合多名授权人员、多个产品线或较高频率的签名任务。管理员可以围绕设备建立账户、权限、双人审批和操作日志,减少私钥随人员和电脑流转。
采用 HSM 之前,需要确认设备是否符合代码签名证书的合规要求,以及 GlobalSign 是否支持对应型号和部署方式。企业还要自行解决设备初始化、备份、故障切换、运行环境安全和管理员权限分离。HSM不是插上即可使用的通用硬盘,缺少运维能力时,部署成本可能高于证书本身。
根据签名方式完成选型
1. 先统计实际签名量。记录每月发布次数、文件类型和紧急补丁频率,而不是只统计开发人员数量。
2. 确认签名人员。如果始终由一名固定人员签名,Token可能够用;若需要多人或跨地区协作,应评估 HSM。
3. 确认现有环境。签名电脑的操作系统、构建工具、云平台和网络限制会直接影响兼容性。
4. 检查审计要求。需要职责分离、双人审批或集中日志的企业,应优先选择能够提供细粒度权限与完整记录的方式。
5. 准备故障方案。明确Token 或 HSM 无法使用、人员离职或证书需要吊销时由谁处理。
私钥安全还取决于使用流程
存储介质合规并不代表所有签名都可信。企业仍要规定哪些文件可以签名、由谁批准、签名后如何核对文件哈希和发布者信息。已经签名的安装包应进入不可随意覆盖的制品库,并保留文件哈希、签名时间、证书序列号和操作人员记录。
如果发现 Token 遗失、HSM 账户异常或未经批准的软件被签名,应立即暂停使用相关私钥,保留日志并联系证书颁发机构。是否吊销证书需要结合调查结果判断,不能只通过修改PIN 或删除本地文件结束处理。
采购前检查清单
· 确认所选 Token 或 HSM 与代码签名证书兼容。
· 明确私钥是否不可导出,以及备份和恢复如何实现。
· 记录谁可以签名、谁可以修改权限、谁负责审计。
· 在正式采购前验证签名工具、文件类型和操作系统。
· 制定设备损坏、人员变更、异常签名和证书吊销流程。
签名量有限、人员固定时,Token 通常更容易落地;需要多人共享、集中权限和完整审计时,可评估 HSM。最终选择应与企业现有发布方式匹配,而不是为了追求更复杂的技术架构。