@@ -1238,9 +1238,8 @@ non-volatile storage as FILENAME.EXT.
1238
1238
and report the potential freeze attack.
1239
1239
1240
1240
* ** 4.5** . ** Perform a preorder depth-first search for metadata about the
1241
- desired target, beginning with the top-level targets role.** Note: If
1242
- any metadata requested in steps 4.5.1 - 4.5.2.3 cannot be downloaded nor
1243
- validated, end the search and report that the target cannot be found.
1241
+ desired target.** Let TARGETS be the current metadata, beginning with the
1242
+ top-level targets metadata role.
1244
1243
1245
1244
* ** 4.5.1** . If this role has been visited before, then skip this role (so
1246
1245
that cycles in the delegation graph are avoided). Otherwise, if an
@@ -1252,17 +1251,54 @@ non-volatile storage as FILENAME.EXT.
1252
1251
* ** 4.5.2** . Otherwise, recursively search the list of delegations in order
1253
1252
of appearance.
1254
1253
1255
- * ** 4.5.2.1** . If the current delegation is a multi-role delegation,
1254
+ * ** 4.5.2.1** . Let DELEGATE denote the current target role TARGETS is
1255
+ delegating to.
1256
+
1257
+ * ** 4.5.2.2** . ** Download the DELEGATE tarets metadata file** , up to either
1258
+ the number of bytes specified in the snapshot metadata file, or some Z
1259
+ number of bytes. The value for Z is set by the authors of the application
1260
+ using TUF. For example, Z may be tens of kilobytes. IF DELEGATE cannot be
1261
+ found, end the search and report the target cannot be found. If
1262
+ consistent snapshots are not used (see Section 7), then the filename used
1263
+ to download the targets metadata file is of the fixed form FILENAME.EXT
1264
+ (e.g., delegated_rol.json). Otherwise, the filename is of the form
1265
+ VERSION_NUMBER.FILENAME.EXT (e.g., 42.delegated_role.json), where
1266
+ VERSION_NUMBER is the version number of the DELEGATE metadata file listed
1267
+ in the snapshot metadata file. In either case, the client MUST write the
1268
+ file to non-volatile storage as FILENAME.EXT.
1269
+
1270
+ * ** 4.5.2.3** . ** Check against snapshot metadata.** The hashes (if any), and
1271
+ version number of the new DELEGATE metadata file MUST match the trusted
1272
+ snapshot metadata. This is done, in part, to prevent a mix-and-match
1273
+ attack by man-in-the-middle attackers. If the new DELEGATE metadata file
1274
+ does not match, discard it, end the search, and report the target cannot
1275
+ be found.
1276
+
1277
+ * ** 4.5.2.4** . ** Check for an arbitrary software attack.** The new DELEGATE
1278
+ metadata file MUST have been signed by a threshold of keys specified in the
1279
+ TARGETS metadata file. If the new DELEGATE metadata file is not signed
1280
+ as required, discard it, end the search, and report the target cannot be
1281
+ found.
1282
+
1283
+ * ** 4.5.2.5** . ** Check for a rollback attack.** The version number of the
1284
+ trusted DELEGATE metadata file, if any, MUST be less than or equal to the
1285
+ version number of the new DELEGATE metadata file. If the new DELEGATE
1286
+ `metadata file is older than the trusted DELEGATE metadata file, discard
1287
+ it, end the search, and report the target cannot be found.
1288
+
1289
+ * ** 4.5.2.6** . If the current delegation is a multi-role delegation,
1256
1290
recursively visit each role, and check that each has signed exactly the
1257
1291
same non-custom metadata (i.e., length and hashes) about the target (or
1258
- the lack of any such metadata).
1292
+ the lack of any such metadata). Otherwise, discard it, end the search,
1293
+ and report the target cannot be found.
1259
1294
1260
- * ** 4.5.2.2 ** . If the current delegation is a terminating delegation,
1295
+ * ** 4.5.2.7 ** . If the current delegation is a terminating delegation,
1261
1296
then jump to step 5.
1262
1297
1263
- * ** 4.5.2.3** . Otherwise, if the current delegation is a non-terminating
1264
- delegation, continue processing the next delegation, if any. Stop the
1265
- search, and jump to step 5 as soon as a delegation returns a result.
1298
+ * ** 4.5.2.8** . Otherwise, if the current delegation is a non-terminating
1299
+ delegation, continue processing the next delegation, if any, by repeating
1300
+ step 4.5 with DELEGATE as the current TARGET role. Stop the search, and
1301
+ jump to step 5 as soon as a delegation returns a result.
1266
1302
1267
1303
** 5** . ** Verify the desired target against its targets metadata** .
1268
1304
0 commit comments