Proac&vely ¡Accountable ¡ Anonymous ¡Messaging ¡in ¡Verdict ¡
Henry ¡Corrigan-‑Gibbs, ¡David ¡Isaac ¡Wolinsky, ¡and ¡Bryan ¡Ford ¡
¡
Department ¡of ¡Computer ¡Science ¡ Yale ¡University ¡ ¡ 22nd ¡USENIX ¡Security ¡Symposium ¡ 14 ¡August ¡2013 ¡ ¡
Proac&vely Accountable Anonymous Messaging in Verdict - - PowerPoint PPT Presentation
Proac&vely Accountable Anonymous Messaging in Verdict Henry Corrigan-Gibbs, David Isaac Wolinsky, and Bryan Ford Department of Computer Science Yale
Henry ¡Corrigan-‑Gibbs, ¡David ¡Isaac ¡Wolinsky, ¡and ¡Bryan ¡Ford ¡
¡
Department ¡of ¡Computer ¡Science ¡ Yale ¡University ¡ ¡ 22nd ¡USENIX ¡Security ¡Symposium ¡ 14 ¡August ¡2013 ¡ ¡
2 ¡
On ¡the ¡eve ¡of ¡an ¡elec-on ¡in ¡country ¡X… ¡ ac&vist ¡learns ¡that ¡the ¡prime ¡ ¡ minister ¡is ¡stashing ¡stolen ¡money ¡ ¡ in ¡a ¡secret ¡bank ¡account. ¡ Acct ¡#35139387 ¡ Acct ¡#09836271 ¡ MUST ¡PUBLISH ¡this ¡info ¡ ¡ before ¡the ¡elec-on ¡
3 ¡
Can ¡I ¡publish ¡these ¡ anonymously? ¡
4 ¡
Can ¡I ¡publish ¡these ¡ anonymously? ¡
Blog ¡ Server ¡
5 ¡
Blog ¡ Server ¡
Dingledine, ¡ Mathewson, ¡ Syverson ¡ [USENIX ¡Sec ¡’04] ¡
6 ¡
time time
First-‑last ¡correla&on ¡aback ¡ (traffic ¡confirma&on) ¡
7 ¡
Dining ¡Cryptographers ¡ networks ¡(DC-‑nets) ¡are ¡ resistant ¡to ¡traffic ¡ analysis ¡abacks ¡
Blog ¡ Server ¡
8 ¡
Blog ¡ Server ¡
Everyone ¡contributes ¡an ¡ ¡ equal-‑length ¡message ¡
Acct ¡ #35139387 ¡
9 ¡
Blog ¡ Server ¡
Acct ¡ #35139387 ¡
10 ¡
Alice ¡ Bob ¡ Chris ¡
1 ¡ 0 ¡ 1 ¡ 1 ¡
David ¡Chaum ¡ “Dining ¡Cryptographers ¡Problem” ¡ ¡ [J. ¡Cryptography ¡‘88] ¡
Implement ¡an ¡ anonymous ¡group ¡ broadcast ¡primi&ve ¡
11 ¡
Alice ¡ Bob ¡ Chris ¡
1 ¡ 0 ¡ 1 ¡
1 ¡
12 ¡
Alice ¡
1 ¡
Bob ¡ Chris ¡
1 ¡ 1 ¡ 1 ¡ 0 ¡ 1 ¡ 1 ¡
13 ¡
Alice ¡
1 ¡
Bob ¡ Chris ¡
1 ¡ 1 ¡
1 ¡
DC-‑nets ¡are ¡ resistant ¡to ¡traffic ¡ analysis ¡abacks ¡ Primarily ¡use ¡fast ¡ symmetric-‑key ¡ crypto ¡opera&ons ¡ (PRNG, ¡XOR) ¡
14 ¡
Alice ¡
1 ¡
Bob ¡ Chris ¡
1 ¡ 1 ¡
Dissent: ¡DC-‑nets ¡made ¡ prac-cal ¡
clients ¡and ¡servers ¡
nodes ¡
set ¡of ¡honest ¡nodes ¡
15 ¡
Blog ¡ Server ¡
DC-‑nets ¡resist ¡traffic ¡ analysis ¡abacks… ¡ BUT ¡
16 ¡
Blog ¡ Server ¡
…if ¡the ¡prime ¡ minister’s ¡henchmen ¡ can ¡infiltrate ¡the ¡group ¡
17 ¡
Alice ¡
1 ¡
Bob ¡ Chris ¡
1 ¡ 1 ¡
1 ¡
18 ¡
Alice ¡
1 ¡
Bob ¡ Chris ¡
1 ¡ 0 ¡
0 ¡
Anonymous ¡ disrup&on ¡ ¡ (DoS) ¡aback ¡
– Aoer ¡a ¡disrup&on ¡occurs, ¡par&cipants ¡run ¡a ¡ shuffle/e-‑vo-ng ¡protocol ¡ – The ¡anonymous ¡sender ¡sends ¡an ¡accusa-on ¡ through ¡the ¡shuffle ¡ – All ¡nodes ¡use ¡the ¡accusa&on ¡to ¡trace ¡(“blame”) ¡ the ¡disruptor ¡
19 ¡
– Aoer ¡a ¡corrup&on ¡occurs, ¡par&cipants ¡run ¡a ¡ shuffle ¡protocol ¡ – The ¡anonymous ¡sender ¡sends ¡an ¡anonymous ¡ accusa-on ¡through ¡the ¡shuffle ¡ – All ¡nodes ¡use ¡the ¡accusa&on ¡to ¡trace ¡the ¡disruptor ¡
20 ¡
10 ¡ 100 ¡ 1000 ¡ 16 ¡ 160 ¡ 1600 ¡ Time ¡to ¡blame ¡ (seconds, ¡log ¡scale) ¡ Par&cipa&ng ¡clients ¡(log ¡scale) ¡
At ¡1024 ¡nodes, ¡blame ¡ takes ¡20 ¡minutes ¡L ¡ ¡
21 ¡
Blog ¡ Server ¡
22 ¡
Blog ¡ Server ¡
23 ¡
Blog ¡ Server ¡
24 ¡
Blog ¡ Server ¡
25 ¡
Blog ¡ Server ¡
Henchmen ¡can ¡block ¡ the ¡ac&vist’s ¡ transmission ¡un&l ¡the ¡ elec&on ¡has ¡passed! ¡
26 ¡
Blog ¡ Server ¡
In ¡a ¡1000-‑node ¡group, ¡ ¡ 18 ¡disruptors ¡can ¡block ¡ communica&on ¡for ¡6 ¡hours ¡
– the ¡traffic-‑analysis-‑resistance ¡of ¡DC-‑nets ¡and ¡ ¡ – the ¡scalability ¡of ¡Dissent ¡ ¡
¡with ¡lower ¡blame ¡cost? ¡
are ¡sending ¡are ¡correctly ¡formed. ¡ ¡à ¡Iden&fy ¡disruptors ¡before ¡they ¡jam ¡the ¡ ¡ ¡ ¡ ¡anonymous ¡communica&on ¡channel ¡
27 ¡
applying ¡zero-‑knowledge ¡proof ¡(ZKP) ¡techniques ¡ to ¡DC-‑nets ¡
expensive, ¡inefficient ¡in ¡communica&on ¡cost, ¡ uses ¡pairings, ¡requires ¡trusted ¡setup, ¡… ¡
28 ¡
evalua&on ¡of ¡verifiable ¡DC-‑nets ¡
give ¡5.6x ¡speedup ¡over ¡Golle-‑Juels ¡approach ¡
– for ¡long ¡messages, ¡ – when ¡there ¡are ¡no ¡ac#ve ¡disruptors, ¡and ¡ – by ¡op&mis&cally ¡using ¡XOR-‑based ¡DC-‑nets ¡ ¡ when ¡possible ¡(138x ¡speedup) ¡
29 ¡
– Design ¡Challenges ¡ – Op&miza&ons ¡
30 ¡
31 ¡
32 ¡
bits ¡in ¡every ¡messaging ¡round ¡
– # ¡of ¡bits ¡sent ¡does ¡not ¡leak ¡sender’s ¡iden&ty ¡
indis-nguishable ¡
– Content ¡does ¡not ¡leak ¡sender’s ¡iden&ty ¡
¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
34 ¡
We ¡assume ¡that ¡ ¡ at ¡least ¡one ¡server ¡ ¡ is ¡honest ¡ CAlice ¡ CBob ¡ CChris ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
35 ¡
CAlice ¡ CBob ¡ CChris ¡ CX ¡ CY ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
36 ¡
m ¡ m ¡ m ¡
37 ¡
an ¡encryp&on ¡of ¡arbitrary ¡message: ¡m ¡
– An ¡encryp&on ¡of ¡the ¡iden&ty ¡element ¡
E(m, ¡σ1, ¡…, ¡σN) ¡= ¡mg ¡
¡
… ¡where ¡the ¡σs ¡are ¡secrets ¡shared ¡between ¡clients ¡ and ¡servers. ¡
σ1+ ¡… ¡+σN ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
39 ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
σay ¡ σax ¡
Clients ¡and ¡servers ¡agree ¡to ¡k-‑bit ¡ shared ¡secrets ¡σ ¡using ¡DH ¡exchange ¡
40 ¡
CAlice ¡= ¡1*gt ¡
σay ¡ σax ¡
σax+σay ¡
¡
¡ Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
41 ¡
gt ¡generates ¡some ¡group ¡ in ¡which ¡DDH ¡is ¡hard ¡
σcx ¡ σcy ¡
m ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
42 ¡
CChris ¡= ¡m*gt ¡
σcx+σcy ¡
¡
¡
σcx ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
CX ¡= ¡gt ¡
¡
¡
43 ¡
σay ¡ σax ¡
44 ¡
an ¡exponent ¡once ¡with ¡(+) ¡sign ¡and ¡once ¡with ¡ (-‑) ¡sign: ¡ CAliceCBobCChrisCXCY ¡= ¡m ¡ ¡ ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
CChris ¡= ¡m*gt ¡
σcx+σcy ¡
¡
¡ Without ¡knowing ¡the ¡secrets ¡σ, ¡an ¡ abacker ¡cannot ¡tell ¡whether ¡Alice ¡or ¡ Chris ¡is ¡the ¡anonymous ¡sender ¡of ¡m ¡ (by ¡DDH ¡assump&on) ¡ ¡
45 ¡
CAlice ¡= ¡1*gt ¡
σax+σay ¡
¡
¡
46 ¡
proofs ¡of ¡knowledge ¡to ¡their ¡ciphertexts ¡
– Use ¡off-‑the-‑shelf ¡ZKP ¡techniques ¡ Camenisch-‑Stadler ¡[ETH ¡Zurich ¡TR-‑260, ¡‘97] ¡ – Servers ¡check ¡proofs ¡before ¡accep&ng ¡client ¡ ciphertexts ¡
¡
47 ¡
pseudonymous ¡“owners” ¡to ¡messaging ¡rounds ¡
– Each ¡client ¡submits ¡a ¡pseudonym ¡public ¡key ¡to ¡shuffle ¡ – Shuffle ¡hides ¡owner-‑to-‑pseudonym ¡mapping ¡
Pseudonym ¡
Alice ¡ Bob ¡ Chris ¡
Owner ¡
“A ¡Verifiable ¡Secret ¡ Shuffle ¡and ¡its ¡ Applica&on ¡to ¡E-‑Vo&ng” ¡ – ¡Neff ¡[CCS ¡‘01] ¡
round ¡owned ¡by ¡pseudonym ¡gd, ¡Bob ¡abaches ¡ a ¡proof ¡that: ¡
49 ¡
CBob ¡is ¡a ¡correct ¡encryp&on ¡of ¡m=1 ¡ OR ¡ ¡ I ¡know ¡the ¡pseudonym ¡secret ¡d ¡
their ¡shared ¡secrets ¡σij ¡ Sax ¡= ¡Commit(σax)= ¡h ¡ ¡ …using ¡some ¡generator ¡h ¡of ¡group ¡G ¡for ¡which ¡ no ¡one ¡knows ¡logg_t(h). ¡
50 ¡
σax ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
51 ¡
Say ¡ Sax ¡ Sbx ¡ Sby ¡ Scx ¡ Scy ¡ Sax ¡ Sbx ¡ Scx ¡ Say ¡ Sby ¡ Scy ¡
round ¡owned ¡by ¡pseudonym ¡gd, ¡Bob ¡abaches ¡ a ¡proof ¡that: ¡
52 ¡
CBob ¡is ¡a ¡correct ¡encryp&on ¡of ¡m=1 ¡ OR ¡ ¡ I ¡know ¡the ¡pseudonym ¡secret ¡d ¡
round ¡owned ¡by ¡pseudonym ¡gd, ¡Bob ¡abaches ¡ a ¡proof ¡that: ¡
σbx+σby ¡ σbx+σby ¡
53 ¡
round ¡owned ¡by ¡pseudonym ¡gd, ¡Bob ¡abaches ¡ a ¡proof ¡that: ¡
σbx+σby ¡ σbx+σby ¡
54 ¡
round ¡owned ¡by ¡pseudonym ¡gd, ¡Bob ¡abaches ¡ a ¡proof ¡that: ¡
σbx+σby ¡ σbx+σby ¡
55 ¡
Proof ¡is ¡just ¡a ¡bit-‑string —can ¡send ¡it ¡over ¡the ¡ network, ¡etc ¡
Alice ¡ Bob ¡ Chris ¡
m ¡
Server ¡X ¡ Server ¡Y ¡
56 ¡
CBob ¡ CChris ¡ CX ¡ CY ¡ π ¡ π ¡ CAlice ¡ π ¡ π ¡ π ¡
m ¡
Alice ¡ Bob ¡ Chris ¡ Server ¡X ¡ Server ¡Y ¡
57 ¡
m ¡ m ¡ m ¡
– Design ¡Challenges ¡ – Op-miza-ons ¡
58 ¡
59 ¡
60 ¡
σax+σay ¡ σax+σay ¡ σax+σay ¡ σax+σay ¡
61 ¡
We ¡use ¡a ¡public ¡hash ¡ func&on ¡to ¡pick ¡these ¡ generators ¡ Golle-‑Juels ¡scheme ¡ required ¡a ¡pairing ¡to ¡ achieve ¡a ¡similar ¡effect ¡
62 ¡
σax+σay ¡ σax+σay ¡ σax+σay ¡ σax+σay ¡
Proof ¡length ¡is ¡linear ¡ in ¡the ¡number ¡of ¡ variables, ¡so ¡we ¡get ¡ ¡ O(1)-‑length ¡proofs ¡
63 ¡
disrup-on ¡occurs ¡
pseudonym ¡secret ¡key ¡
¡
64 ¡
sig ¡ content ¡ m ¡
65 ¡
Verdict: ¡heavy ¡pub ¡key ¡crypto ¡ Dissent/DC-‑nets: ¡AES ¡+ ¡XORs ¡
anonymous ¡sender ¡broadcasts ¡an ¡“accusa&on” ¡ using ¡a ¡verifiable ¡shuffle ¡protocol ¡
– Par&cipants ¡use ¡the ¡accusa&on ¡to ¡trace ¡the ¡disruptor ¡ – Over ¡99% ¡of ¡the ¡“blame” ¡process ¡is ¡spent ¡in ¡shuffle ¡
anonymous ¡accusa&ons ¡à ¡hybrid ¡DC-‑net ¡
66 ¡
communica&on ¡sessions ¡
67 ¡
&me ¡
Dissent ¡
Verdict ¡
communica&on ¡sessions ¡
68 ¡
&me ¡
Dissent ¡
Verdict ¡
communica&on ¡sessions ¡
69 ¡
&me ¡
Dissent ¡
Verdict ¡
communica&on ¡sessions ¡
70 ¡
&me ¡
Dissent ¡
Verdict ¡
communica&on ¡sessions ¡
71 ¡
&me ¡
Dissent ¡
blob ¡
Verdict ¡
communica&on ¡sessions ¡
72 ¡
&me ¡
Dissent ¡
blob ¡
Verdict ¡
communica&on ¡sessions ¡
73 ¡
&me ¡
Dissent ¡
blob ¡
Verdict ¡
communica&on ¡sessions ¡
74 ¡
&me ¡
Dissent ¡
blob ¡
Verdict ¡
communica&on ¡sessions ¡
75 ¡
&me ¡
Dissent ¡
blob ¡
Verdict ¡
Normal ¡case: ¡Dissent ¡XOR-‑based ¡DC-‑net ¡ Under ¡disrup-on: ¡Verdict ¡(faster ¡than ¡shuffle) ¡
– Design ¡Challenges ¡ – Op&miza&ons ¡
76 ¡
– OpenSSL, ¡Crypto++, ¡and ¡Botan ¡libraries ¡ – 256-‑bit ¡NIST ¡ellip&c ¡curve ¡group ¡
– Physical ¡nodes: ¡8 ¡servers, ¡128 ¡clients ¡ – Ran ¡many ¡client ¡processes ¡per ¡machine ¡to ¡ simulate ¡up ¡to ¡1024 ¡clients ¡
77 ¡
78 ¡
ElGamal: ¡ ¡ 2.9x ¡speedup ¡ Hybrid: ¡ ¡ 138x ¡speedup ¡ Pairing-‑based: ¡ ¡ 4 ¡KB/s ¡ Fastest ¡Verdict: ¡ ¡ 5.6x ¡speedup ¡
Tweet-‑length ¡messages ¡
79 ¡
Clients (log scale)
“Lazy” ¡Verdict: ¡ ¡ 2.3x ¡speedup ¡ Pure ¡Verdict: ¡ ¡ 34 ¡seconds ¡ ¡ Hybrid: ¡ ¡ 27x ¡speedup ¡ ¡
80 ¡
Clients (log scale)
Hybrid: ¡ ¡ 24 ¡seconds ¡ ¡ Pure ¡Verdict: ¡ ¡ 6 ¡seconds ¡ ¡ Dissent: ¡ ¡ 1177 ¡seconds ¡ ¡ (19.6 ¡minutes) ¡ ¡
– Design ¡Challenges ¡ – Op&miza&ons ¡
81 ¡
– Handling ¡equivoca&on, ¡dropped ¡messages, ¡etc. ¡
– The ¡paper ¡describes ¡three ¡variants ¡ – Implementa&on ¡details ¡
82 ¡
First ¡prac&cal ¡verifiable ¡DC-‑nets ¡scheme ¡
construc&ons ¡
by ¡two ¡orders ¡of ¡magnitude ¡
brings ¡strong ¡traffic-‑analysis-‑resistant ¡ anonymity ¡closer ¡to ¡prac&cality ¡
83 ¡
Thanks ¡to: ¡
Lee, ¡Michael ¡“Fitz” ¡Nowlan, ¡Ramki ¡Gummadi, ¡and ¡
hRps://dedis.cs.yale.edu/2010/anon/ ¡ Shameless ¡plug: ¡The ¡Dissent ¡project ¡is ¡hiring! ¡
84 ¡
85 ¡