theupdateframework / theupdateframework/specification
root version comparison still unclear
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 405
- Forks
- 59
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 1
Description
This text has been modified a lot (see #209 for latest) but the root update section of client workflow is still difficult for new readers:
5. Check for a rollback attack. The version number of the trusted root metadata file (version N) MUST be less than the version number of the new root metadata file (version N+1). Effectively, this means checking that the version number signed in the new root metadata file is indeed N+1. If the version of the new root metadata file is less than the version of the trusted metadata file, discard it, abort the update cycle, and report the rollback attack. In case they are equal, again discard the new root metadata, but proceed the update cycle with the already trusted root metadata.
This is still very long and not super clear. Examples:
- what does "proceed the update cycle" mean? (I'm pretty sure it means go to 5.3.10 but it's not obvious to a new reader)
- what if new version is N+2? It almost sounds like this would be ok by the spec but it doesn't make sense: the only valid version number is N+1
Why don't we just say that only accepted version is N+1, everything else should be an error (because we tried to download N+1 and were given something else)?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked root update section of the client workflow and read the surrounding steps, especially the referenced step 5.3.10. Clarify the handling of versions lower than, equal to, one greater than, and more than one greater than the trusted root; done means the specification states the expected action for each case without ambiguous wording.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100