Sigstore密码验证系统已准备就绪

Google 宣布形成 Sigstore 项目组件的第一个稳定版本,该项目据称适合创建工作实现。 Sigstore 开发使用数字签名进行软件验证的工具和服务,并维护确认更改真实性的公共日志(透明日志)。 该项目是在非营利组织 Linux 基金会的支持下由 Google、Red Hat、Cisco、vmWare、GitHub 和 HP Enterprise 开发的,OpenSSF(开源安全基金会)组织和普渡大学也参与其中。

Sigstore 可以被认为是 Let's Encrypt 代码,提供对代码进行数字签名的证书和自动验证的工具。 借助 Sigstore,开发人员可以对与应用程序相关的工件进行数字签名,例如发布文件、容器映像、清单和可执行文件。 签名材料反映在防篡改的公共日志中,可用于验证和审计。

Sigstore 使用短暂的临时密钥,而不是永久密钥,这些密钥是根据 OpenID Connect 提供商确认的凭据生成的(在生成创建数字签名所需的密钥时,开发人员通过链接到一个 OpenID 提供商来识别自己的身份)电子邮件)。 密钥的真实性是使用公共集中式日志进行验证的,这使得可以验证签名的作者是否正是他所声称的人,并且签名是由负责过去发布的同一参与者生成的。

Sigstore 的实施准备是由于两个关键组件 Rekor 1.0 和 Fulcio 1.0 版本的形成,其软件接口已声明稳定并将继续向后兼容。 服务组件是用 Go 编写的,并在 Apache 2.0 许可证下分发。

Rekor 组件包含一个日志实现,用于存储反映项目信息的数字签名元数据。 为了确保完整性并防止事后数据损坏,使用 Merkle Tree 树结构,其中每个分支通过联合(树)哈希验证所有底层分支和节点。 有了最终的哈希值,用户可以验证整个操作历史记录的正确性,以及数据库过去状态的正确性(数据库新状态的根验证哈希值是根据过去的状态计算的) )。 提供 RESTful API 用于验证和添加新记录以及命令行界面。

Fulcio 组件 (SigStore WebPKI) 包括一个用于创建证书颁发机构(根 CA)的系统,该系统根据通过 OpenID Connect 验证的电子邮件颁发短期证书。 证书的生命周期为20分钟,在此期间开发者必须有时间生成数字签名(如果证书随后落入攻击者手中,则该证书已经过期)。 此外,该项目正在开发 Cosign(容器签名)工具包,旨在为容器生成签名、验证签名并将签名的容器放置在与 OCI(开放容器计划)兼容的存储库中。

Sigstore的实施可以提高程序分发渠道的安全性,并防止针对替代库和依赖项(供应链)的攻击。 开源软件的关键安全问题之一是难以验证程序来源和验证构建过程。 例如,大多数项目使用哈希来验证版本的完整性,但身份验证所需的信息通常存储在未受保护的系统和共享代码存储库中,因此攻击者可以破坏验证所需的文件并引入恶意更改而不引起怀疑。

由于管理密钥、分发公钥和撤销受损密钥的困难,使用数字签名进行发布验证尚未广泛使用。 为了使验证有意义,还需要组织可靠且安全的流程来分发公钥和校验和。 即使有了数字签名,许多用户也会忽略验证,因为他们需要花时间学习验证过程并了解哪个密钥值得信赖。 Sigstore 项目试图通过提供现成且经过验证的解决方案来简化和自动化这些流程。

来源: opennet.ru

添加评论