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

Fingerprinting 2.0: Canvas #9186

Closed
pes10k opened this issue Apr 13, 2020 · 7 comments · Fixed by brave/brave-core#5220
Closed

Fingerprinting 2.0: Canvas #9186

pes10k opened this issue Apr 13, 2020 · 7 comments · Fixed by brave/brave-core#5220
Assignees
Labels
feature/shields/fingerprint The fingerprinting (aka: "device recognition") protection provided in Shields privacy privacy-pod Feature work for the Privacy & Web Compatibility pod QA Pass-Linux QA Pass-macOS QA Pass-Win64 QA/Yes release-notes/exclude

Comments

@pes10k
Copy link
Contributor

pes10k commented Apr 13, 2020

This is a sub-issue of the larger font defense reorganization #8787

Serialization Endpoints

CanvasRendering2dContext.getImageData
HTMLCanvasElement.toDataURL
HTMLCanvasElement.toBlob
OffscreenCanvas.convertToBlob

default protection: farble output, by using eTLD+1 session seed and canvas contents to determine offsets into the canvas to flip randomly selected low order bits
max protection: Generate psuedo-random output (w/o regard to canvas contents), derived from the eTLD+1 session seed

@pes10k pes10k added privacy feature/shields/fingerprint The fingerprinting (aka: "device recognition") protection provided in Shields privacy-pod Feature work for the Privacy & Web Compatibility pod labels Apr 13, 2020
@pes10k pes10k changed the title Fingerprinting: Canvas output Fingerprinting: Canvas Apr 13, 2020
@pes10k pes10k changed the title Fingerprinting: Canvas Fingerprinting 2.0: Canvas Apr 13, 2020
@bbondy bbondy added this to the 1.10.x - Beta milestone Jun 1, 2020
@LaurenWags
Copy link
Member

@pes10k assuming this one is also waiting on the same items mentioned in #8661 (comment) ?

cc @rebron @kjozwiak

@pes10k
Copy link
Contributor Author

pes10k commented Jun 2, 2020

@LaurenWags yep! Let me ping #devops folks and see how far out https://github.com/brave/devops/issues/3067 is in their queue. If its way out, then i'll see if i can figure something else out on my own

@LaurenWags
Copy link
Member

thanks @pes10k - marking as QA/Blocked until we're sorted!

@pes10k
Copy link
Contributor Author

pes10k commented Jun 9, 2020

Hi @LaurenWags I've written up some manual tests for this here. I tried to write up some instructions here. Just let me know if its not clear or it'd be good to talk through.

Thanks to @bkero, i can add more tests easily as needed too, so just let me know how i can be helpful :)

@bbondy bbondy added the QA/Yes label Jun 9, 2020
@LaurenWags
Copy link
Member

per discussion w/ @pes10k info is here: https://github.com/brave/devops/issues/3067#issuecomment-640949572

@LaurenWags
Copy link
Member

Per discussions w/ @pes10k here's the test plan:
Using

Confirm that:

  • with shields up, FP values are the same for each individual item (ex. WebGL Drawing) on a given page, but the values are different between the two pages above.
  • with shields up, if you close and relaunch the browser, and visit the pages again the values are different (they are not retained between sessions).
  • with shields down, FP values are the same for each individual item on a given page and are the same for both pages.
  • with shields down, if you close and relaunch the browser, and visit the pages again, the values are the same (they are retained between sessions).

@srirambv
Copy link
Contributor

srirambv commented Jun 12, 2020

Verification passed on

Brave 1.10.88 Chromium: 83.0.4103.97 (Official Build) (64-bit)
Revision 326d148b9655369b86498d9ecca39f63dd2bdd2d-refs/branch-heads/4103@{# 657}
OS Linux
Verified with shields up, FP values are the same for each individual item (ex. WebGL Drawing) on a given page.
URL 1 URL 2
image image
Verified with shields up, close and relaunch the browser, and visit the pages again the values are different except for WebGL Drawing - Passed
  • Canvas and WebAudio has different values between relaunches
URL 1 URL2
image image
image image
Verified with shields down, FP values for WebGL Drawing/Canvas/Web Audio are all the same on a given page and are the same for both pages.
URL 1 URL2
image image
image image
image image
Verified with shields down, if you close and relaunch the browser, and visit the pages again, the values are the same (they are retained between sessions).
  • No screenshots to show here
    image

Verification passed on


Brave | 1.10.90 Chromium: 83.0.4103.97 (Official Build) (64-bit)
-- | --
Revision | 326d148b9655369b86498d9ecca39f63dd2bdd2d-refs/branch-heads/4103@{#657}
OS | Windows 10 OS (Build 10240.17443)



Verified passed with

Brave | 1.10.90 Chromium: 83.0.4103.97 (Official Build) (64-bit)
-- | --
Revision | 326d148b9655369b86498d9ecca39f63dd2bdd2d-refs/branch-heads/4103@{#657}
OS | macOS Version 10.14.6 (Build 18G3020)

Shields up - initial launch:
Shields up - launch 1

Shields up - relaunch:
Shields up - relaunch

Shields down - initial launch:
Shields down - launch 1

Shields down - relaunch:
Shields down - relaunch

Encountered #10260 while testing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature/shields/fingerprint The fingerprinting (aka: "device recognition") protection provided in Shields privacy privacy-pod Feature work for the Privacy & Web Compatibility pod QA Pass-Linux QA Pass-macOS QA Pass-Win64 QA/Yes release-notes/exclude
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants