-
Notifications
You must be signed in to change notification settings - Fork 97
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
What are the semantics of "controller" in "authentication" #802
Comments
Hey @ekr, apologies for the delay in response. The DID WG stopped regularly processing issues for DID Core when DID Core went to Proposed Recommendation. I'm just now seeing your question. I'll note during the next call that a few issues have been raised after we went to PR and see what our policy is on responding to these issues during a FO process. The purpose of The simplest case is a DID Document, where you expect the entity identified by a DID to express its authentication keys in the same document. There are more complex cases where a system might only store the public key information (but not the entire DID Document)... or where the key might be expressed in many different places across the Web (where each expression points back to the same "controller document" -- aka DID Document). Regardless, in both of these cases, you have to resolve the key description of it's controller in the "key document" against what's expressed in the "controller document" and ensure that the controller document lists the key in its list of authentication keys.
Undefined at present because the charter (and DID WG members) did not want us to work on or discuss protocol. I can give you an answer that has some implementation experience and is where I expect the group to go. In the case you describe above, Bob looks at the authentication message, that might look like this (Verifiable Credential Presentation for a DID-based authentication):
and sees a However, the question then turns to the holder: Is a holder allowed to use a key that is controlled by another entity to authenticate? There are valid use cases that matter here, such as legal guardianship, power of attorney, etc. In those cases, the signer is doing something on behalf of another entity, and so it's very important to not get the two entities confused (variation of confused deputy attack). So, for those use cases, you'd need an extra step (when the holder is not the same one that signed). You look up the holder document, check which keys they list in their What happens after that authentication is done, however, is use case specific. Some use cases might not allow "delegated authentication" while others might. Does that answer your question of: "What is Bob to make of that?" -- You seem to be describing a delegated authentication use case. |
@ekr, @jandrieu has addressed this in w3c/cid#116 in the Controller Document spec (soon to be renamed to Controllable Identifier Document), which DID Core will align to. Marking this as pending close, please let us know if you would like to keep it open, or would like further amendments to the text. |
This was discussed during the #did meeting on 06 December 2024. View the transcriptw3c/did-core#802decentralgabe: This is another one that was covered in the VCWG in the controllable identifier document specification. |
S 5.2. says
It's not clear to me how to interpret this text here. Suppose that Alice wishes to authenticate to Bob with a DID that resolves to the following document:
Presumably, if Alice can prove that it can sign with the private counterpart of key
zH3C..PV
then Bob should accept that this is Alice (or, I supposedid:example:123456789abcdefghi
).However, what if instead Bob looks up the controller value (
did:example:abcdef
) and that resolves to a new document with its own authentication block and key YYYY and the counterparty signs with YYYY. What is Bob to make of that?The text was updated successfully, but these errors were encountered: