Skip to content

Commit c43045a

Browse files
authored
Remove ambiguity in update root after a failed attempt (#196)
In section 5.3. Update the root role the specification suggests, in multiple steps (5.3.4, 5.3.5 and 5.3.10) that should the client fail to verify the updated root metadata the downloaded data should be discarded, the error reported, and: > On the next update cycle, begin at step § 5.3 Update the root role and > version N of the root metadata file. This directive only makes sense if the client application continues running between update cycles and therefore still has initial trusted root metadata loaded and a fixed update start time recorded. For at least python-tuf and go-tuf this is not how the update workflow is implementated. Avoid confusion by removing the recommendation to start at 5.3 on the next update cycle and instead leave only the suggestion to remove unverified data. Logically, the next update cycle starts at the first step -- loading the initial trusted root metadata. Signed-off-by: Joshua Lock <jlock@vmware.com>
1 parent d7bc72e commit c43045a

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

tuf-spec.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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.27
19+
Text Macro: VERSION 1.0.28
2020
</pre>
2121

2222
Note: We strive to make the specification easy to implement, so if you come
@@ -1312,17 +1312,15 @@ it in the next step.
13121312
the trusted root metadata file (version N), and (2) a threshold of keys
13131313
specified in the new root metadata file being validated (version N+1). If
13141314
version N+1 is not signed as required, discard it, abort the update cycle,
1315-
and report the signature failure. On the next update cycle, begin at step
1316-
[[#update-root]] and version N of the root metadata file.
1315+
and report the signature failure.
13171316

13181317
5. **Check for a rollback attack.** The version number of the trusted
13191318
root metadata file (version N) MUST be less than or equal to the version
13201319
number of the new root metadata file (version N+1). Effectively, this means
13211320
checking that the version number signed in the new root metadata file is
13221321
indeed N+1. If the version of the new root metadata file is less than the
13231322
trusted metadata file, discard it, abort the update cycle, and report the
1324-
rollback attack. On the next update cycle, begin at step [[#update-root]]
1325-
and version N of the root metadata file.
1323+
rollback attack.
13261324

13271325
6. Note that the expiration of the new (intermediate) root metadata
13281326
file does not matter yet, because we will check for it in step 5.3.10.
@@ -1338,8 +1336,7 @@ it in the next step.
13381336
10. **Check for a freeze attack.** The expiration timestamp in the
13391337
trusted root metadata file MUST be higher than the fixed update start time.
13401338
If the trusted root metadata file has expired, abort the update cycle,
1341-
report the potential freeze attack. On the next update cycle, begin at step
1342-
[[#update-root]] and version N of the root metadata file.
1339+
report the potential freeze attack.
13431340

13441341
11. **If the timestamp and / or snapshot keys have been rotated, then delete the
13451342
trusted timestamp and snapshot metadata files.** This is done

0 commit comments

Comments
 (0)