使用Azure Key Vault+AzureSignTool进行EV代码签名的可行性及托管HSM相关问题
相关问题落地经验说明
Azure Key Vault + AzureSignTool 方案可行性
这套方案是成熟可落地的,我们团队在无物理接触的远程CI构建节点上已经使用该方案2年以上,专门用于EV签名MSI、EXE等Windows分发包,完全满足规避Smart Defender弹窗的需求。
EV代码签名证书要求私钥不可导出、不能明文落地到不可控设备,传统USB硬件Token的方案天然不支持远程无接触节点使用,该组合刚好解决这个痛点:
- 提前将EV证书导入Azure Key Vault,配置为不可导出状态,完全符合CA机构对EV证书的私钥安全管理要求
- 远程构建节点不需要存储任何证书敏感信息,只需为节点使用的身份(服务主体/托管标识)开通Key Vault的签名权限,最小权限配置仅需开放
sign动作权限即可 - 签名操作示例命令:
AzureSignTool.exe sign --azure-key-vault-url <你的Key Vault访问地址> --azure-key-vault-certificate <EV证书在Key Vault中的名称> --timestamp-rfc3161 <合规时间戳服务器地址> --file-digest sha256 待签名的安装包.msi
实际使用过程中,只要EV证书本身是微软信任的CA机构颁发、签名时附带合法时间戳,最终分发的安装包不会触发Smart Defender的未知发布者警告,和本地使用USB Token签名的效果完全一致。
Managed HSM Pool 必要性说明
该功能完全不是当前场景的必备选项,你可以直接忽略。
普通层级的Azure Key Vault已经满足EV代码签名的安全要求,只有当你的企业有强合规要求,比如必须满足FIPS 140-2 Level 3加密模块认证、要求私钥必须存储在租户独占的硬件安全模块中时,才需要采购使用Managed HSM Pool,普通商用场景不需要额外使用该功能。
内容的提问来源于stack exchange,提问作者Jakub Sowa
相关产品推荐
相关产品推荐

