代码签名几乎已成为所有向客户和合作伙伴分发代码的组织的必要业务构成元素。代码签名验证谁是特定代码的发行者,保证资产在被签收之前未被修改。随带签名的软件一起交付的证书,是用户安装前确定软件来自合法来源的关键方式。
现在的许多软件市场,包括移动应用商店,都需要代码符合特定的数码签名要求。如果代码不符合这些要求,则用户必须在安装前收到提醒,如“未知发布者”警报或其他消息。对于合法的软件开发商,让客户接收这些消息会造成很大的问题。
代码签名也被需要现场更新设备固件和软件的设备制造商广泛使用。
代码签名架构由多个主要方面构成,包括:
公钥基础设施 (PKI) 技术,用于创建数码签署。
数码签署是根据私钥和程序文件内容生成的。
在分发代码时,开发商将签名封装到文件或关联的目录文件中。
收到签名的代码后,用户或设备可结合文件、证书和相关的公钥来验证文件签署者的身份和文件的完整性。
代码签名环境中存在一个关键的漏洞:私钥。任何可以访问合法证书所有者私钥的人员均可创建一个看起来像是该组织签名的软件。有很多违规事件均是使用了虚假代码签名证书,对证书所有者的声誉和业务造成了明显破坏。
为有效地保护代码签名中使用的私钥,组织一定要利用硬件安全模块 (HSM)。保存在服务器或其他系统中的密钥非常容易受到未授权访问并造成安全问题。将密钥保存到稳定、防篡改的 HSM 中可避免这些问题
安全的密钥生成和存储
高可用性和可靠性
性能和可扩展性
支持椭圆曲线密码学 (ECC)
健全的管理访问控制
治理和合规性
提供加密保护。