conscript your friends into larger anonymity sets with javascript

27
Conscript Your Friends into Larger Anonymity Sets with JavaScript ACM Workshop on Privacy in the Electronic Society 4 November 2013 Henry Corrigan-Gibbs Stanford Bryan Ford Yale

Upload: danica

Post on 23-Feb-2016

45 views

Category:

Documents


0 download

DESCRIPTION

Conscript Your Friends into Larger Anonymity Sets with JavaScript . ACM Workshop on Privacy in the Electronic Society 4 November 2013. New Anonymity Systems Have a “Chicken-and-Egg” Problem. Small anonymity sets. Few users. Adversary could just arrest all three participants. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Conscript Your Friends into Larger Anonymity Sets with JavaScript

ACM Workshop on Privacy in the Electronic Society4 November 2013

Henry Corrigan-GibbsStanford

Bryan FordYale

Page 2: Conscript Your Friends into Larger Anonymity Sets with JavaScript

New Anonymity Systems Have a “Chicken-and-Egg” Problem

Few users

Small anonymity

sets

Page 3: Conscript Your Friends into Larger Anonymity Sets with JavaScript
Page 4: Conscript Your Friends into Larger Anonymity Sets with JavaScript
Page 5: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Emacs rulz!!

Overthrow the regime!!

Start the revolution!!

Adversary could just arrest all three participants

Page 6: Conscript Your Friends into Larger Anonymity Sets with JavaScript
Page 7: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Overthrow the regime!!

Start the revolution!!

Emacs rulz!!

??

Page 8: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Idea

• “Conscript” casual Internet users into an anonymity system using JavaScript– Casual users submit null messages– Savvy users use a browser plug-in to swap

out the null messages with real ones• Compatible with a number of

existing anonymity systems

Page 9: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Outline

• Motivation• Architecture• Attacks and Defenses• Evaluation

Page 10: Conscript Your Friends into Larger Anonymity Sets with JavaScript

000

GET /index.html

<html><script>...

E1(E2(E3(000)))

Using a randomized encryption scheme

Page 11: Conscript Your Friends into Larger Anonymity Sets with JavaScript

GET /index.html

<html><script>...

Plugin

m

E1(E2(E3(m)))

E1(E2(E3(000)))

m

000

Page 12: Conscript Your Friends into Larger Anonymity Sets with JavaScript

The Adversary Sees

Page 13: Conscript Your Friends into Larger Anonymity Sets with JavaScript

The Adversary Sees

Page 14: Conscript Your Friends into Larger Anonymity Sets with JavaScript

The Adversary Sees

Start the revolution

!

00000000

Page 15: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Security Property

IF Casual users’ messages indistinguishable

from savvy users’ messagesTHEN Conscripting increases the size of

the savvy users’ anonymity set

≈Casual Savvy

Page 16: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Compatible Anonymity Systems

1. Monotonic anonymity set size2. Possible to simulate traffic streams3. Easy to identify malformed messages

Yes: Timed mix cascade, verifiable shuffles, remailers (maybe), verifiable DC-nets

No: Tor, batching mix net

Page 17: Conscript Your Friends into Larger Anonymity Sets with JavaScript

The ConScript Script

E.g., for a mix-net• The JavaScript application sends

– RSA encryption routines, – server public keys, and– code to POST ciphertext to mix-server.

• Mix servers usesAccess-Control-Allow-Origin

header

Page 18: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Outline

• Motivation• Architecture• Attacks and Defenses• Evaluation

Page 19: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Web server can serve malicious JavaScript

User can submit incorrect messages

Vulnerabilities of the underlying anonymity

system

Threats

Page 20: Conscript Your Friends into Larger Anonymity Sets with JavaScript

JavaScript Attack

Plugin

Plugin only swaps out msg if scripts

match exactly

Page 21: Conscript Your Friends into Larger Anonymity Sets with JavaScript

More Attacks

• Side-channel attack• Selective DoS attack (“trickle attack”)• Distribution point monitoring

– Who downloads the plug-in?• User-counting attack• […]

Even if adversary can distinguish:Anonymity provided ≥ | Savvy users |

Page 22: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Outline

• Motivation• Architecture• Attacks and Defenses• Evaluation

Page 23: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Proof-of-Concept Evaluation

Device Mix-netVerifiable

DC-netWorkstation 81 156Laptop 133 231iPhone 4 9 009 62 973Milestone – 63 504

Time (ms) to generate a dummy message on different devices. OpenPGP.js for RSA encryption, SJCL for ECC.

Page 24: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Related Work

• AdLeaks [Roth et al., FC‘13]– Similar idea: JS for dummy messages– Works with one particular anonymity system– Vulnerable to active attacks by browsers

• FlashProxy [Fifield et al., PETS‘12]– Use JavaScript to “conscript” browsers into

acting as Tor bridges• Bauer [WPES ‘03]

– Covert channel between mix servers

Page 25: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Conclusion

• Conscripted anonymity is one possible way to address the chicken-and-egg problem in online anonymity

• Ongoing work on in-browser crypto could have benefits for anonymity systems too– e.g., W3C Crypto API standard

Page 26: Conscript Your Friends into Larger Anonymity Sets with JavaScript

Questions?Henry [email protected]

Thanks to David Fifield and David Wolinsky for their comments.

Page 27: Conscript Your Friends into Larger Anonymity Sets with JavaScript