-
Notifications
You must be signed in to change notification settings - Fork 12
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
Whats the capability negotiation model assumed between the relying party (RP) / origin and the wallet / provider? #76
Comments
I agree, but I will refine this a bit further to highlight some details: credential formats
presentation formats
As you can see, the total number of combinations leads to a high probability of little to no interoperability without restriction. I would like to make a strong statement, "presentation formats" are "protocols in disguise". There should be no support for negotiating "presentation formats". So what is essential for preparing a credential for delivery to a verifier?
Attestation, Evidence and Endorsements (as described in https://datatracker.ietf.org/wg/rats/about/) help with the Trust sandwich. HPKE helps with the confidentiality at the message and transport layer. OHAI or Tor, are probably not needed when the browser is the primary trusted middleman, but perhaps we do not trust the browser to make connections (in which case your comment on the last call needs to be revisited)... The network related properties of OIDC are also possibly leaking information which we would prefer to not leak. Replay resistance, requires interactivity, and leads to the timeout UX - webauthn-2/#dom-publickeycredentialrequestoptions-timeout) we see in other parts of the browser crypto APIs. So I see the fundamental interaction as follows: Requesting a single credential from a wallet{ Presenting a single credential to a verifier{ In the case that a wallet needs to prove properties related to its "identity and reputation", those proofs need to go inside the ciphertext.... which is also where the wallet can put more than one credential, and the browser has no way to stop that. |
Enumeration of wallets or wallet capabilities is a serious privacy risk -- it would certainly be abused for fingerprinting, but even more so, it would be abused to learn perhaps what affiliations the user has with different jurisdictions. (I think this is well-understood and discussed on today's call, but just thought it should be noted here in the issue.) |
Discussed on the 2024-02-26 call AI generated summary:
|
When it comes to requesting presentation of a digital credential from a wallet, one of the pre-requisites to enable a successful transaction is that the two parties in the protocol, the RP and wallet are in fact capable of transacting. A couple of examples of such capabilities I mean in this context are:
Protocols like OpenID4VP have an approach which may be suitable for usage with this API or a more efficient model might be possible through the existence of a browser API and the browser facilitating some part in this negotiation. I think this issue is important to discuss nearer term as it affects what the browser needs to be aware of from a protocol perspective vs what it doesn't.
The text was updated successfully, but these errors were encountered: