Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Issue 2802603002: getInstalledRelatedApps: Introduce random delay to stop timing attacks. (Closed)

Created:
3 years, 8 months ago by Matt Giuca
Modified:
3 years, 8 months ago
Reviewers:
palmer, Ted C
CC:
agrieve+watch_chromium.org, chrome-apps-syd-reviews_chromium.org, darin-cc_chromium.org, jam
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

getInstalledRelatedApps: Introduce random delay to stop timing attacks. Queries to this API have a sleep of 0--8ms, randomly chosen based on a SHA-256 hash of the app ID, salted with a unique stable device ID. This prevents websites from being able to determine whether a non-related app is installed based on the time the query takes. The website is unable to compare the timing of different apps because they have different random delays, and unable to predict the random delay for a given device, because the salt is unknown. BUG=707071 Review-Url: https://codereview.chromium.org/2802603002 Cr-Commit-Position: refs/heads/master@{#464322} Committed: https://chromium.googlesource.com/chromium/src/+/245e999d5e19bd5f4bd44feed0336b2156581df1

Patch Set 1 #

Patch Set 2 : Reset the salt every time the browser process starts. #

Patch Set 3 : Added tests for PackageHash and the delay in InstalledAppProviderImpl. #

Total comments: 8

Patch Set 4 : Rebase. #

Patch Set 5 : Update comment. #

Patch Set 6 : Use system random source, and HMAC, instead of UUID and concatenation. #

Total comments: 5

Patch Set 7 : Reword comments. #

Patch Set 8 : Base off CL 2813153002. #

Patch Set 9 : Test: Update comment to refer to HMAC algorithm. #

Patch Set 10 : Use Handler.postDelay instead of Thread.sleep, to avoid choking any thread. #

Total comments: 8

Patch Set 11 : Respond to reviews. #

Patch Set 12 : Rebase. #

Messages

