代码签章查看源代码讨论查看历史
代码签名(Code signing)是对可执行文件或脚本进行数位签章以确认软件作者及保证软件在签名后未被修改或损坏的措施。此措施使用加密散列[1] 来验证真实性和完整性。
代码签名可以提供几大功能价值。最常用的需求是代码签名为部署提供了安全性。在某些编程语言中,它也可用来帮助防止命名空间冲突。几乎每个代码签名的实现都提供某种数字签名机制来验证作者或构建系统的身份,以及校验对象是否未被修改。它也可用来提供对象相关的版本信息,以及存储对象的其他元数据。
代码签名作为软件安全性依赖的效果取决于所支持签名密钥的安全性。与其他公钥基础设施(PKI)技术一样,系统的完整性依赖于发布者对其私钥免受未经授权访问的保护。存储在通用计算机的软件中的密钥易于受到影响。因此,将密钥存储在安全、防篡改的硬件密码设备(也称硬件安全模块,HSM)是更加安全的最佳实践。