-
Notifications
You must be signed in to change notification settings - Fork 37
Allow presentation without holder binding #513
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
Conversation
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.
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| The Credential format identifiers are `jwt_vc_json` to request a W3C Verifiable Credential and `jwt_vp_json` to request a W3C Verifiable Presentation. | ||
| The Credential Format Identifiers are `jwt_vc_json` to request a W3C Verifiable Credential and `jwt_vp_json` to request a Verifiable Presentation compliant to the [@VC_DATA] specification. | ||
|
|
||
| If `jwt_vc_json` is used, the Credential is returned without Holder Binding. Therefore, the Verifier MUST set the `allow_replay` parameter in the Credential Query to `true` if it is using `jwt_vc_json`. Otherwise, `allow_replay` MUST be `false`. Wallets MUST reject requests that do not follow these rules. |
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.
I feel like allow_replay is more of a result of not requiring key binding. But I don't think it's the best name for a query parameter.
I'm not sure if there's an overarching term. I think in OID4VCI it's called key binding (so something like 'require_key_binding) or more generic that a presentation is required (so require_verifiable_presentation`).
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.
I don't think require_key_binding sounds serious enough :-) I'd prefer a wording that conveys that this is a critial parameter.
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.
I agree with @TimoGlastra .
| replayed. (#preventing-replay) contains additional considerations for this case. | ||
|
|
||
| To request a Credential without proof of Holder Binding, the Verifier specifies a | ||
| different format in the DCQL request as defined in (#dcql_query) and |
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.
would it make sense to add an example?
| The Credential format identifiers are `jwt_vc_json` to request a W3C Verifiable Credential and `jwt_vp_json` to request a W3C Verifiable Presentation. | ||
| The Credential Format Identifiers are `jwt_vc_json` to request a W3C Verifiable Credential and `jwt_vp_json` to request a Verifiable Presentation compliant to the [@VC_DATA] specification. | ||
|
|
||
| If `jwt_vc_json` is used, the Credential is returned without Holder Binding. Therefore, the Verifier MUST set the `allow_replay` parameter in the Credential Query to `true` if it is using `jwt_vc_json`. Otherwise, `allow_replay` MUST be `false`. Wallets MUST reject requests that do not follow these rules. |
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.
I agree with @TimoGlastra .
Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
Co-authored-by: Paul Bastian <paul.bastian@posteo.de>
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.
From my view, two open questions to the WG:
- nonce REQUIRED for requests without key binding?
- rename
allow_replaytokey_binding_required?
Co-authored-by: Paul Bastian <paul.bastian@posteo.de>
Fixes #6
Executive summary:
state: now REQUIRED if at least one Presentation without Holder Binding is requested.Alternative: "if only pres. without holder binding are requested", but the current rule seems easier to implement considering that credentials can be returned conditionally etc.
allow_replaythat requests a Presentation without Holder Bindingjwt_vp_json,jwt_vc_json,ldp_vp,ldp_vc— I therefore introduced the rule that *vc must be used if and only if allow_replay is true.Alternative 1: Remove the *vp formats, but that would be another breaking change, I suppose? Alternative 2: Remove the *vc formats, but that would mean requesting a "*vp" when in reality, only a credential is returned.
Let the bikeshedding on the parameter name begin, other ideas I had were
insecure_no_bindingand simplykey_binding: false. I thinkallow_replaycaptures the risk quite well and to the point, without sounding too scare, and doesn't sound too nice for developers to "just give it a try".