Skip to content

Commit 2eccb59

Browse files
committed
Remove 2nd targets rollback attack check
In the client application workflow, remove rollback attack check for top-level targets file, which is (1) redundant and (2) prevents recovery from a fast-forward attack. (1) rollback attacks, via serving older versions of targets or top-level targets than the previously trusted versions, are already prevented by step 3.3.3 of the client workflow, where version numbers of targets and delegated targets in the new snapshot metadata are asserted to be greater than those in the prior trusted snapshot metadata. This, in combination with the 4.1 check that asserts that hashes and version of the actual targets metadata match the ones in the new trusted snapshot, makes another version number check, i.e the one removed in this commit, obsolete. (2) fast-forward attack recovery, as described in 1.9, works by having the client remove the trusted timestamp and snapshot metadata after a non-root key rotation, so that the client can overcome the version comparison check, and update from a compromised high version to a recovered lower version. However, 1.9 does not mention removing trusted targets metadata after a key rotation. As a consequence, the additional version number check, removed in this commit, would prevent updating recovered targets metadata after a fast-forward attack.
1 parent 6c6eb9d commit 2eccb59

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

tuf-spec.md

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,42 +1214,36 @@ non-volatile storage as FILENAME.EXT.
12141214
trusted root metadata file. If the new targets metadata file is not signed
12151215
as required, discard it, abort the update cycle, and report the failure.
12161216

1217-
* **4.3**. **Check for a rollback attack.** The version number of the trusted
1218-
targets metadata file, if any, MUST be less than or equal to the version
1219-
number of the new targets metadata file. If the new targets metadata file is
1220-
older than the trusted targets metadata file, discard it, abort the update
1221-
cycle, and report the potential rollback attack.
1222-
1223-
* **4.4**. **Check for a freeze attack.** The latest known time should be
1217+
* **4.3**. **Check for a freeze attack.** The latest known time should be
12241218
lower than the expiration timestamp in the new targets metadata file. If so,
12251219
the new targets metadata file becomes the trusted targets metadata file. If
12261220
the new targets metadata file is expired, discard it, abort the update cycle,
12271221
and report the potential freeze attack.
12281222

1229-
* **4.5**. **Perform a preorder depth-first search for metadata about the
1223+
* **4.4**. **Perform a preorder depth-first search for metadata about the
12301224
desired target, beginning with the top-level targets role.** Note: If
1231-
any metadata requested in steps 4.5.1 - 4.5.2.3 cannot be downloaded nor
1225+
any metadata requested in steps 4.4.1 - 4.4.2.3 cannot be downloaded nor
12321226
validated, end the search and report that the target cannot be found.
12331227

1234-
* **4.5.1**. If this role has been visited before, then skip this role (so
1228+
* **4.4.1**. If this role has been visited before, then skip this role (so
12351229
that cycles in the delegation graph are avoided). Otherwise, if an
12361230
application-specific maximum number of roles have been visited, then go to
12371231
step 5 (so that attackers cannot cause the client to waste excessive
12381232
bandwidth or time). Otherwise, if this role contains metadata about the
12391233
desired target, then go to step 5.
12401234

1241-
* **4.5.2**. Otherwise, recursively search the list of delegations in order
1235+
* **4.4.2**. Otherwise, recursively search the list of delegations in order
12421236
of appearance.
12431237

1244-
* **4.5.2.1**. If the current delegation is a multi-role delegation,
1238+
* **4.4.2.1**. If the current delegation is a multi-role delegation,
12451239
recursively visit each role, and check that each has signed exactly the
12461240
same non-custom metadata (i.e., length and hashes) about the target (or
12471241
the lack of any such metadata).
12481242

1249-
* **4.5.2.2**. If the current delegation is a terminating delegation,
1243+
* **4.4.2.2**. If the current delegation is a terminating delegation,
12501244
then jump to step 5.
12511245

1252-
* **4.5.2.3**. Otherwise, if the current delegation is a non-terminating
1246+
* **4.4.2.3**. Otherwise, if the current delegation is a non-terminating
12531247
delegation, continue processing the next delegation, if any. Stop the
12541248
search, and jump to step 5 as soon as a delegation returns a result.
12551249

0 commit comments

Comments
 (0)