Pr Privacy cy-pre prese servi rving ng Fir Firef efox x - - PowerPoint PPT Presentation

pr privacy cy pre prese servi rving ng fir firef efox x
SMART_READER_LITE
LIVE PREVIEW

Pr Privacy cy-pre prese servi rving ng Fir Firef efox x - - PowerPoint PPT Presentation

Pr Privacy cy-pre prese servi rving ng Fir Firef efox x telem elemet etry wit ith Pr Prio Henry Corrigan-Gibbs (EPFL MIT CSAIL) In In c collabora ration wi with: Dan Boneh (Stanford), Gary Chen, Steven Englehardt, Robert


slide-1
SLIDE 1

Pr Privacy cy-pre prese servi rving ng Fir Firef efox x telem elemet etry wit ith Pr Prio

Henry Corrigan-Gibbs (EPFL → MIT CSAIL) In In c collabora ration wi with: Dan Boneh (Stanford), Gary Chen, Steven Englehardt, Robert Helmer, Chris Hutten-Czapski, Anthony Miyaguchi, Eric Rescorla, and Peter Saint-Andre (Mozilla)

slide-2
SLIDE 2

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

51

slide-3
SLIDE 3

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

52

Mozilla wants to know: “H “How many y Fir iref efox x user ers blocked ked a a trac racki king g cooki

  • okie

e from rom fb fb.co .com?” ?”

slide-4
SLIDE 4

53

à Single point of failure.

1 1

“58,329 Firefox users blocked an fb.com cookie.”

Software vendors often answer these questions by collecting se sensi sitive usage data directly.

slide-5
SLIDE 5

54

à Single point of failure.

– Theft by attackers – Abuse by malicious insiders – Snooping by governments

Software vendors often answer these questions by collecting se sensi sitive usage data directly.

“58,329 Firefox users blocked an fb.com cookie.”

1 1

slide-6
SLIDE 6

Pr Prio: : Aggregate data without the privacy risks

  • Collect aggregate usage data

wi withou

  • ut seeing any

y single user’s data.

  • New cryptography makes this system practical

–Proofs on secret-shared data

  • Basis for Mozilla’s new privacy-preserving telemetry system

–In pilot phase: Enabled by default in Firefox’s “Nightly” build –Largest deployment of technology based on PCPs

(probabilistically checkable proofs)

55

C-G and Boneh (NSDI 2017)

slide-7
SLIDE 7

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

  • There are 𝑜 ≈ 2,500 domains on the tracking-protection blocklist
  • For each blocked domain, each user 𝑗 has a bit

– Bit is “1” iff user 𝑗’s browser ever blocked cookies from domain.com – These bits are se sensi nsitive – reveal user’s browsing history

56

fb fb.com

  • r
  • rku

kut. t.com

  • m

ru ru4.co com

  • n
  • nad.eu

eu nu nugg.ad xa xa.net po po.st st sa sas. s.com cam cams.co com ta tapit. it.com

  • m

uc ucoz.ae gm gmail il.com

  • m

ib ibm.com

  • m

Us User 1 <1 0 1 0 1 0 1 0 0 0 0 0 0 … 1> Us User 2 <1 1 1 0 1 0 1 0 0 1 0 0 1 … 0> Us User 2 … … Us User 𝑽 <0 0 0 0 1 0 1 0 0 0 0 1 0 … 0>

Do Domain 𝒐

slide-8
SLIDE 8

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

57

fb fb.com

  • r
  • rku

kut. t.com

  • m

ru ru4.co com

  • n
  • nad.eu

eu nu nugg.ad xa xa.net po po.st st sa sas. s.com cam cams.co com ta tapit. it.com

  • m

uc ucoz.ae gm gmail il.com

  • m

ib ibm.com

  • m
  • Mozilla wants the sum of these vectors over all users 𝑗

Us User 1 <1 0 1 0 1 0 1 0 0 0 0 0 0 … 1> Us User 2 <1 1 1 0 1 0 1 0 0 1 0 0 1 … 0> Us User 2 … … Us User 𝑽 <0 0 0 0 1 0 1 0 0 0 0 1 0 … 0>

Do Domain 𝒐

slide-9
SLIDE 9

Us User 1 <1 0 1 0 1 0 1 0 0 0 0 0 0 … 1> Us User 2 <1 1 1 0 1 0 1 0 0 1 0 0 1 … 0> Us User 2 … … Us User 𝑽 <0 0 0 0 1 0 1 0 0 0 0 1 0 … 0>

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

58

fb fb.com

  • r
  • rku

kut. t.com

  • m

ru ru4.co com

  • n
  • nad.eu

eu nu nugg.ad xa xa.net po po.st st sa sas. s.com cam cams.co com ta tapit. it.com

  • m

uc ucoz.ae gm gmail il.com

  • m

ib ibm.com

  • m

Do Domain 𝒐

SU SUM M 31, 91, 6, 0, 8, 29, 81, 0, 0, 88, 10, 5, 59, …, 50

  • Mozilla wants the sum of these vectors over all users 𝑗
slide-10
SLIDE 10

Us User 1 <1 0 1 0 1 0 1 0 0 0 0 0 0 … 1> Us User 2 <1 1 1 0 1 0 1 0 0 1 0 0 1 … 0> Us User 2 … … Us User 𝑽 <0 0 0 0 1 0 1 0 0 0 0 1 0 … 0>

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

59

fb fb.com

  • r
  • rku

kut. t.com

  • m

ru ru4.co com

  • n
  • nad.eu

eu nu nugg.ad xa xa.net po po.st st sa sas. s.com cam cams.co com ta tapit. it.com

  • m

uc ucoz.ae gm gmail il.com

  • m

ib ibm.com

  • m

Do Domain 𝒐

How many users blocked fb.com cookies via tracking protection SU SUM M 31, 91, 6, 0, 8, 29, 81, 0, 0, 88, 10, 5, 59, …, 50

  • Mozilla wants the sum of these vectors over all users 𝑗
slide-11
SLIDE 11

Us User 1 <1 0 1 0 1 0 1 0 0 0 0 0 0 … 1> Us User 2 <1 1 1 0 1 0 1 0 0 1 0 0 1 … 0> Us User 2 … … Us User 𝑽 <0 0 0 0 1 0 1 0 0 0 0 1 0 … 0>

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

60

fb fb.com

  • r
  • rku

kut. t.com

  • m

ru ru4.co com

  • n
  • nad.eu

eu nu nugg.ad xa xa.net po po.st st sa sas. s.com cam cams.co com ta tapit. it.com

  • m

uc ucoz.ae gm gmail il.com

  • m

ib ibm.com

  • m

Do Domain 𝒐

SU SUM M 31, 91, 6, 0, 8, 29, 81, 0, 0, 88, 10, 5, 59, …, 50

  • Mozilla wants the sum of these vectors over all users 𝑗
slide-12
SLIDE 12

Us User 1 <1 0 1 0 1 0 1 0 0 0 0 0 0 … 1> Us User 2 <1 1 1 0 1 0 1 0 0 1 0 0 1 … 0> Us User 2 … … Us User 𝑽 <0 0 0 0 1 0 1 0 0 0 0 1 0 … 0>

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

61

fb fb.com

  • r
  • rku

kut. t.com

  • m

ru ru4.co com

  • n
  • nad.eu

eu nu nugg.ad xa xa.net po po.st st sa sas. s.com cam cams.co com ta tapit. it.com

  • m

uc ucoz.ae gm gmail il.com

  • m

ib ibm.com

  • m

Do Domain 𝒐

SU SUM M 31, 91, 6, 0, 8, 29, 81, 0, 0, 88, 10, 5, 59, …, 50

𝑦' 𝑦( 𝑦) Σ+,'

) 𝑦+

  • Mozilla wants the sum of these vectors over all users 𝑗
slide-13
SLIDE 13

Us User 1 <1 0 1 0 1 0 1 0 0 0 0 0 0 … 1> Us User 2 <1 1 1 0 1 0 1 0 0 1 0 0 1 … 0> Us User 2 … … Us User 𝑽 <0 0 0 0 1 0 1 0 0 0 0 1 0 … 0>

Runni Running ng e exa xample ple:

Measuring effectiveness of tracking protection

62

fb fb.com

  • r
  • rku

kut. t.com

  • m

ru ru4.co com

  • n
  • nad.eu

eu nu nugg.ad xa xa.net po po.st st sa sas. s.com cam cams.co com ta tapit. it.com

  • m

