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

Expand on the TUF client update workflow, per popular demand. #440

Merged
merged 16 commits into from
May 24, 2017
Merged
Changes from 1 commit
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions docs/tuf-spec.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The Update Framework Specification

18 May 2017
23 May 2017
Version 1.0 (Draft)

1. Introduction
Expand Down Expand Up @@ -1108,10 +1108,19 @@ Version 1.0 (Draft)
required, the root.json file is versioned and accessible by version number,
e.g., 3.root.json. Clients update the set of trusted root keys by requesting
the current root.json and all previous root.json versions, until one is
found that has been signed by keys the client already trusts. This is to
ensure that outdated clients remain able to update, without requiring all
previous root keys to be kept to sign new root.json metadata.

found that has been signed by a threshold of keys that the client already
trusts. This is to ensure that outdated clients remain able to update,
without requiring all previous root keys to be kept to sign new root.json
metadata.

In the event that the keys being updated are root keys, it is important to
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vladimir-v-diaz I think this is great! Should we say a bit more about this in Step 1 of Section 5.1?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should. Do we also explain how to recover from a fast-forward attack?

Note: I just reviewed section 7.1 and it seems accurate to me, at least in regard to filenames. Is there a sentence/statement in particular that is inaccurate?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, we do mention fast-forward attacks in the revised 1.5 section!

note that the new root.json must at least be signed by the keys listed as
root keys in the previous version of root.json, up to the threshold listed
for root in the previous version of root.json. If this is not the case,
clients will (correctly) not validate the new root.json file. For example,
if there is a 1.root.json that has threshold 2 and a 2.root.json that has
threshold 3, 2.root.json MUST be signed by at least 2 keys defined in
1.root.json and at least 3 keys defined in 2.root.json.

To replace a delegated developer key, the role that delegated to that key
just replaces that key with another in the signed metadata where the
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.