1.08k likes | 1.1k Views
.Riposte: Anonymous messaging system that hides metadata. Focus on anonymous posting and private communication. Introduction to encrypted messaging and challenges. Evaluation and key concepts outlined. Secure and private database schemes presented.
E N D
Riposte: an Anonymous Messaging System that 'Hides the Metadata' Charles River Crypto Day 20 February 2015
With PKE, we can hide the data… ?!? …but does that hide enough? pk (pk, sk) 0VUIC9zZW5zaXRpdmU
Hiding the data is necessary, but not sufficient … [cf. Ed Felten’s testimony before the HouseJudiciary Committee, 2 Oct 2013]
Focus of this talk Goal: post “anonymously” to a public bulletin board Building block for many problems related to “hiding the metadata” E-voting Anonymous surveys Private messaging, etc.
First Attempt: Tor “Onion”encryption [Dingledine,Mathewson,Syverson 2004]
Passive network adversary can correlate flows! Is this attack realistic? [Murdoch andDanezis 2005] [Bauer et al. 2007]
A well-placed adversary need control few links [Murdoch and Zieliński 2007]
Tor is practical at Internet scale … but its security properties are unclear We design an anonymous messaging system that:1) satisfies clear security goals, 2) handles millions of users in an “anonymous Twitter” system.
Outline • Motivation • Definitions and a “Straw man” scheme • Technical challenges • Evaluation • Conclusions
Outline • Motivation • Definitions and a “Straw man” scheme • Technical challenges • Evaluation • Conclusions
Reframe the Problem ≅ Posting anonymously to a bulletin board Writing “privately” to a database
Goal The “Anonymity Set”
Goal DB does not learn who wrote which message 0 To: taxfraud@stanford.edu 0 + Protest will be held tomo… See my cat photos at w… 0
(k,t)-Write-Anonymous DB Scheme qi k = (# of servers), t = (# malicious servers) [Gen query to write m into row l of DB] [Apply query to state of server i] [Combine server states to reveal plaintext DB] s s’
Goals • Correctness • Write-anonymity • Disruption resistance
Goal 1: Correctness Informal: Output DB should be result of applying queries to DB state. If queries are: then result of Reveal() is:
Goal 2: Write-Anonymity Informal: coalition of t malicious servers and any number of malicious clients should not learn who wrote what to the DB. I will present the [simplified] two-server definition with one malicious server.
Adversary Challenger Let n = number of clients total For : Choose on elements of H
Adversary Challenger Let n = number of clients total For : Choose perm on elements of H
Adversary Challenger Let n = number of clients total For : Choose perm on elements of H
Adversary Challenger Let n = number of clients total For : Choose perm on elements of H
Adversary Challenger Let n = number of clients total (k,t)-Write-Private Database Scheme For : Choose perm on elements of H Queries in H updated according to permutation π
Adversary Challenger Let n = number of clients total (k,t)-Write-Private Database Scheme For : Choose perm on elements of H Intuition: The scheme hides “who wrote what” (which query corresponds to which message) Adv should not be able to distinguish between real π and random π* Choose perm on elements of H
Goal 3: Disruption Resistance Intuition: each query should change at most one DB row—prevent disruption Informal: An adversary cannot generate N “valid” queries that affect > N rows [We defer the definition a“valid” query for now…]
Privacy-Preserving DB Schemes ORAM[GO’96] / Group ORAM [GOMT’11] • CPU(s) writing to RAM Private Info Retrieval (PIR)[CGKS’97] • Client reading from DB shared across servers Private Info Storage[OS’97] • Client writing to DB shared across servers This work: Many clients (inclmalicious ones) writing to DB shared across servers Ideally: for all k, tolerate compromise of k-1 servers
SX SY (2,1)-Private“Straw man”Scheme[Chaum ‘88] 0 0 0 0 0 0 0 0 0 0
SX SY 0 0 0 0 0 0 0 0 0 0 “Straw man”Scheme
SX SY 0 0 0 0 0 0 0 0 0 0 Write msgmA into DB row 3 “Straw man”Scheme
SX SY 0 0 0 0 0 0 0 0 0 0 0 0 “Straw man”Scheme mA 0 0
SX SY 0 0 0 0 0 0 0 0 0 0 0 r1 0 r2 “Straw man”Scheme mA r3 0 r4 0 r5
SX SY 0 0 0 0 0 0 0 0 0 0 0 r1 -r1 0 r2 -r2 - “Straw man”Scheme = mA r3 mA -r3 0 r4 -r4 0 r5 -r5
SX SY 0 0 0 0 0 0 0 0 0 0 r1 -r1 r2 -r2 “Straw man”Scheme r3 mA -r3 r4 -r4 r5 -r5
SX SY 0 0 -r1 r1 0 0 -r2 r2 0 0 mA -r3 r3 0 0 -r4 r4 0 0 -r5 r5 “Straw man”Scheme
SX SY r1 -r1 r2 -r2 r3 -r3+mA r4 -r4 r5 -r5 “Straw man”Scheme
SX SY r1 -r1 r2 -r2 r3 -r3+mA r4 -r4 r5 -r5 0 0 “Straw man”Scheme 0 0 mB
SX SY r1 -r1 r2 -r2 r3 -r3+mA r4 -r4 r5 -r5 0 s1 -s1 0 s2 -s2 - “Straw man”Scheme = 0 s3 -s3 0 s4 -s4 mB s5 mB-s5
SX SY r1 -r1 r2 -r2 r3 -r3+mA r4 -r4 r5 -r5 s1 -s1 s2 -s2 “Straw man”Scheme s3 -s3 s4 -s4 s5 mB-s5
SX SY r1 -r1 s1 -s1 r2 -r2 s2 -s2 r3 -r3+mA s3 -s3 r4 -r4 s4 -s4 r5 -r5 s5 mB-s5 “Straw man”Scheme
SX SY r1 + s1 -r1 -s1 r2 + s2 -r2-s2 r3 + s3 -r3 -s3 + mA r4 + s4 -r4-s4 r5 + s5 -r5-s5 - mB “Straw man”Scheme
SX SY r1 + s1 -r1 -s1 r2 + s2 -r2-s2 r3 + s3 -r3 -s3 + mA r4 + s4 -r4-s4 r5 + s5 -r5-s5 - mB “Straw man”Scheme
SX SY r1 + s1 -r1 -s1 r2 + s2 -r2-s2 r3 + s3 -r3 -s3 + mA r4 + s4 -r4-s4 r5 + s5 -r5-s5 - mB “Straw man”Scheme
SX SY r1 + s1 -r1 -s1 r2 + s2 -r2-s2 r3 + s3 -r3 -s3 + mA r4 + s4 -r4-s4 r5 + s5 -r5-s5 - mB “Straw man”Scheme
SX SY r1 + s1 -r1 -s1 0 r2 + s2 -r2-s2 0 + = r3 + s3 -r3 -s3 + mA mA r4 + s4 -r4-s4 0 r5 + s5 -r5-s5 - mB mB At the end of the day, servers combine DBs to reveal plaintext “Straw man”Scheme
First-Attempt Scheme: Properties Correctness — By construction Write-Anonymity — Given output vector, servers can simulate their view of the protocol run Practical Efficiency — Almost no “heavy” computation involved
Extensions • Use k > 2 servers • secure againstk-1 evil servers • Use a large-characteristic field • e.g., email-length rows
Outline • Motivation • Definitions and a “Straw man” scheme • Technical challenges • Evaluation • Conclusions
Limitations of the “Straw man” • O(L) communication cost • Collisions • Malicious clients
Limitations of the “Straw man” • O(L) communication cost • Collisions • Malicious clients