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

List all validity checks that should be performed #9

Closed
msporny opened this issue Nov 28, 2016 · 14 comments
Closed

List all validity checks that should be performed #9

msporny opened this issue Nov 28, 2016 · 14 comments
Labels
privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response.

Comments

@msporny
Copy link
Member

msporny commented Nov 28, 2016

We should make it clear that an inspector (e.g. corporation) is required to check revocation via the Issuer (e.g. government). In fact, there are many different types of validity checks that should be performed on data, such as the revocation status of an Issuer's signing key, the expiration date of the claim, etc.

@msporny msporny added editorial Purely editorial changes to the specification. privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. labels Nov 28, 2016
@erickorb
Copy link

+1

@msporny msporny removed the editorial Purely editorial changes to the specification. label Dec 7, 2016
@David-Chadwick
Copy link
Contributor

This is not exactly true. The issuer may delegate the issuing of revocation information to a TTP. And if several issuers use a common TTP this is much better for privacy protection, as it makes it much more difficult for the issuer or the TTP to know which user/holder has contacted which inspector.

Change text to "is required to check revocation via the Issuer or its delegate"

Perhaps we should also recommend that revocation lists should preferably be published by TTPs that do not inform the issuer which inpsectors have contacted it, and that a TTP may merge the lists of multiple issuers.

@msporny
Copy link
Member Author

msporny commented Feb 13, 2017

@David-Chadwick We're also working on Blockchain-based revocation lists to achieve the same result as using an HTTP-based TTP.

@jonnycrunch
Copy link
Contributor

By TTP, you mean Trusted Third Party. Can you give an example of a revocation performed by a TTP? A lot of TTP that I know of only aggregate the credentials and point the use to the source of truth, including revocation of the credential. Typically the TTP covers themselves by giving a valid period or expiration date and upon renewal, they perform a validity check before issuing a new credential.

@msporny
Copy link
Member Author

msporny commented Feb 14, 2017

By TTP, you mean Trusted Third Party

Yes.

Can you give an example of a revocation performed by a TTP?

Company A outsources all their credential management to Outsource B. Outsource B issues credentials under Company A's private key, and places the revocation list information in a bulk revocation list (for all customers). For example, the Department of Motor Vehicles outsources the issuance of digital drivers licenses , which are good for 7+ years. The outsourced firm maintains a revocation list for multiple DMVs, as that is their business model.

@ottonomy
Copy link
Contributor

I think the discussion gets a little into the weeds. Revocation will be checked in the manner that the credential tells the inspector to check for it. There will be multiple methods, but that doesn't change the task in the ticket, which is to list the checks that must be performed. Revocation is one of them (if the credential offers a method to check for revocation -- some may not).

Here are some validity checks to consider when verifying a Verifiable Claim:

  • Document is valid JSON-LD.
  • Required properties are present in the document.
  • The issuer's @id may be accessed.
  • The issued date is published and is in the expected range (i.e. not in the future).
  • There is an @id of the claim subject identified. This @id matches expected recipient.
  • The document signature is available. It is in the form of a known signature suite.
  • The @id of the key that signed the claim is included or otherwise may be determined.
  • Descriptive information about the signing key is discoverable.
  • The public key value of the key that signed the claim may be accessed.
  • Metadata about the issuer, published by the issuer, may be accessed.
  • A trustworthy link between the issuer and the signing key may be established.
  • The issuer's authorization of this signing key's validity has not expired.
  • The issuer's authorization of this signing key has not been revoked.
  • If revocation instructions are present, it is possible to determine that the claim has not been revoked.
  • The custom properties claimed about the subject are fit for the inspector's purpose.

@dlongley
Copy link
Contributor

@ottonomy,

There is an @id of the claim subject identified. This @id matches expected recipient.

I don't believe you meant for the above list of checks to be mandatory for every credential, but to leave no doubt, I can imagine a case where this is no such @id (i.e. bearer credentials).

@ottonomy
Copy link
Contributor

👍 , @dlongley. This item should be adjusted to indicate that @id may not be required and that this check should only apply when it is used.

If there is an @id identifying the subject of a claim, it matches the expected identity profile.

@msporny
Copy link
Member Author

msporny commented Feb 27, 2017

@ottonomy Could you create a PR from your proposed text so we can do a review? That's the next step here, imho.

@msporny
Copy link
Member Author

msporny commented Jul 27, 2017

I'm taking this up in the spec now and authoring text to implement @ottonomy's list.

@msporny
Copy link
Member Author

msporny commented Jul 27, 2017

Check to make sure all of these concepts are in the spec:

  • Document is valid JSON-LD.
  • Required properties are present in the document.
  • The issuer's @id may be accessed.
  • The issued date is published and is in the expected range (i.e. not in the future).
  • There is an @id of the claim subject identified. This @id matches expected recipient.
  • The document signature is available. It is in the form of a known signature suite.
  • The @id of the key that signed the claim is included or otherwise may be determined.
  • Descriptive information about the signing key is discoverable.
  • The public key value of the key that signed the claim may be accessed.
  • Metadata about the issuer, published by the issuer, may be accessed.
  • A trustworthy link between the issuer and the signing key may be established.
  • The issuer's authorization of this signing key's validity has not expired.
  • The issuer's authorization of this signing key has not been revoked.
  • If revocation instructions are present, it is possible to determine that the claim has not been revoked.
  • The custom properties claimed about the subject are fit for the inspector's purpose.

@msporny
Copy link
Member Author

msporny commented Jul 27, 2017

I have verified that all checks listed by @ottonomy are now in the specification. Closing this issue.

@msporny msporny closed this as completed Jul 27, 2017
@David-Chadwick
Copy link
Contributor

I would request one further check please

  • If the issuer has placed any policy information about the use of the credential e.g. intended inspectors, expiration date etc that this policy is adhered to

msporny added a commit that referenced this issue Jul 28, 2017
@msporny
Copy link
Member Author

msporny commented Jul 28, 2017

@David-Chadwick done - 0eac371

I added another one based on your comment, where the holder is able to annotate w/ usage rights as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response.
Projects
None yet
Development

No branches or pull requests

7 participants