uc ucoz.ae gm gmail il.com

  • m

ib ibm.com

  • m

Do Domain 𝒐

SU SUM M 31, 91, 6, 0, 8, 29, 81, 0, 0, 88, 10, 5, 59, …, 50

𝑦' 𝑦( 𝑦) Σ+,'

) 𝑦+

  • Mozilla wants the sum of these vectors over all users 𝑗

We run the system many times in parallel to compute the statistics for all domains

slide-14
SLIDE 14

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

63

𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

slide-15
SLIDE 15

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

64

𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

Attacker must compromise all servers to learn private data.

slide-16
SLIDE 16

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

65

𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

slide-17
SLIDE 17

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

66

𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

slide-18
SLIDE 18

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

67

𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

slide-19
SLIDE 19

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

68

𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

slide-20
SLIDE 20

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

69

𝑦' 𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

slide-21
SLIDE 21

Prio: System goals

1.

  • 1. Co

Correc ectnes

  • ess. If clients and servers

are honest, servers learn Σ+𝑦+

Extension: Maintain correctness in spite of server faults

2.

  • 2. 𝒈-Pr
  • Privacy. Attacker must

compromise all servers to learn more than Σ+𝑦+

Extension: Differential privacy [DMNS06]

3.

  • 3. Disr

srupt ption resi sist stan ance. The worst that a malicious client can do is lie about her input. 4.

  • 4. Efficiency. Handle millions of

submissions per server per hour

70

𝑦' 𝑦( 𝑦. 𝑦) Σ+,'

)

𝑦+

slide-22
SLIDE 22

71

Re Relax ax corre

  • rrectness

𝑦 + noise Re Relax ax privac rivacy mod

  • del

Re Relax ax dis isru ruption ion re resis istan ance 𝑦 𝑦 garbage Enc(𝑦) Re Relax ax effic icie iency

Randomized response: [W65], [DMNS06], [DJW13], [BS15] RAPPOR (2014, 2016), Wang et al. (2017), Ding et al. (2017)… Tor: PrivStats (2011), ANONIZE (2014), … SGX: Prochlo (2017), SGX-BigMatrix (2017), … Honest but curious: PDDP (2012), SplitX (2013), … Private metering (2011), PrivEx-S2 (2014), PrivCount (2016), Federated ML (2016, 2017), … P4P (2010), Grid aggregation (2011), Haze (2013), PrivEx-D2 (2014), Succinct sketches (2016), HisTor𝜗 (2017), … General MPC [GMW87], [BGW88]: FairPlay (2004), FairplayMP (2008), SEPIA (2010), Private matrix factorization (2013), UnLynx (2017), Private ridge regression (2018), Shuffle model (2017, 2019), …

slide-23
SLIDE 23

Server A Server B Server C

𝑦' = 𝟐

73

[C88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …

St Straw-man man scheme me

Private sums without disruption resistance

slide-24
SLIDE 24

Server A

Pick three random “shares” that sum to 𝑦' = 𝟐. 𝟐 = 15 + −12 + − 2 (mod 𝑞) Send one share to each server.

Server B Server C

𝑦' = 𝟐

74

[C88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …

St Straw-man man scheme me

Private sums without disruption resistance

slide-25
SLIDE 25

Server A

Pick three random “shares” that sum to 𝑦' = 𝟐. 𝟐 = 15 + −12 + − 2 (mod 𝑞) Send one share to each server.

Server B Server C

𝑦' = 𝟐

75

[C88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …

St Straw-man man scheme me

Private sums without disruption resistance

slide-26
SLIDE 26

Server A

Pick three random “shares” that sum to 𝑦' = 𝟐. 𝟐 = 15 + −12 + − 2 (mod 𝑞) Send one share to each server.

Server B Server C

15 −12 −2 𝑦' = 𝟐

76

[C88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …

St Straw-man man scheme me

Private sums without disruption resistance

slide-27
SLIDE 27

Server A Server B Server C

15 −12 −2 𝑦' = 𝟐

77

St Straw-man man scheme me

Private sums without disruption resistance Pick three random “shares” that sum to 𝑦' = 𝟐. 𝟐 = 15 + −12 + − 2 (mod 𝑞) Send one share to each server.

slide-28
SLIDE 28

Server A

15

Server B

−12

Server C

−2

𝑦' = 𝟐

78

St Straw-man man scheme me

Private sums without disruption resistance Pick three random “shares” that sum to 𝑦' = 𝟐. 𝟐 = 15 + −12 + − 2 (mod 𝑞) Send one share to each server.

slide-29
SLIDE 29

Server A

15

Server B

−12

Server C

−2

𝑦( = 𝟏

79

St Straw-man man scheme me

Private sums without disruption resistance

slide-30
SLIDE 30

Server A

15

Server B

−12

Server C

−2

𝑦( = 𝟏

80

St Straw-man man scheme me

Private sums without disruption resistance

slide-31
SLIDE 31

Server A

15

Server B

−12

Server C

−2

−10 7 3

= ( ) + +

𝑦( = 𝟏

81

St Straw-man man scheme me

Private sums without disruption resistance

slide-32
SLIDE 32

Server A

15

Server B

−12

Server C

−2

−10 7 3 𝑦( = 𝟏

82

St Straw-man man scheme me

Private sums without disruption resistance

slide-33
SLIDE 33

Server A

15 − 10

Server B

−12 + 7

Server C

−2 + 3

𝑦( = 𝟏

83

St Straw-man man scheme me

Private sums without disruption resistance

slide-34
SLIDE 34

Server A Server B Server C

15 − 10

−12 + 7

−2 + 3

84

St Straw-man man scheme me

Private sums without disruption resistance

slide-35
SLIDE 35

Server A Server B Server C

15 − 10

−12 + 7

−2 + 3

85

St Straw-man man scheme me

Private sums without disruption resistance

slide-36
SLIDE 36

Server A Server B Server C

𝑇>

𝑇?

𝑇P

86

St Straw-man man scheme me

Private sums without disruption resistance

slide-37
SLIDE 37

Server A Server B Server C

𝑇>

𝑇?

𝑇P

15 − 10 + ⋯ + −12 + 7 + ⋯ + −2 + 3 + ⋯ = 𝑦' + 𝑦( + 𝑦. + ⋯

Servers learn the sum of the clients’ values and nothing else.

87

St Straw-man man scheme me

Private sums without disruption resistance

slide-38
SLIDE 38

Server A Server B Server C

𝑇>

𝑇?

𝑇P

15 − 10 + ⋯ + −12 + 7 + ⋯ + −2 + 3 + ⋯ = 𝑦' + 𝑦( + 𝑦. + ⋯

Servers learn the sum of the clients’ values and nothing else.

88

St Straw-man man scheme me

Private sums without disruption resistance

e.g., learn that 58,329 users blocked trackers from fb.com… don don’t learn which users did

slide-39
SLIDE 39

Private sums: Straw-man scheme

Co Correct ctness. Servers learn the sum of the 𝑦+s 𝒈-Priv Privacy. y. Attacker must compromise all servers to learn more than sum of 𝑦+s Ef Efficiency. No heavy cryptographic operations Di Disrup uption On One mal alici cious cl client t can can re resis istance. co corrupt t th the outp tput. t.

89

X

slide-40
SLIDE 40

Server A

15

Server B

−12

Server C

−2

𝒚𝟑 = −𝟔𝟒

90

St Straw-man man scheme me

One malicious client can corrupt output Should be a value in the set {0,1} Evil ad network

slide-41
SLIDE 41

= + +

Server A

15

Server B

−12

Server C

−2

−19 −16 −18 𝒚𝟑 = −𝟔𝟒

91

St Straw-man man scheme me

One malicious client can corrupt output Should be a value in the set {0,1} Evil ad network

slide-42
SLIDE 42

Server A

15

Server B

−12

Server C

−2

−19 −16 −18 𝒚𝟑 = −𝟔𝟒

92

St Straw-man man scheme me

One malicious client can corrupt output Should be a value in the set {0,1} Evil ad network

slide-43
SLIDE 43

Server A garbage Server B garbage Server C garbage

One malicious client can corrupt the output.

93

St Straw-man man scheme me

One malicious client can corrupt output Evil ad network

slide-44
SLIDE 44

Powerful but costly tools…

94

Multiparty computation

[GMW87], [BGW88]

slide-45
SLIDE 45

Powerful but costly tools…

95

Multiparty computation Traditional zero-knowledge proofs

[GMW87], [BGW88] [GMR89]

slide-46
SLIDE 46

Powerful but costly tools…

96

Multiparty computation Traditional zero-knowledge proofs Ne New w to tool: Pro roof f on se secret-sh shared data

[GMW87], [BGW88] [GMR89]

slide-47
SLIDE 47

Techniques for providing disruption resistance

97

Pu Public-key key ops. Commun Communic ication ion Sl Slow- dow down Client Server C-to-S S-to-S Dishonest-maj. MPC

5,000×

at server

GGPR-style zkSNARK

500×

at client

Discrete-log-based NIZK

50×

at server

Pr Prio

(latest version)

(Table hides log factors.)

] 𝑃(1) ] 𝑃(1) _ Θ(𝑜) ] 𝑃(1) _ Θ(𝑜) _ Θ(𝑜) _ Θ(𝑜) _ Θ(𝑜) _ Θ(𝑜)

Testing that a length-𝑜 vector (e.g., data for 𝑜 trackers) consists of secret-shared 0/1 integers.

] 𝑃(1) ] 𝑃(1) _ Θ(𝑜)

slide-48
SLIDE 48

Techniques for providing disruption resistance

98

Pu Public-key key ops. Commun Communic ication ion Sl Slow- dow down Client Server C-to-S S-to-S Dishonest-maj. MPC

5,000×

at server

GGPR-style zkSNARK

500×

at client

Discrete-log-based NIZK

50×

at server

Pr Prio

(latest version)

(Table hides log factors.)

] 𝑃(1) ] 𝑃(1) _ Θ(𝑜) ] 𝑃(1) _ Θ(𝑜) _ Θ(𝑜) _ Θ(𝑜) _ Θ(𝑜) _ Θ(𝑜)

Testing that a length-𝑜 vector (e.g., data for 𝑜 trackers) consists of secret-shared 0/1 integers.

] 𝑃(1) ] 𝑃(1) _ Θ(𝑜)

slide-49
SLIDE 49

Server A Server B Server C

99

Con Contribution

  • n:

Prevent disruption using proofs on secret-shared data

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

Dimension-𝑜 vectors

  • f integers mod 𝑞.

(i.e., in ℤf

b)

slide-50
SLIDE 50

Server A Server B Server C

100

Con Contribution

  • n:

Prevent disruption using proofs on secret-shared data

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

slide-51
SLIDE 51

Server A Server B Server C

101

Con Contribution

  • n:

Prevent disruption using proofs on secret-shared data

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

Want to be convinced that 𝐲 = [𝐲]> + [𝐲]?+[𝐲]P ∈ 0,1 b ∈ ℤf

b

slide-52
SLIDE 52

Server A Server B Server C

102

Con Contribution

  • n:

Prevent disruption using proofs on secret-shared data

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

Want to be convinced that 𝐲 = [𝐲]> + [𝐲]?+[𝐲]P ∈ 0,1 b ∈ ℤf

b

More generally, that Valid(𝐲) holds, for some predicate Valid

slide-53
SLIDE 53

Server A Server B Server C

,[𝜌]> ,[𝜌]? ,[𝜌]P

103

Con Contribution

  • n:

Prevent disruption using proofs on secret-shared data

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

  • Client sends proof to servers that Va

Valid(x) holds

– For our example, Va Valid x = “x ∈ 0,1 b” – Servers exchange 𝑃(1) bytes to check proof

  • Prevents disruption in Prio

– Servers reject invalid client submissions

slide-54
SLIDE 54

Server A Server B Server C

,[𝜌]> ,[𝜌]? ,[𝜌]P

104

Con Contribution

  • n:

Prevent disruption using proofs on secret-shared data

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

  • Client sends proof to servers that Va

Valid(x) holds

– For our example, Va Valid x = “x ∈ 0,1 b” – Servers exchange 𝑃(1) bytes to check proof

  • Prevents disruption in Prio

– Servers reject invalid client submissions

𝑃(1) 𝑃(1) 𝑃(1)

slide-55
SLIDE 55

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta*

*s *simplifi fied

Server A Server B Server C

105

[𝐲]> [𝐲]? [𝐲]P

slide-56
SLIDE 56

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta*

*s *simplifi fied

Server A Server B Server C

106

Could use secure multi-party computation to check that Va Valid x holds

[GMW87], [BGW88], …

[𝐲]> [𝐲]? [𝐲]P

slide-57
SLIDE 57

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta*

*s *simplifi fied

Server A Server B Server C

107

Could use secure multi-party computation to check that Va Valid x holds

[GMW87], [BGW88], …

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

slide-58
SLIDE 58

[𝐲]> [𝐲]? [𝐲]P 𝐲 ∈ 0,1 b

Data for 𝑜 domains

Server A Server B Server C

108

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta

[𝐲]> [𝐲]? [𝐲]P

Idea Idea: Client generates transcripts that servers would have observed in a multi-party computation of Va Valid x .

See also [IKOS07]

slide-59
SLIDE 59

Server A Server B Server C

109

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta

𝜌> 𝜌? 𝜌P 𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

slide-60
SLIDE 60

Server A Server B Server C

110

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta

𝜌> 𝜌? 𝜌P

Servers check that their transcripts are valid and consistent

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

slide-61
SLIDE 61

Server A Server B Server C

111

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta

𝜌> 𝜌? 𝜌P

Servers check that their transcripts are valid and consistent Checking a transcript is mu much easi sier than generating one.

𝐲 ∈ 0,1 b

Data for 𝑜 domains

[𝐲]> [𝐲]? [𝐲]P

slide-62
SLIDE 62

Server A Server B Server C

112

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta

𝜌> 𝜌? 𝜌P

𝑬𝑩 𝑬𝑪 𝑬𝑫

“Randomized digest” of transcripts

