代码签名证书最核心的安全资产是私钥。私钥一旦被复制或导出,就可能被用来签署恶意程序。Certum 云签名(SimplySign)把私钥放在云端受控的硬件密码模块中,本文从技术与合规两个角度说明它如何保护私钥。

一、合规基线:私钥必须放进硬件密码模块
自 2023 年 6 月 1 日起,CA/Browser Forum《代码签名基线要求》要求代码签名私钥必须在硬件密码模块中生成、使用与保管,以软件文件形式交付私钥的方式已不再合规。这项要求按场景分为两档:
云签名服务(Signing Service):保护用户私钥的硬件模块须至少符合 FIPS 140-2 Level 3 或 CC EAL4+;
订阅者自管的硬件密码模块(如 USB Token):最低为 FIPS 140-2 Level 2 或 CC EAL4+。
云签名的门槛更高,原因是签名服务通常同时托管多个订阅者的私钥,一旦模块被攻破波及面更大。Certum 云签名产品标注的密钥存储要求为 FIPS 140-2 Level 3 或 CC EAL4+。
二、SimplySign 的签名链路
私钥在云端硬件密码模块中生成与保管,不下载到本地电脑;
本地安装 SimplySign Desktop,与云端虚拟加密卡建立会话;
签名时通过手机端应用完成身份验证,验证通过后由云端完成签名运算;
可配合 SignTool、Jarsigner 等命令行签名工具使用。
三、与 USB Token 的技术差异
私钥位置:Token 在本地物理设备;云签名在云端硬件模块。
调用方式:Token 需插在 USB 口;云签名通过网络调用。
次数约束:云签名默认每月 5,000 次,超出后需要联系环度网信获取相应的解决方案;本地化硬件(如 eToken)没有这个次数限制。
环境依赖:云签名依赖网络与 SimplySign 应用;完全离线场景更适合 Token。
四、时间戳:让签名在证书到期后仍可验证
时间戳用于证明「签名发生在证书有效期内」。在证书正常有效、签名与时间戳符合验证要求且无撤销等问题的情况下,即使证书后来到期,之前的签名通常仍可通过验证。这对长期提供软件下载、需要保存历史安装包的企业尤其重要。
五、一个常见误解
代码签名证书解决的是 Windows 的「未知发布者」提示;SmartScreen 的拦截与警告是另一套机制,取决于下载量、发布者信誉与风险模型的积累,与证书档次无关。EV 证书也不再享有过去直接绕过 SmartScreen 的便利。
六、常见问题
云签名的私钥会落到本地吗?不会,私钥始终在云端受控模块中。
能签哪些文件?EXE、MSI、DLL、JAR 等常见文件,以及 Office 文档与 VBA 宏项目。
能给驱动签名吗?不能。驱动类文件需要走 WHQL 方案。
证书有效期多久?最长有效期已大幅缩短(当前约 460 天以内),到期需重新签发。
上海环度信息科技有限公司自 2018 年起与 Certum 建立合作,可提供云签名的选型、开通与签名配置协助。需要办理可以直接在上海环度信息科技有限公司的官方网站上在线提交申请。
本文基于 Certum 官方资料与公开信息整理,不构成法律意见;云签名次数、证书有效期等政策可能随官方调整,办理前请以官方与授权渠道的当期说明为准。

