-
Notifications
You must be signed in to change notification settings - Fork 19
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
Improve "STEP 1: Authorization" in metadata update cli #497
Comments
I am okay with this.
Okay, good idea.
I see two possibilities:
I think
|
👍
Not sure I understand your comment. I'm thinking of something like the SSH Public Key Authentication Method (rfc4252). But we can sign anything we want.
Agreed. Given that the signature is required to finish the update, it doesn't make much sense to ask if they want to provide it. |
Depending on the chosen signing mechanism this authorization/authentication might not be transparent for the user. Typically we want to use an HSM here, which might prompt the user to physically tap the token, which in turn might make the user wonder why they need to do that. I see several options:
Since this feature is not security relevant but "only" to improve ux, I lean towards option 3 for now and improve ux later. |
Am I right to assume we have decided we wouldn't use authorization for metadata update CLI? |
What do you want to share with us?
The alternative
metadata update
cli proposal (#490) does not include "STEP 1: Authorization" of the current cli. It seemed wrong to ask for signing keys before it is clear, what signing keys are needed. (Note that the main goal of the cli is to change what keys are needed for signing.)I understand now that the intention is to restrict usage to key holders (before the update) only, and require their signature to finalize the update. So for UX reasons it makes sense to ask for the key and fail early, if the user doesn't have it.
I'm happy to implement this on the atlernative metadata update cli, but I have some important suggestions:
Let's not call it "Authorization"
In TUF a root Key holder is authorized by adding their public key to root metadata. This is actually the goal of this cli, but not in step 1. A more suitable term would be "Authentication". Because the user authenticates themselves by proofing that they have the private key for a public key.
But even "Authentication" does not seem quite right, at least for what you are currently doing (see below). And it could be confused with unrelated API authentication.
Maybe we can just call this something like "Key Holder Check" and explain that only key holders are allowed to update metadata.
Indeed, authenticate the key (holder).
Currently, the tool asks the user to load an arbitary private key and then checks if it matches the public key in metadata by keyid. This makes the tool very dependent of how the keyid is computed, and does not necessarily work with arbitrary private keys. It would be more reliable to do actual cryptographic public key authentication.
Tell the user for which public keys they need to load one private key.
Consider separating signing from "Key Holder Check".
Currently, the tool automatically signs the resulting metadata with the signing keys provided in step 1. This means that we can't sign the metadata with any newly added keys.
It's okay to transparently use the initally loaded private key to provide one signature. But then the user could be prompted for more signing keys.
References
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: