-
Notifications
You must be signed in to change notification settings - Fork 115
Terms of Use Approach #269
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
It is true that there are ToUs specified by the issuer and ToUs WRT Issuer ToUs. I agree that it is generally true that VC ToUs will be applied to a Many months ago we discussed the issue of negative VCs, and that So on balance I support issuer ToUs not being in a VC and being external WRT holder ToUs The issues are different for subject=holder and subject NE holder. If subject=holder then clearly the subject should be able to constrain However if holder NE subject then it is more difficult, as we have to |
Here is a proposed resolution to ToU.
|
I think the only statement the group is making is that VCs don't, on their own, constitute an authz framework. This doesn't preclude anyone from building something akin to the above on top of VCs. The concept of "delegation" just isn't something we will carve out a spot for in the core data model. |
Why not have the verifiers simply require that ToU be disclosed (for appropriate use cases)? They can see that it's present in the VC even if they don't know the value unless revealed. So they can therefore require it to be revealed in order for acceptance, i.e., the holder would be unable to gain any benefit from a VP without disclosing the ToU. This removes the limitation set forth above. |
@dlongley We need a ZKP expert to comment on this, but I don't think it will work in general. For example, say there are two constraints in the ToU. The verifier says that I must reveal the ToU. I reveal just one of them (one that will not inhibit me with this verifier) and it is then unaware that I have another hidden ToU. Or I say that my ZKP VC does not contain any ToUs. The verifier cannot force me to reveal anything I do not want to reveal, otherwise ZKPs would not be offering strong privacy protection. |
To my knowledge, that's not possible (or can be avoided), but we should get input from @nage or @brentzundel. My understanding is that the schema for the ZKP-based VC is well known (and must be), that includes which attributes are encoded. Therefore, any verifier can see which attributes are present on a given VC and request them. Without this information, the system doesn't work. I suppose that it could be that this would only apply to CL-style credentials... and perhaps there's another mechanism that would allow the presence of certain attributes to be unknown to the verifier. In any event, it seems to me that the mere declaration by the issuer that ToU are present on a VC type (somewhere out of band, like in the schema as Sovrin could do it) should be sufficient to remove the limitation mentioned above... as the verifier can then require them.
They certainly can -- but only on the condition that your VC won't be accepted if you don't reveal. Then you can choose from there. It's a negotiation. |
@dlongley We have to say something about this in our core data model document, otherwise we leave a gaping security hole that will be exploited. I see two ways forward: Either A. We do not define what this second VC will contain, because there are different variants of it. We have text (maybe in the security section) to describe what the attack scenario is, and how it can be protected against. We can leave it to users of the DM to define what this new VC will contain for their application scenario. We can move "6.5.3.2 Passing on a Verifiable Credential" to an Appendix, which is not part of the Specification, but gives people an idea of the type of VC the subject might create. Or B. We define a generic "hand over" VC, in which the subject issues a new VC to the new holder (as subject), with the ID to the VC that has been handed to the new holder as the claim. No other semantics are attached to this, but it proves to the verifier that the original subject does want the holder to hold the original VC.
|
I suggest we do this:
... and use the "I'm picking up a prescription for my family member" use case as an example. If there is agreement here, I can write up the PR unless someone beats me to it. |
I will do this PR David |
This is now in PR#281 |
PR #281 has been merged, resolving. |
Let's stop conflating ideas when we say “Terms of Use”. There are some TOU that are expressed by the issuer when the credential is issued and there are some TOU that are expressed by the holder when the credential is presented to a verifier. To that end, I propose we differentiate these as “Issuer Terms of Use” and “Holder Terms of Use”
Here are some characteristics that my be true about each.
If this approach works, we can start crafting spec text for it in the Advanced section.
The text was updated successfully, but these errors were encountered: