Anaconda 内容信任:Conda 签名验证

Anaconda 很高兴地宣布发布 conda 签名验证。此功能通过根据信任链验证软件包工件和元数据,来维护 conda 安装的完整性。

conda 签名验证的优势

当 conda 验证工件签名时,它向用户保证他们即将安装的软件包与在我们安全的构建网络上生成时完全一致。此验证步骤消除了软件供应链中许多潜在的单点故障 — 大大降低了中间人攻击、受损镜像或内容分发网络、TLS 配置错误等对客户系统的影响。这极大地保护了我们的软件包分发系统免受成为客户端系统攻击媒介的威胁,并为用户提供了有关可能泄露的信息。

Conda 签名验证确保用户在获取软件包或关于该软件包的数据时,可以知道它是否可信,以及该软件包是否来自可靠的来源且未被篡改。

我们如何签名和验证工件?

conda 签名验证设计基于 The Update Framework (TUF)。TUF 最初于 2009 年开发,旨在解决软件包管理器普遍存在的漏洞。TUF 提供了一个灵活的框架和规范,开发人员可以将其应用于任何软件更新系统,以防御各种攻击,即使是针对那些破坏仓库或验证密钥的复杂攻击者。

在 Anaconda 构建软件包后,软件包及其元数据将被签名,在我们的安全构建网络上生成签名。然后,软件包和相应的签名元数据将上传到 Anaconda 的高级仓库。

当 conda 获取这些软件包时,conda 会验证签名是否来自受信任的签名者并与软件包数据匹配。信任是通过使用 root 元数据(随 conda 一起提供)来建立的,以委派给验证机构。简而言之,root 元数据为软件包签名者提供担保。并且 root 元数据也通过 root 链接保持安全更新:conda 使用当前信任的版本来验证下一个版本的 root 元数据。Anaconda 对 root 密钥管理实施了严格控制的安全程序,需要多个权威机构在不同地点使用离线密钥达成共识,每个密钥仅在硬件安全设备上创建和保存。

通过仔细地将安全责任划分为 root 信任机构、密钥管理器机构和软件包验证机构,我们实现了一个具有抗妥协能力、灵活可扩展且稳健的安全解决方案。因此,即使攻击者破坏了仓库服务器或镜像,conda 仍然可以判断软件包或其元数据在我们构建后是否被篡改,用户仍然可以拒绝修改后的软件包。此外,即使我们自己的安全构建网络上的验证过程本身遭到破坏,conda 也可以通过使用 root 元数据来确定信任谁。

谁可以使用 conda 签名验证,以及如何使用?

最初,我们的专业仓库 (repo.anaconda.cloud) 的用户需要进行一些更新才能启用此功能。请参阅此处的安装说明和预期结果以开始使用。

Conda 签名验证过程。

咨询专家

与我们的专家之一交流,为您的 AI 之旅寻找解决方案。

咨询专家