红帽和谷歌推出了 Sigstore,一项用于加密代码验证的服务

红帽、谷歌与普渡大学共同创立了 Sigstore 项目,旨在创建工具和服务,用于使用数字签名验证软件并维护公共日志以确认真实性(透明日志)。 该项目将在非营利组织 Linux 基金会的赞助下开发。

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

由于管理密钥、分发公钥和撤销受损密钥的困难,只有一小部分项目在分发版本时使用数字签名。 为了使验证有意义,还需要组织可靠且安全的流程来分发公钥和校验和。 即使有了数字签名,许多用户也会忽略验证,因为他们需要花时间研究验证过程并了解哪个密钥值得信赖。

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

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

Sigstore 既提供了您可以使用的现成服务,也提供了一组允许您在自己的设备上部署类似服务的工具。 该服务对所有开发者和软件提供商免费,并部署在一个中立的平台——Linux 基金会上。 该服务的所有组件都是开源的,用 Go 编写,并在 Apache 2.0 许可证下分发。

在开发的组件中,我们可以注意到:

  • Rekor 是一种日志实现,用于存储反映项目信息的数字签名元数据。 为了确保完整性并防止事后数据损坏,使用了树状结构“Merkle Tree”,其中每个分支通过联合(树状)哈希来验证所有底层分支和节点。 有了最终的哈希值,用户可以验证整个操作历史记录的正确性,以及数据库过去状态的正确性(数据库新状态的根验证哈希值是根据过去的状态计算的) )。 为了验证和添加新记录,提供了 Restful API 以及 cli 接口。
  • Fulcio (SigStore WebPKI) 是一个用于创建证书颁发机构 (Root-CA) 的系统,该系统根据通过 OpenID Connect 验证的电子邮件颁发短期证书。 证书的生命周期为20分钟,在此期间开发者必须有时间生成数字签名(如果证书随后落入攻击者手中,则该证书已经过期)。
  • Сosign(容器签名)是一个工具包,用于为容器生成签名、验证签名并将签名的容器放置在与 OCI(开放容器计划)兼容的存储库中。

来源: opennet.ru

添加评论