(Leak nothing about client's value 𝑦)

[𝐲]> [𝐲]? [𝐲]P

slide-63
SLIDE 63

Server A Server B Server C

If 𝑦 is well formed: 𝐸

> + 𝐸? + 𝐸P = 0

If 𝑦 is malformed: 𝐸

> + 𝐸? + 𝐸P ≠ 0 with high probability

Servers publish 𝐸

>, 𝐸?, 𝐸P and check that they sum to 0.

→ Servers accept 𝑦 if so.

113

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta 𝑬𝑩 𝑬𝑪 𝑬𝑫

slide-64
SLIDE 64

Server A Server B Server C

If 𝑦 is well formed: 𝐸

> + 𝐸? + 𝐸P = 0

If 𝑦 is malformed: 𝐸

> + 𝐸? + 𝐸P ≠ 0 with high probability

Servers publish 𝐸

>, 𝐸?, 𝐸P and check that they sum to 0.

→ Servers accept 𝑦 if so.

114

Ho How to w to c constr nstruct a a proof roof on

  • n

se secret-sha shared data ta 𝑬𝑩 𝑬𝑪 𝑬𝑫

𝑃(1) 𝑃(1) 𝑃(1)

slide-65
SLIDE 65

115

24 26 28 210 212 214 216 Submission length

(values/submission)

10 100 1000 10000 Throughput

(submissions/sec.)

General zero knowledge Baseline (no privacy)

Five-server cluster in five Amazon data centers.

B e t t e r

slide-66
SLIDE 66

116

24 26 28 210 212 214 216 Submission length

(values/submission)

10 100 1000 10000 Throughput

(submissions/sec.)

Prio General zero knowledge Baseline (no privacy)

Five-server cluster in five Amazon data centers.

B e t t e r

slide-67
SLIDE 67

117

24 26 28 210 212 214 216 Submission length

(values/submission)

10 100 1000 10000 Throughput

(submissions/sec.)

Prio General zero knowledge Baseline (no privacy)

50x

Five-server cluster in five Amazon data centers.

B e t t e r

slide-68
SLIDE 68

118

24 26 28 210 212 214 216 Submission length

(values/submission)

10 100 1000 10000 Throughput

(submissions/sec.)

Prio General zero knowledge Baseline (no privacy)

50x 10x

Five-server cluster in five Amazon data centers.

B e t t e r

slide-69
SLIDE 69

Prio supports a range of aggregation functions

  • Ave

Average

  • Va

Variance

  • Mo

Most p popul ular r (approx.)

  • Min

Min and ma max (approx.)

  • Qu

Quality of arbitrary re regre gressio ion m mode del (R2)

  • Le

Least-squ squares es reg egressi ession

  • Gra

Gradie dient de descent s step

[BIKMMPRSS17]

119

[PBBL11] [MDD16]

slide-70
SLIDE 70

121

Fi Fire refox

  • x

Depl Deploy

  • ymen

ment

slide-71
SLIDE 71

Firefox deployment

Uses libprio, a C library we wrote that implements Prio

– github.com/mozilla/libprio – 3.5k LoC

– Encoding a length-1024 data packet: 35ms in Firefox browser (more optimizations possible) – Python bindings to simplify server-side data analysis

Pilot phase, 11/2018-now

– Implemented in Firefox, but Mozilla currently runs all servers – Enabled by default only in the “Nightly” build

Next step: Mo

Move se second se server to to exte ternal org. . (In progress)

122

slide-72
SLIDE 72

skB

123

pkA, pkB skA

Firefox deployment

slide-73
SLIDE 73

skB

124

~160 bytes

(AES key encrypted for server B)

36𝑜+160 bytes

to collect 𝑜 ints pkA, pkB skA

Firefox deployment

slide-74
SLIDE 74

125

In Firefox, set preference devtools.chrome.enabled, then in browser console…

slide-75
SLIDE 75

126

In Nightly, set pref. telemetry.origin_telemetry_test_mode.enabled, browse for a while, then visit about:telemetry.

slide-76
SLIDE 76

127

slide-77
SLIDE 77

128

https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/collection/origin.html

slide-78
SLIDE 78

129

slide-79
SLIDE 79

130

slide-80
SLIDE 80

Deployment stats

  • Initially, collecting data on ~2,500 blocklist rules

fb.com, google-analytics.com, adwords.google.com, …

  • Data collected on 0.014% of pageloads for 1% of clients
  • Expect to process ~200m telemetry submissions per day

– Submission from client every 24h or on shutdown = Tens of gigabytes of data per day to the second server

131

slide-81
SLIDE 81

The second server

  • Prio requires 2+ non-colluding servers, maintained ideally

– by independent organizations, – on independent infrastructure (not both on AWS), and – in different countries (under independent legal jurisdictions).

  • Serious non-technical challenge, but reasons for optimism

– Infrastructure costs are modest – ∃ multiple candidate orgs with privacy-centric mission – If Org2 uses Prio, Mozilla can be the “second server” for Org2

→ Mozilla is working to sign up a partner org in 2020.

132

slide-82
SLIDE 82

You can help!

github.com/ github.com/mozilla mozilla/libprio libprio/

Small things

–Add support for aggregating a wider range of data types –Implement client- and server-side optimizations –Implement differential-privacy features

Big things

–Rewrite parts of libprio in Rust –Be the external org that runs the second server

→ Eligible for Mozilla’s bug-bounty program. ←

133

slide-83
SLIDE 83

Conclusion

  • Prio is a new system for privacy-preserving telemetry
  • Firefox is using Prio to collect data to improve

the browser’s new tracking-protection feature

  • Deployment is ongoing!

– Ask if you’re interested in helping out.

He Henry ry Corri rrigan an-Gi Gibbs (EPFL & MIT CSAIL), henrycg@csail.mit.edu Dan Boneh (Stanford), Gary Chen, Steven Englehardt, Robert Helmer, Chris Hutten-Czapski, Anthony Miyaguchi, Eric Rescorla, and Peter Saint-Andre (Mozilla) Details: bugzilla.mozilla.org/show_bug.cgi?id=1543712 Code: github.com/mozilla/libprio/ Paper: crypto.stanford.edu/prio/

134

slide-84
SLIDE 84

Conclusion

  • Prio is a new system for privacy-preserving telemetry
  • Firefox is using Prio to collect data to improve

the browser’s new tracking-protection feature

  • Deployment is ongoing!

– Ask if you’re interested in helping out.

He Henry ry Corri rrigan an-Gi Gibbs (EPFL & MIT CSAIL), henrycg@csail.mit.edu Dan Boneh (Stanford), Gary Chen, Steven Englehardt, Robert Helmer, Chris Hutten-Czapski, Anthony Miyaguchi, Eric Rescorla, and Peter Saint-Andre (Mozilla) Details: bugzilla.mozilla.org/show_bug.cgi?id=1543712 Code: github.com/mozilla/libprio/ Paper: crypto.stanford.edu/prio/

135

Th Thank y you!

slide-85
SLIDE 85

136