Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Secondary literature with detailed rationale and recommendations #91

Open
joshuagl opened this issue Feb 14, 2020 · 10 comments
Open

Secondary literature with detailed rationale and recommendations #91

joshuagl opened this issue Feb 14, 2020 · 10 comments

Comments

@joshuagl
Copy link
Member

It could be valuable for potential adopters of TUF if there were some documentation beyond the specification, published papers and conversations captured on GitHub, that goes into detail about certain decisions, makes recommendations where the specification deliberately leaves things open and points to open implementations of the specification (i.e. Notary and PEP 458) as examples of the context for the various decisions that must be made when applying the TUF specification to a scenario.

The spec is a good document but provides several points where choices must be made without providing any explanation or guidance.

The papers which motivated various spec decisions and changes provide interesting reading but can be a little dense when trying to understand a nuance of the specification where the context for a decision may be difficult to elicit and, furthermore, the papers are a static document, unlike the specification itself.

In contrast to the specification, which should only say “do XYZ”, this additional document could say things like “do XYZ because foo, bar, baz” or “do X if your situation is quux (akin to projects ABC) or do Y if it is thud (akin to projects DEF)”.

cc @lukpueh

@JustinCappos
Copy link
Member

JustinCappos commented Feb 14, 2020 via email

@lukpueh
Copy link
Member

lukpueh commented Mar 6, 2020

Also see secondary literature worthy discussion by @mnm678 and @trishankatdatadog about when to use (not use) optional length/hashes fields in timestamp and snapshot metadata.

@joshuagl
Copy link
Member Author

joshuagl commented Jun 5, 2020

Trishank shared some wisdom during a PEP 458/Warehouse integration discussion that I think is worth capturing as a recommendation in the secondary literature.

Paraphrasing his advice:

keep a pinned trusted copy of the root metadata, at least the hash, in the repository code so that there's a trusted base to build from

@trishankatdatadog please correct me if I didn't quite capture that right.

@trishankatdatadog
Copy link
Member

@trishankatdatadog please correct me if I didn't quite capture that right.

Absolutely right, thank you 🙏

@joshuagl
Copy link
Member Author

joshuagl commented Aug 28, 2020

Other potential secondary literature topics:

  1. how to initialise trust from a local copy of the metadata How do we initialize trust with local metadata, and no access to a remote repository? #108
  2. techniques for recovering from an interrupted update How should clients handle interrupted updates? #69, or how to interpret the following statement from the detailed client workflow:

Note: If a step in the following workflow does not succeed (e.g., the update is aborted because a new metadata file was not signed), the client should still be able to update again in the future. Errors raised during the update process should not leave clients in an unrecoverable state.

@joshuagl
Copy link
Member Author

joshuagl commented Oct 6, 2020

Another topic to include:

@joshuagl
Copy link
Member Author

@joshuagl
Copy link
Member Author

@mnm678
Copy link
Collaborator

mnm678 commented May 18, 2022

Validating root metadata before snapshoting, as mentioned in theupdateframework/go-tuf#292

@joshuagl
Copy link
Member Author

Section 5.4 of the Mercury paper (section 5.4) suggests that a package manager bundle both root and snapshot metadata in order to offer some rollback protection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants