暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Sigstore:软件工件的信任根源

云原生数据库 2023-05-19
1037

Sigstore 已成为从 Kubernetes 到 NPM、Maven 和 PyPi 等一切事物的默认软件签名方法,可验证超过一百万个开源包的完整性。

对于使用互联网的大约50亿人来说,只有一小部分人了解传输层安全 (TLS)、数字证书或公钥的工作原理。说说您对用户今天在互联网上仍然面临的安全风险的看法,但在过去 20 年中,这些用于网站和网站访问者之间信任的构建块协议在处理大规模互联网方面表现得非常出色。

相比之下,软件供应链安全的概念还是比较新的。关于SolarWinds和Log4j的头条新闻让人们对后门有了一些基本认识,这些后门是在开发人员使用来源不明的软件工件时创建的。但是,我们如何采用这些关于信任在互联网上如何运作的相同基本原则,并将它们应用于在软件工件与使用它们的数百万开发人员之间建立信任?大多数软件开发人员仍处于尝试理解这一点的最初阶段。

最近,我听到 Vint Cerf 讨论了早期网络公钥基础设施 (PKI) 与新兴的工件签名和开源签名生态系统之间的相似之处。令我震惊的是,虽然互联网上的大部分信任是由有影响力的团体推动的,例如证书颁发机构浏览器论坛,该论坛通过将这些协议融入浏览器和操作系统来激发对这些协议的使用。对于软件供应链安全,没有同等的群体在推动这一点。我们都在以开放社区的方式,在开源项目的基础上让它发挥作用。

如果您想了解这个新兴安全领域的发展,没有比Sigstore(软件供应链的规范工件签名项目)更有动力或行业联合的开源项目了。让我们看一下 Sigstore 的一些原则和原语,这样当您下次看到您的包管理器或构建系统正在使用 Sigstore 的批准蜡印时,您就会了解引擎盖下的内容。

就像软件工件的证书透明度一样

Web 的 PKI 基础设施的设计方式是,任何Web 证书颁发机构 (CA) 都可以信任为 Internet 上的任何域颁发证书。防止这些证书被滥用——比如说,CA 为他们不控制的域颁发证书,比如你的银行的网站——就是所谓的证书透明度框架。它是一个开放的区块链框架,提供“仅附加”公共分类账。

透明度日志至关重要,因为它们使开发人员和安全团队能够监控为公司域名颁发的所有证书是否正确颁发。这有助于您检测是否有人伪装成您的公司并欺骗您的流量。透明度日志的要点是记录这些错误,以便您以后可以找到它们,从中恢复并减轻不良影响。

Sigstore 是一个开源框架,它以证书透明度框架(以及流行的 TLS 框架Let’s Encrypt)为灵感,旨在解决供应链安全中软件工件完整性方面存在的非常相似的挑战。当我们下载一个软件工件时,我们如何知道它是由谁创建的,以及它是我们正在下载的同一个工件(而不是恶意冒名顶替者)?Sigstore 通过允许开发人员安全地签署软件工件(例如发布文件、容器映像、二进制文件、SBOM(软件物料清单)等)来解决这个问题。然后将签名的材料存储在防篡改的公共透明日志中。

OSS 出处的公钥原语

驱动 Sigstore 的三个关键原语。您需要将它们全部三个一起构建整个 Sigstore 难题,但它们服务于不同且独立的目的:

1.Rekor是透明日志。正是这种数据结构——类似于网络的证书透明度——你只能在其中添加东西而不能删除东西。它保留了发布的每个软件签名的记录,并让世界上的每个人都可以共享软件创建者、软件更改者以及时间的出处。

2.Fulcio是 Sigstore 原语,它允许开发人员获得软件工件的证书——很像证书颁发机构为 Internet 颁发 HTTPS 或 TLS 证书的方式,但特别适用于代码签名。它是一个根证书颁发机构,向授权身份颁发临时证书并发布到 Rekor 日志。

3.Cosign是旗舰客户端之一,它包装了所有基础设施的复杂性,因此开发人员可以使用 OpenID Connect 协议验证他们的身份、运行命令、签署软件,并让所有这些都在幕后发生。Cosign 专为容器的签名和验证而设计,但也可用于其他通用软件工件

软件签名的正确抽象

软件供应链安全最终可能与 Web 上的 TLS 有一个共同点,那就是大多数使用它的人可能甚至不知道幕后是什么,以及如何使这一切成为可能。没关系!

Sigstore 是概念的近 10 年演变,可追溯到 2014 年 ACM 队列论文证书透明度:公共、可验证、仅附加日志。谷歌开源 Trillian(一个使用透明日志作为核心原语的数据库)是 2016 年的又一大进步。Mozilla 在深入了解“知道你的软件中有什么”的重要性后不久围绕二进制透明所做的工作是另一个巨大的灵感为项目。当然,布兰登菲利普斯对富尔西奥的介绍是该项目的另一个分水岭。

但最终作为开发人员,您最关心的是 Sigstore,您不必考虑它,也不必欣赏导致它存在的任何进化步骤。

您应该关心的是,Sigstore 已成为从 Kubernetes 到 NPM (JavaScript)、Maven (Java) 和 PyPi (Python) 等语言注册中心的默认软件签名方法。超过一百万个软件工件存在于 Sigstore 的透明日志 (Rekor) 中。

今天,当您从流行的注册表下载包时,您可能在不知不觉中使用了 Sigstore,就像您在浏览网页时不再考虑 HTTPS 或证书一样。这是我们在软件供应链安全方面取得重大进展的最可靠迹象。



Dan Lorenc

文由“云原生数据库”小编翻译。


文章转载自云原生数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论