Closed npdoty closed 4 weeks ago
I'm responding in my capacity as an Editor and not on behalf of the VCWG. We will try to review this response during W3C TPAC to see if the WG has consensus wrt. the suggestions below.
@npdoty wrote:
The specification is quite abstract, and I think it would help readers and reviewers to have some particular examples about how Controller Documents are intended to be used.
Yes, agreed. We can try to point to the DID Use Cases (as many/all of them apply), or reframe them for this specification. Fundamentally, the use cases are the same except that now any URL can be used in a Controller Document where previously a DID had to be used in several places.
The very abstract nature (any kind of data related to any kind of entity) makes it challenging to reason about things like privacy properties. Or if this is intended just for cryptographic key communication, that would be a helpful narrowing of the scope and make implementation/interoperability and privacy/security protection much more straightforward.
It is largely meant for cryptographic key communication. I say "largely" because one can extend the document to store other information, though what those extensions do is (clearly) out of scope. The main reason this specification exists is that the VC JOSE COSE specification wanted to use a lot of the functionality specified via DID Documents and Data Integrity, but without using DIDs or Data Integrity. We created this specification so they could use these features without having to use DIDs.
Pairwise identifiers is a good, important privacy practice. We don't often use that exact terminology on the Web, where we might talk about the scope of identifiers or connection to the concept of origins. Would it be useful to talk about origin-specific keys or the origin model here?
We talk about it a bit in this section:
https://w3c.github.io/controller-document/#identifier-correlation-risks
We could expand that section to include language on "origin-specific keys" and the origin model. Would that work for PING?
https://w3c.github.io/controller-document/#keep-personal-data-private recommends that no personal data be included in a Controller Document, but it's not clear that this is a requirement that will be satisfied. Cryptographic keys used by or about a person are certainly personal data.
What we were trying to convey were things like full name, home address, phone number, etc. That said, your point is valid. Perhaps we could speak to not including information that could be used to easily correlate you, such as full name or phone number? Or limit it to the bare minimum to achieve your communication goals for that controller document?
Also, not a privacy question, but a question I had in trying to understand the use of these documents: what is the difference between id and controller?
We have a few open issues, namely #33 and #75, where we're trying to get more crisp with that language. Fundamentally, the id
specifies the subject of the controller document... that is, the entity that the controller document is about. The controller
field can be used to specify other entities that have the right to modify/update the document (which useful in decentralized systems like blockchains, or systems that allow entities other than the subject to modify/update the controller document).
I believe the above largely constitute editorial changes. We will raise PRs for those before entering Candidate Recommendation. Please let us know if you believe that are further issues that would prevent a transition of this specification to the Candidate Recommendation phase.
Fundamentally, the
id
specifies the subject of the controller document... that is, the entity that the controller document is about.
I would disagree with this characterization. I would say the "id" is the unique token for referring to a common subject by different parties, such that other specs, like VCs, can use the ID to refer to an entity who is in presumptive control of the controller document.
IMO, the controller document is about the ID, not about the referent of the ID.
This is a break with the open world data model that many in the work advocate. But the inability to use JSON-LD semantics to make statements about the identifier make this assertion unusable in practice.
The issue was discussed in a meeting on 2024-09-27
The issue was discussed in a meeting on 2024-09-27
@npdoty, we discussed PING's review at W3C TPAC 2024 and are going to proceed in this direction to address PING's concerns. Please let us know if you want us to do any further work beyond what's listed below:
We'll link the PRs to each checkbox as they are raised.
The issue was discussed in a meeting on 2024-10-09
All PRs associated with this issue have been merged, closing.
We can split this up into additional issues, or if the team just wants to answer questions here, that might help me understand whether there are more specific privacy issues for the spec to address.
The specification is quite abstract, and I think it would help readers and reviewers to have some particular examples about how Controller Documents are intended to be used. The very abstract nature (any kind of data related to any kind of entity) makes it challenging to reason about things like privacy properties. Or if this is intended just for cryptographic key communication, that would be a helpful narrowing of the scope and make implementation/interoperability and privacy/security protection much more straightforward.
Pairwise identifiers is a good, important privacy practice. We don't often use that exact terminology on the Web, where we might talk about the scope of identifiers or connection to the concept of origins. Would it be useful to talk about origin-specific keys or the origin model here?
https://w3c.github.io/controller-document/#keep-personal-data-private recommends that no personal data be included in a Controller Document, but it's not clear that this is a requirement that will be satisfied. Cryptographic keys used by or about a person are certainly personal data.
Also, not a privacy question, but a question I had in trying to understand the use of these documents: what is the difference between
id
andcontroller
?