代码签名证书的核心安全资产是私钥。私钥一旦被复制或导出,就可能被用来签署恶意程序。本文从技术角度说明 Certum 云签名方案(SimplySign)的密钥保管机制,以及它与传统 USB Token 的差别。

一、行业要求:私钥必须放进硬件密码模块
自 2023 年 6 月 1 日起,CA/Browser Forum《代码签名基线要求》要求代码签名私钥必须在硬件密码模块中生成、使用与保管,以软件文件形式(如 .pfx)交付私钥的方式已不再合规。
需要特别注意的是,这条要求按场景分两档,门槛并不相同:
云签名服务(Signing Service)——由签名服务方保护用户私钥的硬件模块,须至少符合 FIPS 140-2 Level 3 或 CC EAL4+;
订阅者自管的硬件密码模块(如 USB Token)——最低为 FIPS 140-2 Level 2 或 CC EAL4+。
为什么云签名的要求更高?因为云签名服务通常同时托管多个订阅者的私钥,一旦模块被攻破波及面更大,因此标准要求更严。
二、SimplySign 是怎么工作的
Certum 云签名方案基于 SimplySign:
私钥在云端受控的硬件密码模块中生成与保管,不会下载到本地电脑;
本地安装 SimplySign Desktop,与云端的虚拟加密卡建立连接;
签名时通过手机端应用完成身份验证,验证通过后由云端完成签名运算;
可配合 SignTool、Jarsigner 等常见命令行签名工具使用。
Certum 云签名产品标注的密钥存储要求为 FIPS 140-2 Level 3 或 CC EAL4+,高于订阅者自管硬件的最低门槛。
三、与 USB Token 的机制差异
私钥位置:Token 在本地物理设备中;云签名在云端硬件模块中。
签名方式:Token 需插在 USB 口;云签名通过网络调用,不受物理位置限制。
次数限制:云签名默认每月可签名 5000 次,超出后需要联系环度网信获取相应的解决方案;本地化硬件(如 eToken)没有这个次数限制。
环境依赖:云签名依赖网络与 SimplySign 应用;完全离线或无人值守的大规模自动化签名场景需提前评估。
四、签名之外还需要时间戳
时间戳用于证明「签名发生在证书有效期内」,使签名在证书到期之后仍然可以长期验证。建议所有正式发布的文件都启用时间戳。另外,代码签名证书的最长有效期已大幅缩短(当前约 460 天以内),到期需要重新签发。
五、一个常见误解
代码签名证书解决的是 Windows 的「未知发布者」提示;SmartScreen 的拦截与警告是另一套机制,取决于下载量、发布者信誉与风险模型的积累,与证书档次无关。EV 证书也不再享有过去直接绕过 SmartScreen 的便利。
六、常见问题
云签名的私钥会下载到本地吗?不会,私钥始终在云端受控模块中,本地只发起签名请求。
云签名的私钥保护达到什么等级?Certum 云签名产品标注的密钥存储要求为 FIPS 140-2 Level 3 或 CC EAL4+。
每月签名次数有限制吗?默认每月 5000 次,超出后需联系我们获取解决方案;硬件方式没有此限制。
能给驱动签名吗?不能。微软已不支持第三方代码签名证书直接为驱动签名,驱动类文件需要走 WHQL 方案。
需要办理 Certum 云签名版或其他型号的代码签名证书,可以直接在上海环度信息科技有限公司的官方网站上在线提交申请,我们收到后会尽快安排处理。
本文基于 Certum 官方资料与公开信息整理,不构成法律意见;云签名次数、证书有效期等政策可能随官方调整,办理前请以官方与授权渠道的当期说明为准。

