w3c / controller-document

Controller Documents
https://w3c.github.io/controller-document/
Other
5 stars 5 forks source link

Adjust framing to correctly describe relationship between the identifier and the controller #75

Open jandrieu opened 2 weeks ago

jandrieu commented 2 weeks ago

A controller document is a set of data that specifies one or more relationships between a controller and a set of data, such as a set of public cryptographic keys.

This framing suggests that controller documents relate a Controller, as in a specific entity, to a set of data.

I'd argue that this is a mistaken statement of what a controller document expresses.

Controller documents express the verification methods useful for verifying particular interactions with a given identifier. This is done by defining verification relationships which link the identifier to particular verification methods.

It is important to note that the actual Controller, i.e., the entity that actually controls the controller document, is NOT described by the controller document. That would be better expressed in a VC with the that identifier as a subject.

What is described in the controller document is how you verify particular interactions, not the entity involved. That is a question of identity assurance, which might be achievable once a controller document establishes certain verification methods as suitable to give a verifier confidence that the current action (attestation, authentication, delegation, invocation, or en/decription) was performed by a legitimate agent of the controller of the controller document.

msporny commented 2 weeks ago

@jandrieu Can you provide a concrete replacement definition that the group could discuss?

jandrieu commented 2 weeks ago

How about

Controller documents express how to verify interactions with a given identifier. Each document lists verification methods for that can be used to secure and verify various cryptographic proofs.

When a proof is communicated, it

  • includes the id of the controller document,
  • the verification method used, and
  • the verification relationship used for the proof.

To evaluate a proof, verifiers retrieve the details necessary from the associated controller document, verify the verification relationship, and apply the algorithm specified for by the verification method to verify the proof.

In this manner, controller documents enable the verification of actions taken on behalf of an identifier, such as

  • authenticating as login
  • attestations as digital credentials
  • delegation of capabilities
  • invocation of capabilities
  • encryption and decryption using agreed-upon keys
selfissued commented 2 weeks ago

I don't love "verify interactions with a given identifier". To unspecific. Can you take another stab at this phrase, Joe?

Other than that, this seems like a step in the right direction. Thanks.

jandrieu commented 2 weeks ago

I don't love "verify interactions with a given identifier". To unspecific. Can you take another stab at this phrase, Joe?

Yeah. It's a tough language challenge. FWIW, I think "verify" is the right verb, given "verification relationships" and "verification method".

That leaves the thing being verified and the source of the thing verified. I think I was trying to avoid naming the entity creating the source, but putting it in explicitly maybe clears up the nuance.

verify interactions with a given identifier

[original, but awkward]

verify actions taken by a given identifier

[the identifiers don't take actions, though]

verify proofs demonstrating actions taken by the identifier

[the identifiers don't take actions, though]

verify proofs created by the controller of an identifier.

[this is the most concrete, but also it loses the semantics of what is meant by the proof]

verify actions taken by the controller of an identifier

[This finally connects real world things (actions) with a real world entity (controller).]

Thoughts?

dlongley commented 2 weeks ago

I think I like this one the most: "verify proofs created by the controller of an identifier." It doesn't introduce an (arguably) new concept "actions" and focuses on the verification methods, proofs, and controller of the identifier.

EDIT: to make it flow into the bulleted list:

"In this manner, controller documents enable the verification of proofs created by the controller of an identifier, such as proofs for the purpose of"

selfissued commented 2 weeks ago

Once again, I like @dlongley's wording suggestion. Although this one is really good too:

verify actions taken by the controller of an identifier

iherman commented 3 days ago

The issue was discussed in a meeting on 2024-09-11

View the transcript #### 4.4. Specify that controller overrides subject control. (pr controller-document#42) _See github pull request [controller-document#42](https://github.com/w3c/controller-document/pull/42)._ **Brent Zundel:** next PR #42, we have discussed this before, where we left off was that JoeAndrieu was going to propose different language, where are we at here? **Joe Andrieu:** I haven't done anything on this, will rehydrate and see where we are, but I did not meet your expectation. _See github issue [controller-document#75](https://github.com/w3c/controller-document/issues/75)._ > *Dave Longley:* ^there's some useful text there. **Brent Zundel:** no worries, thank you for continuing to do the work. **Dave Longley:** JoeAndrieu you did propose some alternate text that may or may not be reusable, just a reminder that that text is out there in the above linked issue. **Brent Zundel:** we have some wording suggestions in issue 75 which I believe would help either modify PR 42 or result in a new PR, folks please look at issue 75. … that will guide changing PR 42 or help us determine a resolution. **Manu Sporny:** I was expecting to close 42 in favor of whatever PR JoeAndrieu raises, I'm fine to close this now, any objections? > *Manu Sporny:* I'll leave PR 42 open if we're unsure then. **Joe Andrieu:** not sure we should close it but not sure that I want to stand in the way either, the issue has some language we can use, but there is disconnect between manu and I on meaning of controller property, looking forward to talking this out at TPAC. **Brent Zundel:** going forward are we leaving PR 42 open for comparison? who is taking the action to move the proposed language into the spec? **Manu Sporny:** I will work with JoeAndrieu to do that. **Brent Zundel:** whatever we don't solve next week on controller document we will talk about at TPAC. ---