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

Privacy concerns with blacklist/whitelist #184

Closed
hillbrad opened this issue Aug 24, 2016 · 13 comments
Closed

Privacy concerns with blacklist/whitelist #184

hillbrad opened this issue Aug 24, 2016 · 13 comments
Assignees
Labels
privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. stat:Discuss type:technical

Comments

@hillbrad
Copy link

Do the blacklist/whitelist features allow re-identification of the user without informed consent?

If I call makeCredential() with a blacklist, is it clear to the user that the blacklist may reveal other identities they have registered with the site previously?

If I call getAssertion() with a whitelist, can't the timing of an immediate return if no credentials in that whitelist are present vs. a delay for user approval, also effectively re-identify a user without consent?

@equalsJeffH
Copy link
Contributor

see also issue #204

@equalsJeffH equalsJeffH added stat:Discuss privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. labels Aug 23, 2017
@equalsJeffH
Copy link
Contributor

see also issue #140

@kpaulh
Copy link
Contributor

kpaulh commented Nov 9, 2017

Regarding getAssertion() with a whitelist, the Chrome implementation circumvents this by not returning immediately but by continuing to request user consent until timeout. In either case of user consent or timeout, Chrome will return a NotAllowedError.

@emlun
Copy link
Member

emlun commented Nov 10, 2017

@kpaulh So essentially Chrome ignores this part of §5.1.3.19 and §5.1.4.1.17?

If any authenticator returns a status indicating that the user cancelled the operation,

  1. Remove authenticator from issuedRequests.
  2. For each remaining authenticator in issuedRequests invoke the authenticatorCancel operation on authenticator and remove it from issuedRequests.

That should indeed make it impossible for the caller to see a difference between (1) timeout and (2) the credential is available, but the user denied consent to use it. It doesn't seem like this instruction would add much to the user experience either. So should we just delete it from the spec?

@kpaulh
Copy link
Contributor

kpaulh commented Nov 13, 2017

Oh, those steps are still useful. We perform them if the user denies consent. The distinction I meant is that Chrome will not immediately return if there are no credentials in the whitelist present.

@emlun
Copy link
Member

emlun commented Nov 13, 2017

Ah, I see. I also realized that those steps indeed won't have to go as long as the timeout isn't terminated early. What do you think of the additions proposed in #687?

@kpaulh
Copy link
Contributor

kpaulh commented Nov 14, 2017

Yeah, that sums it up pretty well!

@equalsJeffH
Copy link
Contributor

see also #743

@emlun
Copy link
Member

emlun commented Jan 17, 2018

I believe this can be closed now that #687 is merged.

@nadalin
Copy link
Contributor

nadalin commented Jan 17, 2018

@emlun please close

@emlun
Copy link
Member

emlun commented Jan 17, 2018

Decided on 2018-01-17 call to close this. With #655 and #687 merged, and #613 in progress, this should no longer be an issue.

Previously the operations would check at one instant what authenticators are available, ask the user for consent if any are applicable, or otherwise immediately return failure. Currently, the operations start a timer and do not return failure before the timeout expires.

With this, the side channel of timing information allowing identification without consent should be eliminated.

@emlun emlun closed this as completed Jan 17, 2018
@equalsJeffH
Copy link
Contributor

equalsJeffH commented Jan 19, 2018

Actually, in reviewing this and issue #204 and the the PRs #655, #687, #613 (mentioned by @emlun above), I agree that the "If I call getAssertion() with a whitelist..." portion of @hillbrad's original post (OP) is addressed (yay!).

However, it seems that in closing this issue, we overlooked that we have not addressed the other portion of the OP:

If I call makeCredential() with a blacklist, is it clear to the user that the blacklist may reveal other identities they have registered with the site previously?

Though, issue #204 is specifically in regards to the latter, and remains open at this time, so I'm thinking we can leave this particular issue closed, and rectify this oversight by addressing #204.

See also PR #687 (comment)

@emlun
Copy link
Member

emlun commented Jan 19, 2018

See my response in #687 (comment)

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. stat:Discuss type:technical
Projects
None yet
Development

No branches or pull requests

7 participants