-
Notifications
You must be signed in to change notification settings - Fork 19
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
Describe decoy entries as a privacy mitigation #150
Comments
Yes, and it would be worth saying something about that in the specification. We went into what one can do to avoid statistical attacks against group privacy during the presentation on bitstring status list yesterday: https://meet.w3c-ccg.org/archives/w3c-ccg-weekly-2024-02-20.mp4 We should speak to decoy values and how one can avoid statistical attacks on the list by not only using decoy values, but flipping those bits randomly (when you flip other bits in the list). |
PR #155 has been merged, closing. |
@dlongley and others have argued that there are privacy harms and no privacy benefits to decoy entries, and the group has suggested that it is unaware of any threat or use case where a decoy value could provide a privacy benefit. To be clear, I don't think of this as an "obvious" solution at all and I'm not as familiar with these deployments. But I suspect there are threats where decoy values could provide some protection, especially when status value changes are rare, where the group of people with a particular status is small or where other information is known about people whose status may be on the list. For example, an issuer very rarely suspends licenses for a particular behavior. A case documenting that behavior is widely published in the press and on the same day, the issuer updates the status list to indicate a suspended status. The press then report apparent confirmation that the suspect's license was suspended, and potentially other information about them (when it was last suspended or un-suspended), even if that information was intended to be kept confidential. If the status information was shared in cases of selective disclosure (the licensee had proved their license status in order to access sensitive content online), then the licensee's identity has also been disclosed, and the site learns the identity of the visitor who accessed that particular content. @KDean-Dolphin raised a separate use case about business intelligence, where the size of the status list might reveal the group behavior, like how many licenses are being issued during a particular timeframe, that the issuer might wish to conceal. |
I'm, of course, perfectly happy for us to say something about how decoy values can be helpful (even when already doing random assignment) if we're able to determine how and come to consensus on it. I think we need to have a longer discussion around what to say about decoy values -- and that we should add an at-risk issue marker to the spec that says the working group will develop text around them (with options to recommend for, against, or stay silent on the concept). We could strike the sentence about discouraging them for now along with adding that risk marker. Do you think doing this would allow us to proceed to CR and then we can continue the discussion around what to say in more depth at that point? Regarding that discussion, I have a number of things to say around how using decoys in an effective manner requires that they behave as if they are indistinguishable from real entries, which I suspect will be quite challenging. Naive implementations that implement them in other ways (e.g., pseudo-randomly) would make them detectable as decoys, resulting in only net harm to privacy. |
Yes, I think noting it as an open question on how to do properly (or whether), with an at-risk marker, would make sense for CR. |
PR #171 has been raised to note that the decoy guidance will be refined during the Candidate Recommendation process and that the group may, or may not, suggest that decoy values are good/bad/a mixed bag. @npdoty, if that PR is merged, would it address your concerns enough to continue the transition into CR? If not, please suggest concrete changes on the PR such that we can determine the path forward. We'll most likely discuss this issue during our call this week, if you'd like to join us. /cc @brentzundel |
The issue was discussed in a meeting on 2024-09-27
View the transcript4.7. Describe decoy entries as a privacy mitigation (issue vc-bitstring-status-list#150)See github issue vc-bitstring-status-list#150. Manu Sporny: We still need to discuss decoy entries. Brent Zundel: We are acting in good faith. If this ends up holding us up, lets close it. Manu Sporny: The PR that got merged was an issue marker stating that in general decoys reduce the privacy of the status list. Joe Andrieu: I am not convinced on this argument. Kevin Dean: I agree with JoeAndrieu. It is possible to create a properly randomised list. And one that is expandable over time.
Kevin Dean: Is the idea over time that verifiers can learn which entries are decoys in the list. Manu Sporny: Yep that is one attack. The other argument is why don't you just use a much larger set.
Manu Sporny: Otherwise you have to perfectly model the rate of issuance to real people to decoys then you can statistically determine which entries are likely to be decoys.
Brent Zundel: In general, is it possible to start the bit string status list with a randomised string. Manu Sporny: Yes, but if you know the issuer always issues inactive things. You know the k-size. Brent Zundel: It sounds like a way to address this issue might be. Perfect deployment of decoy values would increase the privacy protections of the set. However, the degratdation that occurs though improper use of decoys leads us to not recommend this approach.
Gabe Cohen: Thanks this makes sense now. We should add language around updating status lists and the risks around eroding privacy. Joe Andrieu: The language around not rolling your own is on point. But there might be tools written by experts that people can use. Manu Sporny: I am concerned that this does not exist yet. Brent Zundel: I think that is all the CR normative issues for bit string status list. Manu Sporny: This wont be ready by january. Because of the other specs that are in need of attention. Ivan Herman: I would prefer to keep the goal of January. We are not that far away. Manu Sporny: Reminding everyone it could go fast if people did a PR. Ivan Herman: This is true. Many things are independent PRs that can be done in parralel. Brent Zundel: I think we have a solid idea for all our specs and next steps. |
Could dummy entries in the status list help to protect against an attacker who just regularly scans the list to try to reidentify users or their status?
Spec should document resistance to statistical analyses.
The text was updated successfully, but these errors were encountered: