|
| 1 | +# <img src="https://cdn.rawgit.com/theupdateframework/artwork/3a649fa6/tuf-logo.svg" height="100" valign="middle" alt="TUF"/> A Framework for Securing Software Update Systems |
| 2 | +---------------------------- |
| 3 | +[The Update Framework (TUF)](https://theupdateframework.io/) is a framework for |
| 4 | +secure content delivery and updates. It protects against various types of |
| 5 | +supply chain attacks and provides resilience to compromise. |
| 6 | + |
| 7 | +NGO-TUF is started from the idea of providing a Go implementation of TUF that is heavily influenced by the |
| 8 | +design decisions made in [python-tuf](https://github.com/theupdateframework/python-tuf). |
| 9 | + |
| 10 | +About The Update Framework |
| 11 | +-------------------------- |
| 12 | +The Update Framework (TUF) design helps developers maintain the security of a |
| 13 | +software update system, even against attackers that compromise the repository |
| 14 | +or signing keys. |
| 15 | +TUF provides a flexible |
| 16 | +[specification](https://github.com/theupdateframework/specification/blob/master/tuf-spec.md) |
| 17 | +defining functionality that developers can use in any software update system or |
| 18 | +re-implement to fit their needs. |
| 19 | + |
| 20 | +TUF is hosted by the [Linux Foundation](https://www.linuxfoundation.org/) as |
| 21 | +part of the [Cloud Native Computing Foundation](https://www.cncf.io/) (CNCF) |
| 22 | +and its design is [used in production](https://theupdateframework.io/adoptions/) |
| 23 | +by various tech companies and open source organizations. |
| 24 | + |
| 25 | +Please see [TUF's website](https://theupdateframework.com/) for more information about TUF! |
| 26 | + |
| 27 | +How to use it |
| 28 | +------------- |
| 29 | +See the [basic_repo.go](examples/basic_repo.go) example which demonstrates how to *manually* create and |
| 30 | +maintain repository metadata using the low-level Metadata API. |
| 31 | + |
| 32 | +The example highlights the following functionality supported by the metadata API: |
| 33 | + |
| 34 | +* creation of top-level metadata |
| 35 | +* target file handling |
| 36 | +* consistent snapshots |
| 37 | +* key management |
| 38 | +* top-level delegation and signing thresholds |
| 39 | +* metadata verification |
| 40 | +* target delegation |
| 41 | +* in-band and out-of-band metadata signing |
| 42 | +* writing and reading metadata files |
| 43 | +* root key rotation |
| 44 | + |
| 45 | +Roadmap |
| 46 | +------------- |
| 47 | +[x] Bootstrap a metadata API implementation |
| 48 | + |
| 49 | +[x] Recreate the `basic_repo.py` example |
| 50 | + |
| 51 | +[] Verify the metadata API is complete |
| 52 | + |
| 53 | +[] Implement a client (standalone package built on top of metadata, to be split into several other parts) |
| 54 | + |
| 55 | +[] Implement a repository (standalone package built on top of metadata, to be split into several other parts) |
| 56 | + |
| 57 | +Documentation |
| 58 | +------------- |
| 59 | +* [Introduction to TUF's Design](https://theupdateframework.io/overview/) |
| 60 | +* [The TUF Specification](https://theupdateframework.github.io/specification/latest/) |
| 61 | + |
| 62 | +Contact |
| 63 | +------- |
| 64 | +Questions, feedback, and suggestions are welcomed on the [#tuf] |
| 65 | +(https://cloud-native.slack.com/archives/C8NMD3QJ3) channel on |
| 66 | +[CNCF Slack](https://slack.cncf.io/). |
| 67 | + |
| 68 | +We strive to make the specification easy to implement, so if you come across |
| 69 | +any inconsistencies or experience any difficulty, do let us know by sending an |
| 70 | +email, or by reporting an issue in the GitHub [specification |
| 71 | +repo](https://github.com/theupdateframework/specification/issues). |
| 72 | + |
0 commit comments