Skip to content

Commit 7b565c7

Browse files
authored
Simplify root rollback check (5.3.5) (#248)
* Minor clarifications to the definition of TERMINATING Signed-off-by: Joshua Lock <[email protected]> * Simplify root metadata rollback description in 5.3.5 The version in new root metadata must always be N+1, as that is the version number used to address the file on the remote. Reported-by: Patrick Flynn <[email protected]> Signed-off-by: Joshua Lock <[email protected]> * Bump Date and VERSION for the prior two changes Signed-off-by: Joshua Lock <[email protected]> Signed-off-by: Joshua Lock <[email protected]>
1 parent 0e01637 commit 7b565c7

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

tuf-spec.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Title: The Update Framework Specification
33
Shortname: TUF
44
Status: LS
55
Abstract: A framework for securing software update systems.
6-
Date: 2022-04-28
6+
Date: 2022-09-09
77
Editor: Justin Cappos, NYU
88
Editor: Trishank Karthik Kuppusamy, Datadog
99
Editor: Joshua Lock, VMware
@@ -16,7 +16,7 @@ Boilerplate: copyright no, conformance no
1616
Local Boilerplate: header yes
1717
Markup Shorthands: css no, markdown yes
1818
Metadata Include: This version off, Abstract off
19-
Text Macro: VERSION 1.0.30
19+
Text Macro: VERSION 1.0.31
2020
</pre>
2121

2222
Note: We strive to make the specification easy to implement, so if you come
@@ -1023,12 +1023,13 @@ format:
10231023

10241024
: <dfn>TERMINATING</dfn>
10251025
::
1026-
A boolean indicating whether subsequent delegations should be considered.
1026+
A boolean indicating whether subsequent delegations should be considered
1027+
if a matching target is not found in this delegation.
10271028

10281029
As explained in the [Diplomat paper
10291030
](https://theupdateframework.io/papers/protect-community-repositories-nsdi2016.pdf),
10301031
terminating delegations instruct the client not to consider future trust
1031-
statements that match the delegation's pattern, which stops the delegation
1032+
statements that match this delegation's pattern, which stops the delegation
10321033
processing once this delegation (and its descendants) have been processed.
10331034
A terminating delegation for a package causes any further statements about a
10341035
package that are not made by the delegated party or its descendants to be
@@ -1314,14 +1315,11 @@ it in the next step.
13141315
version N+1 is not signed as required, discard it, abort the update cycle,
13151316
and report the signature failure.
13161317

1317-
5. **Check for a rollback attack.** The version number of the trusted
1318-
root metadata file (version N) MUST be less than the version
1319-
number of the new root metadata file (version N+1). Effectively, this means
1320-
checking that the version number signed in the new root metadata file is
1321-
indeed N+1. If the version of the new root metadata file is less than the version
1322-
of the trusted metadata file, discard it, abort the update cycle, and report the
1323-
rollback attack. In case they are equal, again discard the new root metadata, but
1324-
proceed the update cycle with the already trusted root metadata.
1318+
5. **Check for a rollback attack.** The version number of the new root
1319+
metadata (version N+1) MUST be exactly the version in the trusted root
1320+
metadata (version N) incremented by one, that is precisely N+1.
1321+
If the version of the new root metadata file is not N+1, discard it,
1322+
abort the update cycle, and report the rollback attack.
13251323

13261324
6. Note that the expiration of the new (intermediate) root metadata
13271325
file does not matter yet, because we will check for it in step 5.3.10.

0 commit comments

Comments
 (0)