Total messages: 41 (17 generated)
Matt Giuca
Hi Chris, Please have a look and see if this implementation makes sense to you ...
3 years, 8 months ago (2017-04-06 07:22:40 UTC) #4
palmer
https://codereview.chromium.org/2802603002/diff/60001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java File content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java (right): https://codereview.chromium.org/2802603002/diff/60001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java#newcode124 content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java:124: // The time delay is the low 13 bits ...
3 years, 8 months ago (2017-04-07 18:56:33 UTC) #5
Matt Giuca
Thanks for reviewing this. I ran out of time to work on this today, but ...
3 years, 8 months ago (2017-04-10 08:33:40 UTC) #6
palmer
> > Pico-nit: Use "ms" consistently (not "usec"). > > Not sure what you mean ...
3 years, 8 months ago (2017-04-11 00:58:04 UTC) #7
Matt Giuca
+tedchoc for Android reviews. I have a couple of questions (for both of you) in ...
3 years, 8 months ago (2017-04-11 08:34:08 UTC) #12
Ted C
https://codereview.chromium.org/2802603002/diff/170001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java File content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java (right): https://codereview.chromium.org/2802603002/diff/170001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java#newcode272 content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java:272: Thread.sleep(millis, nanos); On 2017/04/11 08:34:08, Matt Giuca wrote: > ...
3 years, 8 months ago (2017-04-11 16:01:34 UTC) #13
palmer
> palmer: Do you have any suggestion of what to do here? > > This ...
3 years, 8 months ago (2017-04-11 18:22:43 UTC) #14
Matt Giuca
On 2017/04/11 18:22:43, palmer wrote: > > palmer: Do you have any suggestion of what ...
3 years, 8 months ago (2017-04-12 01:05:58 UTC) #15
Ted C
On 2017/04/12 01:05:58, Matt Giuca wrote: > On 2017/04/11 18:22:43, palmer wrote: > > > ...
3 years, 8 months ago (2017-04-12 01:25:40 UTC) #16
Matt Giuca
On 2017/04/12 01:25:40, Ted C wrote: > Ah ha, take a look at AsyncTask then. ...
3 years, 8 months ago (2017-04-12 01:42:31 UTC) #17
Ted C
On 2017/04/12 01:42:31, Matt Giuca wrote: > On 2017/04/12 01:25:40, Ted C wrote: > > ...
3 years, 8 months ago (2017-04-12 01:54:45 UTC) #18
Matt Giuca
On 2017/04/12 01:54:45, Ted C wrote: > I guess I was thinking that you would ...
3 years, 8 months ago (2017-04-12 05:37:54 UTC) #19
Matt Giuca
https://codereview.chromium.org/2802603002/diff/170001/content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java File content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java (right): https://codereview.chromium.org/2802603002/diff/170001/content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java#newcode86 content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java:86: // TODO(mgiuca): How to handle this? DO NOT SUBMIT. ...
3 years, 8 months ago (2017-04-12 05:38:02 UTC) #20
Ted C
On 2017/04/12 05:37:54, Matt Giuca wrote: > On 2017/04/12 01:54:45, Ted C wrote: > > ...
3 years, 8 months ago (2017-04-12 05:48:14 UTC) #21
Matt Giuca
On 2017/04/12 05:48:14, Ted C wrote: > On 2017/04/12 05:37:54, Matt Giuca wrote: > > ...
3 years, 8 months ago (2017-04-12 05:59:52 UTC) #22
Matt Giuca
On 2017/04/12 05:59:52, Matt Giuca wrote: > On 2017/04/12 05:48:14, Ted C wrote: > > ...
3 years, 8 months ago (2017-04-12 07:03:34 UTC) #24
Ted C
https://codereview.chromium.org/2802603002/diff/270001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java File content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java (right): https://codereview.chromium.org/2802603002/diff/270001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java#newcode85 content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java:85: new AsyncTask<Void, Void, RelatedApplication[]>() { I "think" it would ...
3 years, 8 months ago (2017-04-12 15:53:50 UTC) #25
palmer
LGTM https://codereview.chromium.org/2802603002/diff/270001/content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java File content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java (right): https://codereview.chromium.org/2802603002/diff/270001/content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java#newcode82 content/public/android/java/src/org/chromium/content/browser/installedapp/PackageHash.java:82: if (sSalt == null) { I don't remember ...
3 years, 8 months ago (2017-04-12 23:39:08 UTC) #26
Matt Giuca
https://codereview.chromium.org/2802603002/diff/270001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java File content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java (right): https://codereview.chromium.org/2802603002/diff/270001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java#newcode85 content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java:85: new AsyncTask<Void, Void, RelatedApplication[]>() { On 2017/04/12 15:53:50, Ted ...
3 years, 8 months ago (2017-04-13 00:29:55 UTC) #28
Ted C
lgtm
3 years, 8 months ago (2017-04-13 06:11:03 UTC) #33
Matt Giuca
On 2017/04/13 06:11:03, Ted C wrote: > lgtm Thanks for this when it's probably late ...
3 years, 8 months ago (2017-04-13 06:27:27 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2802603002/330001
3 years, 8 months ago (2017-04-13 06:27:51 UTC) #37
commit-bot: I haz the power
Committed patchset #12 (id:330001) as https://chromium.googlesource.com/chromium/src/+/245e999d5e19bd5f4bd44feed0336b2156581df1
3 years, 8 months ago (2017-04-13 06:34:19 UTC) #40
raymes
3 years, 8 months ago (2017-04-21 01:32:45 UTC) #41
Message was sent while issue was closed.
On 2017/04/13 06:34:19, commit-bot: I haz the power wrote:
> Committed patchset #12 (id:330001) as
>
https://chromium.googlesource.com/chromium/src/+/245e999d5e19bd5f4bd44feed033...

Neat idea!

Powered by Google App Engine
This is Rietveld 408576698