如何创建并实施有效的代码签名策略? 编写内部代码签名策略指南
随着对成熟签名要求的需求不断增加,组织和开发团队必须建立并执行可靠的签名策略和流程以保护软件。通过创建并记录代码签名的正式策略,您可以让您的开发人员和工程师遵循保护您构建的软件所需要的最佳实践。
应该在代码签名策略指南中包含哪些内容?
有效的代码签名策略包括颁发及使用代码签名密钥的指南和过程,包括以下事项:
密钥颁发
在建立管理协议时,设置谁可以颁发密钥以及何时颁发密钥的控制与过程。团队成员应该知道,根据其角色,何时颁发密钥是合适的。管理要颁发的密钥类型以及与其相关的属性。这有助于避免颁发带有弱算法的新密钥,这类密钥会引入攻击途径。
密钥管理
为用户角色设置控制和过程。谁管理密钥? 如何在团队、组织或生产阶段中根据角色划分密钥管理职责? 这些过程应包括对整个组织内的所有密钥进行位置追踪。
密钥存储
密钥必须受到保护。为密钥存储设置控制与过程,无论其是否被使用。这应包括HSM、令牌、USB和使用多因素身份验证的密钥访问。团队成员必须知道如何避免丢失或不正确地存储密钥。
签名权限
团队成员应该知道谁有权签名,以及在何时签名是合适的。他们还应该知道何时未授予签名权限,以及如何请求签名(若权限不是其角色的一部分)。
密钥使用
如何使用或不使用密钥是正确的签名过程的重要组成部分。密钥应该在正确的时候被正确的人使用。
防止密钥共享
密钥共享是一种常见的做法。这也是最危险的做法之一。团队成员永远不应该共享密钥,即使是在存储库或内部服务器、系统和网络中也是如此。密钥应该由适当的个人根据其角色进行唯一地颁发、控制和存储。
连续签名
代码和软件签名不应被视为事后的补救办法或繁琐的合规步骤。每个CI/CD管道都应包括CS,即连续签名,以便正确且一致地实践代码安全性。
请阅读此处的指南,以了解有关如何编写内部代码签名策略的全面说明。