在 Google Cloud HSM 上配置 EV 代码签名证书
随着安全威胁不断演变,软件开发人员、发布者与企业在保护代码免受篡改时,使用 EV 代码签名证书。这些证书在签发前需经证书颁发机构专门审查,这正是它成为最高级别认证、确保经数字签名的软件保持完整性与真实性的原因。
Google Cloud HSM 已成为 EV 代码签名的理想方案,它为加密密钥的存储与管理提供了高度安全的环境。当这些证书存储在 Cloud HSM 中时,私钥被置于防篡改、硬件支撑的环境中,大幅降低密钥泄露风险。
DigiCert EV Code Signing Certificate 与 DigiCert Code Signing Certificate 是唯一集成到基于云 HSM 的方案。结合 Google Cloud HSM,它们改善了密钥保护,并符合软件分发的行业安全标准。
在 Google Cloud HSM 上实施 EV 代码签名
将 EV 代码签名证书与 Google Cloud HSM 集成涉及若干关键步骤,从搭建云环境到安全签署应用。以下是整个流程的结构化方法。
第 1 步——搭建 Google Cloud HSM 账户
开始前,确保你拥有已启用计费(billing)的 Google Cloud 账户,并具备管理 Cloud HSM 与 Cloud Key Management Service(KMS,密钥管理服务)所需的 IAM 权限。
- 登录 Google Cloud Console。
- 导航到 Security > Key Management。
- 若 Cloud KMS API 尚未激活,请启用它。
- 为你的账户分配必要的 IAM 角色(Cloud KMS Admin、Cloud HSM Admin)。
第 2 步——访问密钥管理界面
启用 Cloud HSM 后,可用上述相同步骤访问 Key Management Service(KMS)以安全管理加密操作。
- 进入 Google Cloud Console。
- 选择你的项目。
- 打开 Key Management 页面管理加密密钥。
- 系统会要求你生成使用 KMS 的凭据。
- 按屏幕指示操作并生成凭据。
第 3 步——生成密钥环与 HSM 密钥
密钥环(key ring)是加密密钥的容器。在此密钥环内,将为 EV 代码签名创建一个 HSM 密钥。
- 在 Cloud KMS 区块,导航到 Key Rings 并点击 Create Key Ring。
- 提供名称并选择适当的位置(Location)。
- 点击 Create。
- 密钥环创建后,用以下设置配置密钥:
- 保护级别(Protection Level):HSM
- 用途(Purpose):Asymmetric Sign(非对称签名)
- 算法(Algorithm):4096-bit RSA – PKCS#1 v1.5 padding – SHA256 Digest(或适合你需求的算法)
- 点击 Create 完成密钥生成。
第 4 步——证明(Attestation)凭证
Google Cloud HSM 提供证书颁发机构所需的证明数据,以验证加密操作确实发生在真实的 HSM 内。下载证明凭证:
- 进入 Key Management。
- 选择刚创建的密钥。
- 点击右侧三个点并选择 Download attestation 即可下载证明凭证。
响应将包含证明数据,可分享给证书颁发机构(CA)进行验证。
第 5 步——生成证书签名请求(CSR)
要申请 EV 代码签名证书,需生成关联到 HSM 密钥的 CSR。你需要允许 OpenSSL 使用 Google Cloud API 访问你的私钥。
- 使用 OpenSSL 生成 CSR:
openssl req -new -key <path_to_private_key> -out <path_to_csr> -subj "/C=US/ST=State/L=City/O=Organization/OU=Department/CN=CommonName"
在命令中相应更新所有必要细节。CSR 文件随后提交给证书颁发机构(CA)进行验证。
第 6 步——购买 EV 代码签名证书
选择提供 EV 代码签名证书并支持基于云 HSM 的受信任证书颁发机构。提交你的 CSR 并完成验证流程,包括:
- 业务验证。
- 组织合法性检查。
- 电话与邮箱验证。
获批后,CA 将签发你的 EV 代码签名证书。
第 7 步——在 Cloud HSM 上安装 EV 代码签名证书
收到 EV 代码签名证书后:
- 下载证书文件(.pfx 或 .cer)。
- 使用 Cloud KMS 界面或 CLI 将证书导入 Google Cloud HSM:
gcloud kms keys versions import --keyring=<key-ring-name> --key=<key-name> --location=<location> --algorithm=RSA_SIGN_PSS_2048_SHA256 --input-file=<path_to_certificate>
将 key-ring-name、key-name、location 与 path_to_certificate 替换为你的实际值。验证证书是否正确存储并链接到你的 HSM 密钥。
第 8 步——对应用进行数字签名
安装完成后,使用 OpenSSL 或 Microsoft SignTool 安全地签署可执行文件。
- 使用 Microsoft SignTool:
signtool sign /fd SHA256 /a /tr http://timestamp.digicert.com /td SHA256 <path_to_executable>
此命令为应用进行数字签名,并添加时间戳以延长签名有效期。你可更新证书颁发机构的时间戳服务器链接。
- 使用 OpenSSL:
openssl req -new -x509 -days 3650 -subj '/CN=test/' -sha256 -engine pkcs11 \
-keyform engine -key pkcs11:object=KEY_NAME > ca.cert
这会生成一个可验证真实性的签名文件。
Google Cloud HSM 用于 EV 代码签名的安全与合规优势
借助 Google Cloud 的 HSM,组织、软件发布者与开发者能够:
- 确保加密密钥受硬件安全模块保护,防止未授权访问与密钥窃取。
- 符合软件分发的行业合规要求,包括 FIPS 140-2 Level 3 与 Common Criteria。
- 在安全的、防篡改且可审计的环境中执行加密操作——如代码签名与证书管理。
- 将安全签名集成到 CI/CD 流水线,而无需暴露私钥,实现自动化、可扩展的软件发布。
结论
将 EV 代码签名证书与 Google Cloud 的 HSM 集成,通过确保私钥受保护的同时允许安全数字签名,强化了安全性。遵循本指南,你就能自信地为 EV 代码签名配置 Cloud HSM,帮助维护软件完整性与用户信任。这种方式还能在符合行业最佳实践的同时,简化安全签名流程。