
The Update Framework (TUF) is a framework for secure content delivery and updates. It protects against various types of supply chain attacks and provides resilience to compromise. This repository is a reference implementation written in Python. It is intended to conform to version 1.0 of the TUF specification.
Python-TUF provides the following APIs:
-
tuf.api.metadata
: A "low-level" API designed to provide easy and safe access to TUF metadata and to handle (de)serialization from/to files. -
tuf.ngclient
: A client implementation built on top of the metadata API. -
tuf.repository
: A repository library also built on top of the metadata API. This module is currently not considered part of python-tuf stable API.
The reference implementation strives to be a readable guide and demonstration for those working on implementing TUF in their own languages, environments, or update systems.
The Update Framework (TUF) is a design that helps developers maintain the security of a software update system, even against attackers that compromise the repository or signing keys. TUF provides a flexible specification defining functionality that developers can use in any software update system or re-implement to fit their needs.
TUF is hosted by the Linux Foundation as part of the Cloud Native Computing Foundation (CNCF) and is utilized in production by various tech companies and open-source organizations. A variant of TUF called Uptane is used to secure over-the-air updates in automobiles.
For more information about TUF, visit TUF's website.
- Robust Security: TUF ensures the security of software update systems, even in the face of compromise or supply chain attacks. It employs a variety of cryptographic techniques to guarantee the integrity and authenticity of software updates.
- Flexible Specification: TUF provides a flexible specification that developers can adapt to fit their specific software update system requirements. This allows for easy integration into existing systems and promotes interoperability.
- Production Usage: TUF is utilized in production by various tech companies and open-source organizations, demonstrating its reliability and effectiveness in real-world scenarios.
- Variant Support: TUF's variant, Uptane, is specifically designed to secure over-the-air updates in automobiles, showcasing its versatility and applicability across different domains.
- Introduction to TUF's Design: Provides an overview of TUF's design principles and goals.
- The TUF Specification: Offers detailed documentation on TUF's specification, explaining its various components and functionalities.
- Developer Documentation, including API Reference and Instructions for Contributors
- Governance: Outlines the governance model for the reference implementation of TUF.
- Miscellaneous Docs: Additional documentation covering various aspects of TUF implementation and usage.
- Python-TUF Development Blog: Provides insights, updates, and news related to Python-TUF development.
For installation instructions, please visit the installation page.
Questions, feedback, and suggestions are welcomed on our mailing list or the CNCF Slack channel.
If you encounter any security issues or bugs, please refer to the security policy for reporting and guidelines.
This work is dual-licensed and distributed under the (1) MIT License and (2) Apache License, Version 2.0. Please see LICENSE-MIT and LICENSE for more details.
This project is hosted by the Linux Foundation under the Cloud Native Computing Foundation. TUF's early development was managed by members of the Secure Systems Lab at New York University. We appreciate the efforts of all maintainers and emeritus maintainers, as well as the contributors Konstantin Andrianov, Kairo de Araujo, Ivana Atanasova, Geremy Condra, Zane Fisher, Pankhuri Goyal, Justin Samuel, Tian Tian, Martin Vrachev, and Yuyu Zheng who significantly contributed to TUF's reference implementation. Maintainers and Contributors are governed by the CNCF Community Code of Conduct.
This material is based upon work supported by the National Science Foundation under Grant Nos. CNS-1345049 and CNS-0959138. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.