Skip to content
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

Confusing guidance on algorithm and key identification #1176

Closed
richanna opened this issue May 25, 2020 · 4 comments
Closed

Confusing guidance on algorithm and key identification #1176

richanna opened this issue May 25, 2020 · 4 comments

Comments

@richanna
Copy link
Contributor

The current draft encourages determining the Algorithm metadata property from the keyId field, both in the guidance for the use of algorithm and keyId, and the definition for the hs2019 algorithm and deprecation of the other algorithms in the registry. The current state arose from concern that a malicious party could change the value of the algorithm parameter, potentially tricking the verifier into accepting a signature that would not have been verified under the actual parameter.

Punting algorithm identification into keyId hurts interoperability, since we aren't defining the syntax or semantics of keyId. It actually goes against that claim, as we are dictating that the signing algorithm must be specified by keyId or derivable from it. It also renders the algorithm registry essentially useless. Instead of this approach, we can protect against manipulation of the Signature header field by adding support for (and possibly mandating) including Signature metadata within the Signature Input.

@OR13
Copy link

OR13 commented Oct 20, 2020

TL;DR we should sign the signature algorithm... like we sign JWS headers... How can we mandate this?

@jyasskin
Copy link
Contributor

Propagating my jabber comment from today's interim meeting: I think draft-ietf-httpbis-message-signatures should say that specs for protocols built on this header MUST define how the keyId field maps to a key, and then that the key MUST determine the algorithm. That would let this document avoid algorithm identifiers entirely.

@OR13
Copy link

OR13 commented Oct 20, 2020

P-256 -> ES256 ? This approach might not work for keys that support multiple signature types, such as secp256k1.

@jricher
Copy link
Contributor

jricher commented Apr 21, 2021

Discussion in -03 and -04 should now be clearer in how to use the combination of algorithm and key identifiers within an application of this spec to do secure key and algorithm identification.

@jricher jricher closed this as completed Apr 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants