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

Specify guarantees that all securing mechanisms must provide. #1374

Closed
msporny opened this issue Dec 7, 2023 · 10 comments
Closed

Specify guarantees that all securing mechanisms must provide. #1374

msporny opened this issue Dec 7, 2023 · 10 comments

Comments

@msporny
Copy link
Member

msporny commented Dec 7, 2023

In PR #1338, @awoie noted:

It would be immensely helpful if we could establish precise requirements for this [robust requirements for securing mechanisms], as verifiers would then have at least some baseline security guarantees.

This PR is to track that concern and possibly add guarantees that all securing mechanisms must provide in order to be "conforming securing mechanisms".

@msporny msporny self-assigned this Dec 7, 2023
@msporny
Copy link
Member Author

msporny commented Dec 7, 2023

@awoie, would making these normative requirements on securing mechanism specifications work for you? For example:

  • Securing mechanism specifications MUST have protected all the data in the conforming document returned by the securing mechanism verification algorithm. ALTERNATIVE: Non-protected data MUST NOT be returned in the conforming document returned by the securing mechanism verification algorithm.
  • Securing mechanism specifications SHOULD protect information referenced by a URL that is critical to validation. Mechanisms that can achieve this protection include: relatedResource, digestSRI, digestMultibase, well-known permanently cached URLs (such as JSON-LD Context URLs), and RDF Canonicalization (for JSON-LD Context URLs).

@OR13
Copy link
Contributor

OR13 commented Dec 8, 2023

I am concerned about the "verifiable presentation" side of this.

In relation to securing protocols that use "audience / domain", "nonce / challenge".

If these protocol parameters are not secured, or checked during presentation verification, there can be serious security issues impacting authentication.

@msporny
Copy link
Member Author

msporny commented Dec 10, 2023

@OR13 wrote:

If these protocol parameters are not secured, or checked during presentation verification, there can be serious security issues impacting authentication.

Yes, and the language that has been proposed covers those cases. What concrete text are you looking to have added to the specification to cover your concern?

@msporny
Copy link
Member Author

msporny commented Dec 10, 2023

PR #1380 has been raised to address this issue. This issue will be closed once PR #1380 has been merged.

@awoie
Copy link
Contributor

awoie commented Dec 12, 2023

I'd also miss something like the following:

  • A securing mechanism MUST protect the integrity of the verifiable credential
  • A securing mechanism MUST verify the authorship of the verifiable credential (although this could be a requirement for the algorithm but in the VCDM)

Are we intentionally allowing strange securing mechanisms? These are extreme examples but the current definition would allow securing mechanisms such as phoning home to the issuer; having to call some random number on the phone etc.

@awoie
Copy link
Contributor

awoie commented Dec 12, 2023

From a verifier perspective especially now that we have the verification algorithm in the VCDM, I want to know what I get when I execute the security mechanism verification algorithm successfully.

@awoie
Copy link
Contributor

awoie commented Dec 12, 2023

If we cannot make such general statements about securing mechanism verification algorithms, then we should add to the specification that the verifier MUST understand how the securing mechanism secures the verifiable credential and verifiers SHOULD not treat all securing mechanisms as equal.

@awoie
Copy link
Contributor

awoie commented Dec 12, 2023

I made some suggestions in the PR

@iherman
Copy link
Member

iherman commented Dec 13, 2023

The issue was discussed in a meeting on 2023-12-13

  • no resolutions were taken
View the transcript

2.13. Specify guarantees that all securing mechanisms must provide. (issue vc-data-model#1374)

See github issue vc-data-model#1374.

Brent Zundel: specify requirements for securing mechanisms.
… a PR exists.

See github pull request vc-data-model#1380.

Brent Zundel: there is a request for changes from oliver.

Manu Sporny: seems we are on a good trajectory, one thing that is concerning, he is saying verifier needs to know who the issuer of a VC is.
… that sounds like validation.
… I will try to make that a part of it, but I don't want to cover trust frameworks, or trust lists.
… the current text can be made clearer... the securing mechanism should not need to understand our data model.
… I will try to address oliver's suggestions.

@msporny
Copy link
Member Author

msporny commented Dec 17, 2023

PR #1380 has been merged, remaining concerns tracked in issue #1386, closing.

@msporny msporny closed this as completed Dec 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants