1
DISSENT: Accountable, Anonymous Communication Joan Feigenbaum - - PowerPoint PPT Presentation
DISSENT: Accountable, Anonymous Communication Joan Feigenbaum - - PowerPoint PPT Presentation
DISSENT: Accountable, Anonymous Communication Joan Feigenbaum http://www.cs.yale.edu/homes/jf/ Joint work with Bryan Ford (PI), Henry Corrigan Gibbs, Ramakrishna Gummadi, Aaron
2
ProblemStatement
‣ AgroupofN 2partieswishtocommunicate anonymously,eitherwitheachotherorwith someoneoutsideofthegroup. ‣ Theyhavepersistent,”realworld„ identitiesandare known,bythemselvesandtherecipientsoftheir communications,tobeagroup. ‣ Theywantaprotocolwithfourproperties:
Integrity Anonymity Accountability
- Efficiency
3
Accountability
‣ Groupmemberi exposes groupmemberj ifi obtains proof,verifiablebyathirdparty(notnecessarilyin thegroup),thatj disrupted aprotocolrun. ‣ Theprotocolmaintainsaccountability ifnohonest memberiseverexposed,and,aftereveryrun, either:
- everyhonestmembersuccessfullyreceivesevery
honestmember‚smessage,or
- everyhonestmemberexposesatleastone
disruptivemember.
4
NeedforAnonymity(1)
‣ Communicationinhostileenvironments FromtheBAA:”Thegoaloftheprogramisto developtechnologythatwillenablesafe,resilient communicationsovertheInternet,particularlyin situationsinwhichathirdpartyisattemptingto discovertheidentityorlocationoftheendusersor blockthecommunication.„
5
NeedforAnonymity(2)
‣ Cashtransactions ‣ Twelvestepprograms(pseudonymy) ‣ Lawenforcement”tip„ hotlines ‣ Websitesaboutsensitivetopics,e.g.,sexuality, politics,religion,ordisease ‣ Voting ‣ ...
6 ¡
Need ¡for ¡Accountability ¡
- Authorita:ve, ¡creden:aled ¡group, ¡e.g.: ¡
- ¡Board ¡of ¡Directors ¡of ¡an ¡organiza:on ¡
- ¡Federa:on ¡of ¡journalists ¡(… ¡think ¡Wikileaks) ¡
- ¡Registered ¡voters ¡
- Internal ¡disagreement ¡is ¡inevitable. ¡
- Infiltra:on ¡by ¡the ¡enemy ¡may ¡be ¡feasible. ¡ ¡
Ø Disrup:on ¡is ¡expected ¡and ¡must ¡be ¡combated. ¡ ¡ ¡ ? It’s ¡not ¡clear ¡that ¡“accountability” ¡is ¡the ¡right ¡word ¡ to ¡use ¡here ¡(… ¡and ¡that’s ¡part ¡of ¡a ¡longer ¡story). ¡ ¡
7 ¡
Outline ¡
¡ ¡
- Prior ¡work ¡on ¡anonymous ¡
communica:on ¡ ¡
- Basic ¡DISSENT ¡protocol ¡(ACM ¡CCS ¡2010) ¡
¡
- ¡Results ¡to ¡date ¡
¡
8 ¡
Outline ¡
¡ ¡
- Prior ¡work ¡on ¡anonymous ¡
communica/on ¡ ¡
- Basic ¡DISSENT ¡protocol ¡(ACM ¡CCS ¡2010) ¡
¡
- ¡Results ¡to ¡date ¡
¡ ¡
9
MajorThemesinPriorWork
‣ Generalpurposeanonymouscommunication mechanisms
- MIXnetworksandOnionRouting(OR)
- DiningCryptographersnetworks(DCnets)
‣ Specialpurposemechanisms,e.g.:
- Anonymousvoting
- Anonymousauthentication,e.g.,grouporringsignatures
- Ecash
10
BasicOperationofOnionRouting
‣ Clientpicksafew(e.g.,three)anonymizing relays fromacloudofavailablerelays. ‣ Hethenbuildsandusesanonion ofcryptographic tunnelsthroughtherelaystohiscommunication partner.
Anonymous Client Anonymous Client Anonymizing Relays Public Server
11
BasicOperationofOnionRouting
‣ Clientpicksafew(e.g.,three)anonymizing relays fromacloudofavailablerelays. ‣ Hethenbuildsandusesanonion ofcryptographic tunnelsthroughtherelaystohiscommunication partner.
Anonymous Client Anonymous Client Anonymizing Relays Public Server
12
BasicOperationofOnionRouting
‣ Clientpicksafew(e.g.,three)anonymizing relays fromacloudofavailablerelays. ‣ Hethenbuildsandusesanonion ofcryptographic tunnelsthroughtherelaystohiscommunication partner.
Anonymous Client Anonymous Client Anonymizing Relays Public Server
13
BasicOperationofOnionRouting
‣ Clientpicksafew(e.g.,three)anonymizing relays fromacloudofavailablerelays. ‣ Hethenbuildsandusesanonion ofcryptographic tunnelsthroughtherelaystohiscommunication partner.
Anonymous Client Anonymous Client Anonymizing Relays Public Server
14
BasicOperationofOnionRouting
‣ Clientpicksafew(e.g.,three)anonymizing relays fromacloudofavailablerelays. ‣ Hethenbuildsandusesanonion ofcryptographic tunnelsthroughtherelaystohiscommunication partner.
Anonymous Client Anonymous Client Anonymizing Relays Public Server
15
PropertiesofOnionRouting
‣ Keyadvantages:
- Scalabletolargegroupsofclientsandrelays
- Canbemadeinteractive(e.g.,Tor)
- Widelydeployed(e.g.,Tor)
‣ Keydisadvantages:
- Manyvulnerabilitiestotrafficanalysis
- Noaccountability:Anonymousdisruptorscan
SpamorDoSattackrelaysorinnocentnodes Compromiseotherusers‚ anonymity
[Borisov etal. ‚07]
16
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.1:”Alice+Bob„ sendsa1bitsecrettoCharlie.
Alice Bob Charlie
17
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.1:”Alice+Bob„ sendsa1bitsecrettoCharlie.
Alice Bob Charlie
1
Alice+Bob‚s Shared Random Bit
18
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.1:”Alice+Bob„ sendsa1bitsecrettoCharlie.
Alice Bob Charlie
1
Alice+Bob‚s Shared Random Bit Alice‚s Secret
19
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.1:”Alice+Bob„ sendsa1bitsecrettoCharlie.
Alice Bob Charlie
1
Alice+Bob‚s Shared Random Bit Alice‚s Secret
- 1
1
20
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.1:”Alice+Bob„ sendsa1bitsecrettoCharlie.
Alice Bob Charlie
1
Alice+Bob‚s Shared Random Bit Alice‚s Secret
- 1
1
21
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.2:Homogeneous3memberanonymitygroup
Alice Bob Charlie
22
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.2:Homogeneous3memberanonymitygroup
Alice Bob Charlie
1
Alice+Bob's Random Bit Alice+Charlie's Random Bit Bob+Charlie's Random Bit
1
23
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.2:Homogeneous3memberanonymitygroup
Alice Bob Charlie Alice‚s Secret
1 1
Alice+Bob's Random Bit Alice+Charlie's Random Bit Bob+Charlie's Random Bit
1
24
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.2:Homogeneous3memberanonymitygroup
Alice Bob Charlie Alice‚s Secret
1 1
Alice+Bob's Random Bit Alice+Charlie's Random Bit Bob+Charlie's Random Bit
1
- 1
25
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.2:Homogeneous3memberanonymitygroup
Alice Bob Charlie Alice‚s Secret
1 1
Alice+Bob's Random Bit Alice+Charlie's Random Bit Bob+Charlie's Random Bit
1
- 1
- =1
26
DiningCryptographers(DCnets)
‣ Informationtheoreticgroupanonymity ‣ Ex.2:Homogeneous3memberanonymitygroup
Alice Bob Charlie Alice‚s Secret
1 1
Alice+Bob's Random Bit Alice+Charlie's Random Bit Bob+Charlie's Random Bit
1
- 1
- =1
27
PropertiesofDCnetsSchemes
‣ Keyadvantages:
- Provable,informationtheoreticanonymity
- Resistence totrafficanalysisandcollusion
‣ Keydisadvantages:
- Noteasytoscaleuporimplementefficiently
- Notwidelydeployed
- Noaccountability:Anonymousdisruptorscan
SpamorDoSattackthegroupwithoutdiscovery Forcegroupreformationwithoutbeingeliminated
28 ¡
Outline ¡
¡ ¡
- Prior ¡work ¡on ¡anonymous ¡
communica:on ¡
- Basic ¡DISSENT ¡protocol ¡(ACM ¡CCS ¡2010) ¡
¡
- ¡Results ¡to ¡date ¡
¡ ¡
29
StartingPoint:Verifiable,AnonymousShuffling [Brickell andShmatikov ‚06] ‣ Npartieswithequallengthmessages m1, ‧,mN sendm(1), ‧,m(N)toadata collector. ‣ Theprotocolprovablyprovides
- Integrity:{m1 , ‧,mN}={m(1), ‧,m(N)}
- Anonymity: israndomandnotknownbyanyone.
- Resistancetotrafficanalysisandcollusion
‣ DISSENTaddsaccountabilityandtheabilityto handlevariablelengthmessagesefficiently.
30
BasicDISSENTProtocol:Overview
‣ Assumptions:
— Equallengthmessages — Eachgroupmemberhasasignaturekeypair;allmessagesaresigned.
‣ Phase1:Setup
— Eachmemberchoosestwoencryptionkeypairsforthisrun.
‣ Phase2:Onionencryption
— Eachmemberencryptshismessagewitheveryone‚s encryptionkeys.
‣ Phase3:Anonymization
— Eachmemberappliesarandompermutationtothesetofmessages.
‣ Phase4:Validation
— Eachmemberi checksthat(uncorrupted)mi isinthepermutedset.
‣ Phase5:DecryptionorBlame
— Ifallphase4checkssucceed,decryptallofthemessages. — Else,honestmembersrunaprotocolthatallowseachofthemto exposeatleastonedisruptivemember.
31
Phase1:Setup
‣ Recallthat
- Membersknoweachothers'publicverificationkeys.
- Memberssign(andverifysignatureson)all messages.
‣ Eachgroupmemberichooses:
- Secretmessagemi (andpadsitifnecessary)
- Outerencryptionkeypair(Oi,O'i)
- Innerencryptionkeypair(Ii,I'i)
‣ Eachgroupmemberi broadcastspublicencryption keysOi,Ii
32
Phase2:OnionEncryption
Eachgroupmemberi: ‣ Encryptsmi withinnerkeysIN,...,I1 tocreatem'i ‣ Encryptsm'i withouterkeysON,...,O1 tocreatem''i
33
Phase2:OnionEncryption
Eachgroupmemberi: ‣ Encryptsmi withinnerkeysIN,...,I1 tocreatem'i ‣ Encryptsm'i withouterkeysON,...,O1 tocreatem''i ExamplewithN=3:
34
Phase2:OnionEncryption
Eachgroupmemberi: ‣ Encryptsmi withinnerkeysIN,...,I1 tocreatem'i ‣ Encryptsm'i withouterkeysON,...,O1 tocreatem''i ExamplewithN=3:
m1 m2 m3
35
Phase2:OnionEncryption
Eachgroupmemberi: ‣ Encryptsmi withinnerkeysIN,...,I1 tocreatem'i ‣ Encryptsm'i withouterkeysON,...,O1 tocreatem''i ExamplewithN=3:
m1 m2 m3 m'1 = { { { }I3 }I2 }I1 m'2 = { { { }I3 }I2 }I1 m'3 = { { { }I3 }I2 }I1
36
Phase2:OnionEncryption
Eachgroupmemberi: ‣ Encryptsmi withinnerkeysIN,...,I1 tocreatem'i ‣ Encryptsm'i withouterkeysON,...,O1 tocreatem''i ExamplewithN=3:
m1 m2 m3 m'1 = { { { }I3 }I2 }I1 m'2 = { { { }I3 }I2 }I1 m'3 = { { { }I3 }I2 }I1 m''1 = { { { }O3 }O2 }O1 m''2 = { { { }O3 }O2 }O1 m''3 = { { { }O3 }O2 }O1
37
Phase3:Anonymization (1)
‣ Member1collects(m''I, ‧,m''N). ‣ Fori 1toN,memberi
- Decryptstheith layerofouterkeyencryption
- Randomlypermutestheresultinglist(ofpartially
decryptedmessages)and(temporarily)savestherandom permutation
- Forwardsthepermutedlisttomemberi+1(if i<N)
‣ MemberNbroadcaststhepermutedm'i list.
38
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1
39
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Input to member 1: encrypted messages m''i
40
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Node 1: Decrypt, Permute Input to member 1: encrypted messages m''i
41
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Node 1: Decrypt, Permute
m3 {{{ }}} {{ }} m1 {{{ }}} {{ }} m2 {{{ }}} {{ }}
Input to member 1: encrypted messages m''i
42
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Node 1: Decrypt, Permute Node 2: Decrypt, Permute
m3 {{{ }}} {{ }} m1 {{{ }}} {{ }} m2 {{{ }}} {{ }}
Input to member 1: encrypted messages m''i
43
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Node 1: Decrypt, Permute Node 2: Decrypt, Permute
m3 {{{ }}} {{ }} m1 {{{ }}} {{ }} m2 {{{ }}} {{ }}
Input to member 1: encrypted messages m''i
m1 {{{ }}} { } m3 {{{ }}} { } m2 {{{ }}} { }
44
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Node 1: Decrypt, Permute Node 2: Decrypt, Permute Node 3: Decrypt, Permute
m3 {{{ }}} {{ }} m1 {{{ }}} {{ }} m2 {{{ }}} {{ }}
Input to member 1: encrypted messages m''i
m1 {{{ }}} { } m3 {{{ }}} { } m2 {{{ }}} { }
45
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Node 1: Decrypt, Permute
m2 {{{ }}} m1 {{{ }}} m3 {{{ }}}
Node 2: Decrypt, Permute Node 3: Decrypt, Permute
m3 {{{ }}} {{ }} m1 {{{ }}} {{ }} m2 {{{ }}} {{ }}
Input to member 1: encrypted messages m''i
m1 {{{ }}} { } m3 {{{ }}} { } m2 {{{ }}} { }
46
Phase3:Anonymization (2)
mi m'i = { { { }I3 }I2 }I1 m''i = { { { }O3 }O2 }O1 m1 {{{ }}} {{{ }}} m2 {{{ }}} {{{ }}} m3 {{{ }}} {{{ }}}
Node 1: Decrypt, Permute
m2 {{{ }}} m1 {{{ }}} m3 {{{ }}}
Node 2: Decrypt, Permute Node 3: Decrypt, Permute
m3 {{{ }}} {{ }} m1 {{{ }}} {{ }} m2 {{{ }}} {{ }} m1 {{{ }}} { } m3 {{{ }}} { } m2 {{{ }}} { }
Output from member n: partly decrypted messages m'i in random, secret order
47
Phase4:Validation
Aftertheanonymization phase,nomember knowsthefinalpermutation,butevery memberi shouldseehisownm'i inthelist! Eachmemberi looksform'iinthepermutedlist.
‣ Present memberi broadcasts”GO„. ‣ Absent memberi broadcasts”NOGO„ and destroyshisinnerdecryptionkeyI'i .
48
Phase5:DecryptionorBlame
‣ Eachmemberi collectsallGO/NOGOmessages. ‣ GOmessagesfromall nodes(includingself):
- Eachmemberi broadcastshisowninnerdecryptionkeyI'i .
- AllmembersusekeysI'1,...,I'N todecryptallthem'j,
revealingallthecleartext messagesmj.
‣ NOGOmessagefromany node:
- Eachmemberi broadcaststheproofthathedecryptedand
permutedproperlyinPhase3.
- Allmembersusetheseproofstoexposedisruptor(s).
49
HowDISSENTProvidesAccountability
‣ AnyNOGOmessageobligesall membersto ”provetheirinnocence,„ i.e.,thatthey:
- correctlyencryptedmessagesinPhase2
- correctlydecrypted/permutedinPhase3
- correctlyvalidatedthefinallistinPhase4
‣ Thisprocessrevealsthe”secret„ permutationbut leavesthepermutedcleartexts mj undecipherable: Theyareprotectedbyallhonestnodes'inner decryptionkeys,whichhavenotbeenrevealed.
50
HandlingVariableLengthMessages
‣ Anonymousshuffleprotocolspadallmessagestoa commonlengthinordertoresisttrafficanalysis. ‣ Whatifthemessageloadisunbalanced,e.g.:
- Memberi wantstosendanL=646MBvideo.
- Membersj i havenothingtosendinthisrunofthe
protocol.
‣ ThegroupmustshufflethevideoandN1 646MB paddedcleartexts,resultinginO(NL)bitspernode andO(N2L)bitstotal.
51
Basic”BulkSend„ variant
‣ Usethe(slow)accountableshuffleprotocolto exchangerandomlypermutedmetadata. ‣ Interprettherandompermutationasa”schedule„ forexchangeofdata,whichisdoneusingDCnets. ‣ AccountabilityoftheDISSENTshuffleallowseach groupmembertoverifythatallmembers transmittedthecorrectdataintheproperDCnets ”timeslot.„ ‣ Costofthecaseinwhichjustonememberwantsto sendL=646MBdropstoO(L)bitspernodeandO(NL) bitstotal.
52
BasicBulkSend(1)
Shufflemetadata describingthemessagesthat thenodeswanttosend.
L1 { — }1 {S12}2 {S13}3 L2 {S21}1 { — }2 {S23}3 L3 {S31}1 {S32}2 { — }3
Message Length PRNG Seeds
53
BasicBulkSend(1)
Shufflemetadata describingthemessagesthat thenodeswanttosend.
L1 { — }1 {S12}2 {S13}3 L2 {S21}1 { — }2 {S23}3 L3 {S31}1 {S32}2 { — }3
Message Length PRNG Seeds
DISSENT Shuffle
L1 { — }1 {S12}2 {S13}3 L2 {S21}1 { — }2 {S23}3 L3 {S31}1 {S32}2 { — }3
Permuted Message Descriptors
54
BasicBulkSend(2)
Theshuffledmessagedescriptorsforma schedule foraDCnetstransmission.
L1 { — }1 {S12}2 {S13}3 L2 {S21}1 { — }2 {S23}3 L3 {S31}1 {S32}2 { — }3
Permuted Message Descriptors
55
BasicBulkSend(2)
Theshuffledmessagedescriptorsforma schedule foraDCnetstransmission.
L1 { — }1 {S12}2 {S13}3 L2 {S21}1 { — }2 {S23}3 L3 {S31}1 {S32}2 { — }3
Permuted Message Descriptors Node 1 Node 2 Node 3
R(S31) R(S32) M3 R(S31) ... M1 ... R(S12) R(S13) R(S21) M2 R(S21) ... R(S23)
L3 L1 L2
56 ¡
Outline ¡
¡ ¡
- Prior ¡work ¡on ¡anonymous ¡
communica:on ¡ ¡ ¡
- Basic ¡DISSENT ¡protocol ¡(ACM ¡CCS ¡2010) ¡
- ¡Results ¡to ¡date ¡
¡ ¡
57 ¡
Results ¡to ¡Date ¡(1) ¡
- Reduced ¡latency ¡ ¡ ¡
- Mul6ple ¡bulk ¡sends ¡per ¡shuffle ¡
- Increased ¡scalability ¡ ¡(OSDI ¡2012) ¡
- Groups ¡with ¡5000+ ¡members ¡
- N ¡clients, ¡M ¡servers ¡
- Secure ¡against ¡both ¡ac6ve ¡disrup6on ¡by ¡up ¡to ¡N-‑2 ¡
clients ¡and ¡liveness ¡aJacks ¡by ¡a ¡(tunable) ¡constant ¡ frac6on ¡of ¡clients. ¡ ¡This ¡enables ¡``churn ¡tolerance.’’ ¡
- Secure ¡against ¡ac6ve ¡disrup6on ¡by ¡up ¡to ¡M-‑1 ¡servers ¡
(but ¡not ¡against ¡liveness ¡aJacks ¡by ¡servers). ¡
¡
¡
58 ¡
Results ¡to ¡Date ¡(2) ¡
- Applica6ons ¡ ¡ ¡
- “Anonymity ¡scavenging” ¡for ¡wide-‑area ¡microblogging ¡
- WiNon: ¡DISSENT-‑based ¡Web ¡Browsing ¡
ü “Strong, ¡small” ¡anonymity ¡sets ¡instead ¡of ¡the ¡“large, ¡
weak” ¡sets ¡offered ¡by ¡Tor-‑based ¡browsing ¡tools ¡
- WiNon ¡+ ¡Tor ¡
ü Diverse, ¡wide-‑area ¡anonymity ¡against ¡weak ¡aJacker ¡ ü Local-‑area ¡anon./deniability ¡if ¡aJacker ¡can ¡defeat ¡Tor ¡
- Formal ¡proofs ¡that ¡basic ¡DISSENT ¡sa6sfies ¡
- Integrity ¡
- Anonymity ¡
- Accountability ¡
¡
Ongoing ¡and ¡Future ¡Work ¡
- ProtecBon ¡against ¡``intersecBon ¡aFacks’’ ¡
- ProtecBon ¡against ¡liveness ¡aFacks ¡on ¡servers ¡
- Formal ¡security ¡proofs ¡for ¡enhanced ¡DISSENT ¡
protocols ¡
- IntegraBon ¡with ¡other ¡anonymity ¡protocols ¡
59