-
Notifications
You must be signed in to change notification settings - Fork 21
Remove open ended status messages because it is a layer violation #151
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
Comments
/cc @mkhraisha @OR13 @mprorock @npdoty @kdenhartog (please CC other implementers) |
@jandrieu Given that the specification has already marked the status messages feature as "at risk", and is seeking implementer feedback during CR, do you see this issue as potentially blocking our transition to CR next month? |
Isn't status returned as a VC? That would mean Status lists are using the VC attestation architecture which has precisely the privacy and security features we have for VCs. The trouble with our WG trying to pre-arrange every possible status is that we can't possibly get them all. Why shouldn't a status VC have extension points just like a regular VC? Perhaps it needs to be clarified that the subject of a status VC is always another credential, therefore any messages in a status VC are only ever messages about the status of the VC, not about the subject of the original VC. |
The issue was discussed in a meeting on 2024-03-27
View the transcript2.1. Remove open ended status messages because it is a layer violation (issue vc-bitstring-status-list#151)See github issue vc-bitstring-status-list#151. Manu Sporny: PING have raised several privacy issues that we should address.
Manu Sporny: will be a massive PR to address Yaskin's comments. |
Unfortunately the status list architecture does not have the same privacy and security features as VCs, because the holder is not involved in the status check. That check bypasses holder control, which is a key component of the VC privacy architecture.
Agreed. We don't need to come up with all possible statuses, but the possible statuses of a given credential, IMO, should be set at the time of issuance and not changing over time. The idea that we might restrict status results to a particular subject, e.g., that of the credential, is a good idea, but I think only half-way there. The problem is that there is no way to enforce that. If issuers have a set of known states they want to dynamically update, they can do that with a static set of states. That addresses a wide range of legitimate use cases without needing to enable open-ended assertions through the status list. What we don't want issuers to do is to use the status list as a mechanism to publish arbitrary content about the subject of a VC without that subject being involved in the distribution of that content. |
Good question. If its in the spec, it would probably lead to a formal objection, if that's what you're asking. Whether or not we should attempt CR with language known to be objectionable is a discussion for the group. |
The issue was discussed in a meeting on 2024-04-03
View the transcript3.4. Remove open ended status messages because it is a layer violation (issue vc-bitstring-status-list#151)See github issue vc-bitstring-status-list#151. Manu Sporny: In the bistring status list, we have a feature that allows open-ended status messages, used for supply chain stuff. Gabe Cohen: I noticed Brent is assigned. Manu Sporny: brent added some comments. He's representing mesur.io. They were an advocate of that feature. Joe Andrieu: Manu summed up my concerns well. It becomes an avenue for arbitrary content being published w/o the subject being involved. Brent's argument was that we have same privacy as VCs. I disagree because holder is not in the loop (where they are with wrt. VCs).
Joe Andrieu: If we had a shared expectation where the user could know w/ shared states, if future version needs new state, individual could use new VC with that knowledge. What we have is a publication architecture that undermines privacy considerations put into VCs.
Gabe Cohen: with chair hat off, can we avoid this problem by noting the status message in the credential itself.
Joe Andrieu: Instead of having a multi-bit status list you have multiple entries... status list should be of a constrained set if it's going to be of a set.
Paul Dietrich: within these status lists, there is nothing from preventing an issuer from adding additional information. Manu Sporny: two things. If this is the concern, that privacy characteristics change after the fact. Then locking the states into the credential itself, then the holder knows the deal.
Manu Sporny: instead we can highlight that there is a better way. we can have implementation guidance that explains this privacy risk so that issuers can apply best practices.
Mahmoud Alkhraishi: I don't think it would be seen negatively to commit to a static list of states.
Gabe Cohen: That's it for the agenda. |
I am supportive of the approach that stamps the acceptable status(es) in the credential at time of issuance. |
PR #164 has been merged, closing. |
In discussing issue #146, @msporny clarified that the current bitstring status list supports arbitrary messages in status lists.
Unfortunately, this turns status lists into yet another attestation architecture, which is a layering violation. Status lists don't have the privacy and security features we have for VCs, which is where, in the VC architecture, issuers make formal attestations about subjects.
Bitstring status lists should be used to enable decentralized verification of pre-arranged possible statuses, not of arbitrary, potentially changing attributes of the subject.
The text was updated successfully, but these errors were encountered: