如何更好的使用代码签名证书
代码签名证书可以验证软件开发者或发布者的身份,并确认代码的完整性从代码签名到下载代码的时间是完整的,这证明代码是可信的。不过大家在使用中还是要注意一些事项,将代码签名证书的作用发挥到最大。
1、安全密钥存储
如果用于签名的私钥被泄露或从组织中窃取,它可用于对嵌入恶意软件的软件进行签名,因此发布的软件注册为源自该组织的合法软件。私钥应在硬件安全模块 (HSM) 中进行保护或进行静态加密。根据 CA/Browser (CA/B) 论坛要求,公共信任使用的密钥必须存储在 HSM 中。
2、强制执行密钥和签名访问控制
设置策略并强制执行密钥访问控制,以确保只有获得授权的开发人员和用户才能在需要时使用特定密钥进行签名。在云中生成密钥,以免它们被共享、丢失或被盗。强制执行职责分离,即将生成密钥者与签名者的职责分开。实施多因素身份验证 (MFA) 以确保访问签名的人确实是他们所说的人。撤消已离开或不再需要访问签名或密钥生成的人员的访问权限。
3、监控和审核密钥签名工作流程
跟踪谁在什么时间签名,以便您可以快速响应未经授权的签名并采取适当的补救措施。定期审核与密钥对相关的所有活动,包括生成、证书操作以及密钥和签名访问的分配。
4、保持最新状态并在全公司范围内执行有关加密标准的政策
行业要求可能会发生变化,以帮助组织在威胁形势下保持领先地位。新的CA/浏览器论坛要求规定3072位RSA作为公开可信代码签名和时间戳证书的最低密钥要求,自 2021年6月1日起生效。组织内的开发人员和用户可能会也可能不会意识到这些变化生成密钥或签名代码。组织必须强制执行行业要求,以防止用户使用弱或不合规的算法、密钥大小或曲线生成密钥或请求证书。
5、撤销被破坏的证书
果您发现被破坏的密钥或签名的恶意软件,请向您的证书颁发机构 (CA) 报告该事件。代码签名证书将需要被撤销,这将使软件无效并阻止恶意软件的进一步传播。
6、为您的签名代码添加时间戳
避免代码签名证书过期时软件意外过期的风险。代码签名证书的有效期为 1-3 年。当代码签名证书到期时,签名的软件的有效性也将到期,除非软件在签名时加上时间戳。系统会记录时间戳,软件只要在生产中就一直有效。为代码添加时间戳的另一个原因是最大限度地减少证书吊销的影响。如果发现恶意软件并且必须撤销关联的证书,时间戳会将影响降到最低,因为撤销只会影响在入侵日期之后发布的软件。