TUF 1.0 可用,这是一个用于组织安全更新交付的框架

TUF 1.0(更新框架)版本已经发布,提供了安全检查和下载更新的工具。该项目的主要目标是保护客户免受对存储库和基础设施的典型攻击,包括反击攻击者在获得生成数字签名的密钥或破坏存储库后创建的虚构更新的推广。该项目是在 Linux 基金会的支持下开发的,用于提高 Docker、Fuchsia、Automotive Grade Linux、Bottlerocket 和 PyPI 等项目中更新交付的安全性(预计将在 PyPI 中包含下载验证和元数据)不远的将来)。 TUF 参考实现代码是用 Python 编写的,并根据 Apache 2.0 许可证分发。

该项目正在开发一系列库、文件格式和实用程序,这些库、文件格式和实用程序可以轻松集成到现有的应用程序更新系统中,从而在软件开发人员方面发生关键泄露时提供保护。要使用TUF,只需将必要的元数据添加到存储库中,并将TUF中提供的用于下载和验证文件的过程集成到客户端代码中即可。

TUF 框架承担检查更新、下载更新以及验证其完整性的任务。更新安装系统不会直接干扰额外的元数据,其验证和加载由 TUF 承担。为了与应用程序和更新安装系统集成,提供了用于访问元数据的低级 API 和高级客户端 API ngclient 的实现,准备与应用程序集成。

TUF 可以应对的攻击包括以更新为幌子替换旧版本,以阻止软件漏洞的更正或用户回滚到易受攻击的旧版本,以及推广使用受损的正确签名的恶意更新。关键是,对客户端进行 DoS 攻击,例如用无休止的更新填满磁盘。

通过维护存储库或应用程序状态的单独、可验证的记录,可以防止软件提供商的基础设施受到损害。 TUF 验证的元数据包括有关可信任密钥的信息、用于评估文件完整性的加密哈希、用于验证元数据的附加数字签名、有关版本号的信息以及有关记录生命周期的信息。用于验证的密钥的寿命有限,需要不断更新以防止旧密钥形成签名。

通过使用共享信任模型来降低整个系统受到损害的风险,其中各方仅限于其直接负责的区域。系统使用具有自己密钥的角色层次结构,例如,根角色为负责存储库中的元数据、更新生成时间和目标程序集的数据的角色签名密钥,反过来,负责程序集签名的角色与所交付文件的认证相关的角色。

TUF 1.0 可用,这是一个用于组织安全更新交付的框架

为了防止密钥泄露,使用了一种及时撤销和替换密钥的机制。每个单独的密钥仅包含最低限度的必要权力,并且身份验证操作需要使用多个密钥(单个密钥的泄露不允许立即对客户端进行攻击,并且要危害整个系统,所有参与者的密钥都必须是被捕获)。客户端只能接受比之前接收到的文件更新的文件,并且仅根据经过认证的元数据中指定的大小下载数据。

TUF 1.0.0 的发布版本提供了 TUF 规范的完全重写且稳定的参考实现,您可以在创建自己的实现或集成到项目中时将其用作现成的示例。新的实现包含的代码显着减少(1400 行而不是 4700 行),更易于维护并且可以轻松扩展,例如,如果需要添加对特定网络堆栈、存储系统或加密算法的支持。

来源: opennet.ru

添加评论