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

Add Privacy Considerations section on "Unnecessary Correlation". #160

Merged
merged 3 commits into from
Apr 6, 2024

Conversation

msporny
Copy link
Member

@msporny msporny commented Mar 30, 2024

This PR is an attempt to address issue #142 and #147 by providing some guidance on when it's appropriate to use status lists that contain globally unique identifiers and when status lists should be selectively disclosable.

/cc @zoracon


Preview | Diff


<p>
When these global identifiers are used in [=presentations=] that utilize
[=selective disclosure=] or [=unlinkable disclosure=], they can violate privacy
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that respec cannot locate the [=unlinkable disclosure=] term. This should be handled

Copy link
Member Author

@msporny msporny Mar 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a terminology placeholder in the VCDM spec yesterday so that we can refer to it (since that spec has had the concept of unlinkable disclosure since v1.0). It takes 6 hours for the terminology database to update after the TR spec is published.

It looks like, since yesterday, the terminology database successfully updated and the link works now: https://www.w3.org/TR/vc-data-model-2.0/#dfn-unlinkable-disclosure

I tried to pick something uncontroversial for the definition (that was based on the existing text in the specification).; I expect that we'll want to bikeshed the definition in VCDM v2, which would be a purely editorial change.

index.html Outdated
<p>
In some cases, when [=presenting=] a [=verifiable credential=] that contains
other global identifiers (such as a driver's license identification number),
using other global identifiers for the status list information does not cause
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
using other global identifiers for the status list information does not cause
then using other global identifiers for the status list information does not cause

index.html Outdated
</p>

<p>
For more information on other types of correlation that is possible,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For more information on other types of correlation that is possible,
For more information on other types of correlation that are possible,

index.html Outdated
require them to know the current status of a credential, and the holder might
then consent to revealing that information or might refuse to do so for a given
transaction. In all cases, both [=issuers=] and [=verifiers=] are urged to
ensure that the use of global identifiers is avoided when a particular exchange
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issuers cannot know what exchanges a holder might participate in, in future, and therefore this sentence does not make sense

Copy link
Contributor

@dlongley dlongley Apr 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It makes sense with respect to modeling and securing mechanism considerations. Issuers should choose VC models that omit global identifiers when possible or enable selective disclosure of them. In short, issuers have to issue VCs that support selective disclosure in order for holders to be able to make use of them.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlongley Whilst your comment makes sense, it does not change the sentence that does not make sense with respect to the issuer.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggest change

Suggested change
ensure that the use of global identifiers is avoided when a particular exchange
ensure that the use of global identifiers is avoided.

index.html Outdated
require them to know the current status of a credential, and the holder might
then consent to revealing that information or might refuse to do so for a given
transaction. In all cases, both [=issuers=] and [=verifiers=] are urged to
ensure that the use of global identifiers is avoided when a particular exchange
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ensure that the use of global identifiers is avoided when a particular exchange
ensure that the use of global identifiers is avoided

index.html Outdated
then consent to revealing that information or might refuse to do so for a given
transaction. In all cases, both [=issuers=] and [=verifiers=] are urged to
ensure that the use of global identifiers is avoided when a particular exchange
does not require correlation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
does not require correlation.
in order to prevent correlation.

index.html Outdated
require them to know the current status of a credential, and the holder might
then consent to revealing that information or might refuse to do so for a given
transaction. In all cases, both [=issuers=] and [=verifiers=] are urged to
ensure that the use of global identifiers is avoided when a particular exchange
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@David-Chadwick,

I'd suggest this instead:

Suggested change
ensure that the use of global identifiers is avoided when a particular exchange
ensure that the use of global identifiers can be avoided when a particular exchange

I think this should cover "enabling" holders to make the selective disclosure choices they'd prefer to make when future exchanges arise where the global identifiers don't need to be disclosed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text that I object to is

In all cases, .. [=issuers=] .. are urged to
ensure that the use of global identifiers is avoided when a particular exchange
does not require correlation.

the reason being that issuers do not know what exchanges the holder may participate in, and therefore which might or might not require correlation

Copy link
Member Author

@msporny msporny Apr 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If an issuer is providing a selectively disclosable VC, they don't need to know how the holder might use it. The verifier knows what information they need and they will ask for it. It's up to the holder to provide that information or refuse to provide it, based on a use-case-by-use-case or per-transaction basis.

We can use a layered approach here by telling the issuer that:

  1. By default, make everything selectively disclosable if they're supporting selective disclosure. This helps the holder maximize their privacy by making /everything/ selectively disclosable by default.
  2. If they so choose, the issuer can (on top of the default guidance) make a determinination that, under no circumstance, do they ever want fields X, Y, and Z selectively disclosable.

None of that requires the issuer to know how the holder might use the VC.

/cc @npdoty and @kdenhartog to get their thoughts on this general guidance for selective disclosure. If this sticks, we'll want to move it into the VCDM. In fact, a lot of this guidance we're giving in the BBS Cryptosuite and the Bitstring Status List specs belongs in the VCDM.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whilst I agree with what you say above, the sentence I object to does not reflect this. So can we edit the sentence please so that it does reflect this e.g.

In all cases, [=verifiers=] are urged to
ensure that the use of global identifiers is avoided when a particular exchange
does not require correlation. Similarly [=issuers=] that support selective disclosure
should make everything selectively disclosable by default in order to help the holder
maximize their privacy in future exchanges.

Please edit the above as you wish

@iherman
Copy link
Member

iherman commented Apr 3, 2024

The issue was discussed in a meeting on 2024-04-03

  • no resolutions were taken
View the transcript

3.2. Add Privacy Considerations section on "Unnecessary Correlation". (pr vc-bitstring-status-list#160)

See github pull request vc-bitstring-status-list#160.

Manu Sporny: The other one is a general heads up that there are PRs that are being raised both in the BBS crypto suite and the Bitstring status list for preventing unnecessary correlation.
… This maybe belong in the VCDM.
… Now that we do have a ZKP proposal in the CR phase, we may want to start moving some of this generalized advice to the base specification.
… The advice applies to any securing mechanism that uses unlinkable or selective disclosure.

Gabe Cohen: Manu, would you like to open an issue and tag VC-JOSE-COSE editors to sync up on language.

Manu Sporny: I think that'll happen automatically when we raise the PR. So I think we can go straight there.

@msporny
Copy link
Member Author

msporny commented Apr 6, 2024

Editorial, multiple reviews, changes requested and made, no objections, merging.

@msporny msporny merged commit cbd68b6 into main Apr 6, 2024
2 checks passed
@msporny msporny deleted the msporny-status-list-identifiers branch April 6, 2024 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants