-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tap14 updates #158
Tap14 updates #158
Conversation
Signed-off-by: Marina Moore <[email protected]>
Signed-off-by: Marina Moore <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM modulo one type and a request for clarification (see inline)
I have an non-PR-related question about the following sentence in the TAP:
What does "expired due to an attack" mean? |
Signed-off-by: Marina Moore <[email protected]>
Signed-off-by: Marina Moore <[email protected]>
Signed-off-by: Marina Moore <[email protected]>
Signed-off-by: Marina Moore <[email protected]>
Signed-off-by: Marina Moore <[email protected]>
Signed-off-by: Marina Moore <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, sorry to be annoying. I just had a bunch of worries come up
Signed-off-by: Marina Moore <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, Marina! My biggest concern is on why we need a signed supported-versions.json
somewhere for repositories that don't support listing of what appear to files in what appear to be folders. Could we please consider simpler mechanisms?
@trishankatdatadog I think that's most repositories. For instance, go-tuf only has built-in support for HTTP remotes, and IIRC python-tuf is the same, but HTTP doesn't have a (standard/uniform) way to list the contents of a directory. We ran into this when attempting to build out TAP-14 support in python-tuf. We're open to alternatives suggestions, of course. The first thought was to stick an Signing is something that feels appropriate to me as a "better safe than sorry" thing. I think we could get away with not requiring it, but it feels nicer to me to have the roots sign off on something as consequential as a major version transition. |
Co-authored-by: Trishank Karthik Kuppusamy <[email protected]> Signed-off-by: Marina Moore <[email protected]>
FYI all, @marina Moore ***@***.***> and I had a nice chat about this
issue and laid out the pros and cons.
She's going to capture this in writing here so we have it for posterity.
Let's wait for her analysis and then discuss further.
…On Fri, Sep 30, 2022 at 11:28 AM Trishank Karthik Kuppusamy < ***@***.***> wrote:
I don't think it's expected to be signed by the root role. Don't think of
it as a metadata file, think of it as a hint.
SGTM. Now the Q is: do we sign or not sign this hint?
—
Reply to this email directly, view it on GitHub
<#158 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAGROD4FIH4DAUUCTDKKRRLWA4BJJANCNFSM54W2DCEQ>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
I wrote up the pros and cons in a google doc. In summary, I agree with Trishank that this information can be included in existing TUF metadata. Edit: I updated this pr to show what this would look like |
Signed-off-by: Marina Moore <[email protected]>
Can we get consensus on this approach from TAP maintainers? @JustinCappos and @trishankatdatadog have already looked. @lukpueh and @joshuagl wdyt? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding a field to root metadata feels like a more appropriate path forwards. 👍
Unrelated observation about this paragraph:
If the order of function calls should represent the course of an update, |
Unrelated observation about this paragraph:
TAP 10 claims that it is backwards incompatible. |
Ping unrelated observation from #158 (comment), cc @mnm678 |
Consistently use "supported_versions" (with underscore) as name for newly added field. Signed-off-by: Lukas Puehringer <[email protected]>
In a real TUF client update timestamp parsing happens before snapshot parsing. Signed-off-by: Lukas Puehringer <[email protected]>
TAP 10 is wrongly used as example for a backwards compatible TAP, at least according to the "Backwards Compatibility" section in TAP 10: https://github.com/theupdateframework/taps/blob/master/tap10.md#backwards-compatibility Signed-off-by: Lukas Puehringer <[email protected]>
Signed-off-by: Lukas Puehringer <[email protected]>
Signed-off-by: Lukas Puehringer <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Following a chat with @mnm678 and @JustinCappos, I just pushed a couple of minimal fixes for the concerns I raised. @joshuagl, can you green-light again?
Signed-off-by: Marina Moore <[email protected]>
Based on discussion with @JustinCappos and @lukpueh I simplified the root metadata update mechanism in this TAP. The new mechanism allows the root version numbers to diverge between specification versions without compromising the security of an upgrade. I will update the PoC shortly to reflect this change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the hash / supported_versions change to the text. Looks ready to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM to merge as draft for now, please do address my comments as we discussed earlier:
- The unclear benefits of
becomes_obsolete
at the expense of added complexity (e.g., delegatees could accidentally create conflicts) - If we keep
becomes_obsolete
, clarify whether it uses the same datetime format asexpires
- Clarify that root rotation is done as before this TAP for the current known MAJOR spec version before looking at (the latest)
supported_versions
- Clarify whether a root metadata file refer to MAJOR versions lower than or equal to the current
spec_version
in that file (and metadata version directory) - There are only 3 cases for checking version numbers: <, =, or >. The current text is ambiguous about the < case. Please clarify.
I updated TAP 14 based on some implementation questions from @abs007.
This replaces references to the now-rejected TAP 5 with TAP 13 and adds a new optional file to support a range of filesystem types.