Skip to content
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

The Verification Method of a Revocation List Credential MUST match the issuer of a Revocable Verifiable Credential #264

Open
OR13 opened this issue Feb 22, 2022 · 7 comments
Assignees
Labels
blocked-lack-of-get-apis ready for PR Issue ready to be resolved via a Pull Request

Comments

@OR13
Copy link
Contributor

OR13 commented Feb 22, 2022

Yet the current API definitions do not define this behavior.

@OR13 OR13 changed the title The Verification Method of a Revocation List MUST match the issuer of a Revocable Verifiable Credential The Verification Method of a Revocation List Credential MUST match the issuer of a Revocable Verifiable Credential Feb 22, 2022
@peacekeeper
Copy link
Member

I don't think that should be a requirement. I believe there are use cases where the entity that issues a credential is not the same as the entity that can revoke it.

E.g. a university can issue a diploma credential, but only a separate academic review panel, or a court, or some government entity, or someone else can revoke it.

@OR13
Copy link
Contributor Author

OR13 commented Feb 22, 2022

@peacekeeper I agree, there are also agility concerns, consider that you may issue a revocation list VC with EdDSA, but then wish to consume an index and issue a revocable credential with ES384... you can't do that today, and would not be allowed to do that in the future once we address these revocation / issuer api issues, unless we change that behavior.

@TallTed
Copy link
Collaborator

TallTed commented Feb 23, 2022

E.g. a university can issue a diploma credential, but only a separate academic review panel, or a court, or some government entity, or someone else can revoke it.

This is incorrect, as the world stands. See [1], [2]...

I think some other example(s) are needed to confirm that some entity/ies can revoke credentials issued by some other entity/ies.

@OR13
Copy link
Contributor Author

OR13 commented Feb 23, 2022

@peacekeeper
Copy link
Member

This is incorrect, as the world stands.

It was just meant as a theoretical scenario, but I admit that I can't think of any concrete example. Perhaps I should have thought about it more before commenting :)

@OR13
Copy link
Contributor Author

OR13 commented Mar 21, 2022

This issue is blocked pending changes to the issue endpoint, as well as the currently undefined get credentials endpoint.

The problem is that the current APIs require the caller to understand the specifics of the revocation list, and they don't define error cases for attempting to get a signature over a credential with a list that is "not supported" by the issuer.

At a minimum, an issuer should have to disclose how they intend to host revocation lists, for the feature to be supported... if we can't agree, we should remove revocation lists from the api.

@msporny
Copy link
Contributor

msporny commented Oct 4, 2022

This was discussed on 2022-10-04 and there seemed to be at least 3 options. The first was to ensure the same cryptosuite was used to sign both the VC and the revocation list. The second was to allow multiple cryptosuites to be applied in parallel (cryptographic layering) to both the VC and the revocation list (as long as the same cryptosuites are applied to both. The third was to allow different cryptosuites to be applied to the VC and the revocation list. @TallTed was concerned about what happens when a cryptosuite is broken (if only one is used). @jandrieu noted that the DID that created a VC is the one that signs the revocation list -- but DIDs shouldn't be restricted from rotating their verification methods and therefore the verification method might drift over time (and that's ok). @jandrieu noted that the use of SHOULD would be acceptable, it's a good practice. @jandrieu noted that if the Verifier is expecting a specific cryptosuite to be used for VCs, it might be surprising if the revocation list uses a different cryptosuite.

The group came to consensus on the following language which should be added to the specification:

As a best practice, Issuers SHOULD use the same verification method(s) and cryptosuites to protect both the Verifiable Credential as well as the revocation list.

@msporny msporny added the ready for PR Issue ready to be resolved via a Pull Request label Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked-lack-of-get-apis ready for PR Issue ready to be resolved via a Pull Request
Projects
None yet
Development

No branches or pull requests

4 participants