Dissent: Accountable Anonymous Group Messaging Henry - - PowerPoint PPT Presentation

dissent accountable anonymous group messaging
SMART_READER_LITE
LIVE PREVIEW

Dissent: Accountable Anonymous Group Messaging Henry - - PowerPoint PPT Presentation

Dissent: Accountable Anonymous Group Messaging Henry Corrigan-Gibbs and Bryan Ford Department of Computer Science Yale University 17 th ACM Conference on


slide-1
SLIDE 1

Dissent: ¡Accountable ¡Anonymous ¡ Group ¡Messaging ¡

Henry ¡Corrigan-­‑Gibbs ¡and ¡Bryan ¡Ford ¡

Department ¡of ¡Computer ¡Science ¡ Yale ¡University ¡ 17th ¡ACM ¡Conference ¡on ¡ Computer ¡and ¡CommunicaEons ¡Security ¡ October ¡6, ¡2010 ¡

slide-2
SLIDE 2

“Wikileaks” ¡Problem ¡

Alice ¡ Chris ¡ Bob ¡ Eve ¡

Image ¡courtesy ¡NASA ¡Johnson ¡Space ¡Center ¡

slide-3
SLIDE 3

Alice ¡ Chris ¡ Bob ¡ Eve ¡

slide-4
SLIDE 4

Alice ¡ Chris ¡ Bob ¡ Eve ¡

Has ¡a ¡646 ¡MB ¡ classified ¡military ¡ video ¡from ¡Iraq ¡ ¡

slide-5
SLIDE 5

Alice ¡ Chris ¡ Bob ¡ Eve ¡

Is ¡this ¡video ¡ authenEc? ¡

slide-6
SLIDE 6

Alice ¡ Chris ¡ Bob ¡ Eve ¡

Wants ¡to: ¡

  • 1. Anonymously ¡publish ¡

video ¡to ¡the ¡group ¡

  • 2. Solicit ¡anonymous ¡

comments ¡

slide-7
SLIDE 7

Alice ¡ Chris ¡ Bob ¡ Eve ¡

slide-8
SLIDE 8

Alice ¡ Chris ¡ Bob ¡ Eve ¡

Wants ¡to: ¡

  • 1. Break ¡anonymity ¡
  • 2. Stop ¡iniEal ¡video ¡

publicaEon ¡

  • 3. Alter ¡Alice ¡and ¡Bob’s ¡

reviews ¡

  • 4. Submit ¡many ¡bad ¡

reviews ¡

slide-9
SLIDE 9

The ¡QuesEon ¡

How ¡can ¡group ¡members ¡communicate ¡ efficiently ¡and ¡anonymously ¡when: ¡

  • 1. all ¡network ¡communicaEon ¡is ¡public, ¡
  • 2. Eve ¡wants ¡to ¡block ¡communicaEon, ¡and ¡
  • 3. group ¡members’ ¡messages ¡are ¡of ¡vastly ¡

different ¡lengths? ¡

slide-10
SLIDE 10

LimitaEons ¡of ¡ExisEng ¡Schemes ¡

Method ¡ Weakness ¡

Mix ¡Nets, ¡Tor ¡ Traffic ¡analysis ¡abacks ¡ Group ¡and ¡Ring ¡ Signatures ¡ Traffic ¡analysis ¡abacks ¡ VoEng ¡Protocols ¡ Short, ¡fixed-­‑length ¡ messages ¡ DC ¡Nets ¡ Anonymous ¡DoS ¡abacks ¡ Brickell-­‑ShmaEkov ¡ Shuffle ¡ Anonymous ¡DoS ¡abacks ¡ and ¡fixed ¡message ¡length ¡

slide-11
SLIDE 11

Outline ¡

  • IntroducEon ¡to ¡Dissent ¡
  • How ¡Dissent ¡works ¡

– Overall ¡protocol: ¡Variable-­‑length ¡shuffle ¡ – Key ¡component: ¡Fixed-­‑length ¡shuffle ¡

  • Prototype ¡and ¡experimental ¡results ¡
  • Goals ¡for ¡future ¡work ¡
slide-12
SLIDE 12

Outline ¡

  • Introduc1on ¡to ¡Dissent ¡
  • How ¡Dissent ¡works ¡

– Overall ¡protocol: ¡Variable-­‑length ¡shuffle ¡ – Key ¡component: ¡Fixed-­‑length ¡shuffle ¡

  • Prototype ¡and ¡experimental ¡results ¡
  • Goals ¡for ¡future ¡work ¡
slide-13
SLIDE 13

Dissent ¡

  • Dissent ¡is ¡a ¡protocol ¡for ¡latency-­‑tolerant ¡sender-­‑

anonymous ¡broadcast ¡within ¡a ¡pre-­‑defined ¡ group ¡of ¡nodes: ¡

  • 1. Each ¡group ¡member ¡secretly ¡submits ¡one ¡

message ¡per ¡protocol ¡round ¡

  • 2. Group ¡members ¡run ¡the ¡protocol ¡
  • 3. The ¡protocol ¡reveals ¡to ¡all ¡members ¡a ¡

permutaEon ¡of ¡the ¡message ¡set ¡

  • 4. No ¡group ¡member ¡knows ¡the ¡permutaEon ¡
  • We ¡call ¡this ¡a ¡shuffle ¡protocol ¡
slide-14
SLIDE 14

Dissent ¡guarantees… ¡

  • Integrity: ¡Messages ¡are ¡received ¡unmodified ¡
  • Anonymity: ¡To ¡idenEfy ¡the ¡sender ¡of ¡a ¡

message, ¡all ¡other ¡members ¡must ¡collude ¡

  • Accountability: ¡Members ¡interfering ¡with ¡

message ¡transmission ¡will ¡eventually ¡be ¡ idenEfied ¡

N.B.: ¡These ¡defini3ons ¡are ¡very ¡informal. ¡Please ¡refer ¡to ¡our ¡ paper ¡for ¡precise ¡defini3ons. ¡

slide-15
SLIDE 15

Our ¡ContribuEons ¡

Dissent ¡builds ¡upon ¡the ¡Brickell-­‑ShmaEkov ¡ anonymous ¡data ¡collecEon ¡protocol ¡(KDD ¡2006), ¡ adding: ¡

  • 1. Accountability: ¡Alice, ¡Bob, ¡and ¡Chris ¡can ¡

idenEfy ¡Eve ¡if ¡she ¡tries ¡to ¡alter ¡messages ¡or ¡ block ¡protocol ¡progress ¡

  • 2. Communica1on ¡efficiency ¡with ¡variable-­‑

length ¡messages: ¡Group ¡members ¡do ¡not ¡ have ¡to ¡pad ¡their ¡messages ¡to ¡a ¡fixed ¡length ¡

slide-16
SLIDE 16

Outline ¡

  • IntroducEon ¡to ¡Dissent ¡
  • How ¡Dissent ¡works ¡

– Overall ¡protocol: ¡Variable-­‑length ¡shuffle ¡ – Key ¡component: ¡Fixed-­‑length ¡shuffle ¡

  • Prototype ¡and ¡experimental ¡results ¡
  • Goals ¡for ¡future ¡work ¡
slide-17
SLIDE 17

Conceptual ¡DescripEon ¡ ¡

  • Follows ¡one ¡group ¡member ¡(Chris) ¡and ¡his ¡646 ¡

MB ¡video ¡

– Every ¡other ¡group ¡member ¡follows ¡the ¡same ¡steps ¡as ¡ Chris ¡in ¡parallel ¡

  • We ¡assume: ¡

– Every ¡member ¡has ¡a ¡signature ¡verificaEon ¡key ¡for ¡ every ¡other ¡group ¡member ¡ – Existence ¡of ¡a ¡wrapper ¡protocol ¡handling ¡group ¡ membership, ¡liveness, ¡protocol ¡iniEaEon, ¡etc. ¡ (See ¡paper ¡for ¡details ¡on ¡the ¡wrapper.) ¡

slide-18
SLIDE 18

Issue ¡1: ¡Traffic ¡Analysis ¡

  • How ¡can ¡Chris ¡broadcast ¡his ¡646 ¡MB ¡video ¡

anonymously ¡if ¡abackers ¡are ¡listening ¡in? ¡

  • Neither ¡message ¡structure ¡nor ¡length ¡should ¡

idenEfy ¡Chris ¡as ¡the ¡true ¡sender ¡

  • Therefore: ¡

– All ¡other ¡group ¡members ¡must ¡also ¡broadcast ¡a ¡ 646 ¡MB ¡message ¡ – Messages ¡should ¡look ¡like ¡random ¡strings ¡

slide-19
SLIDE 19

Issue ¡1: ¡Traffic ¡Analysis ¡

zxmnco ak929j9 aksjdq9 wldk0w ¡ alkj38f8 2hlkd02 9sjlkjd0 981lkjlkj ¡ vmdnv mdnduu z093ufoi lkjksdlka ¡ 0988j4S skjdcka8 3masjkjs dlkqwkd ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Publish ¡

slide-20
SLIDE 20

Issue ¡2: ¡Recovery ¡

  • How ¡can ¡members ¡recover ¡Chris’ ¡video ¡from ¡

the ¡646 ¡MB ¡random-­‑looking ¡strings? ¡

  • Assume ¡Alice, ¡Bob, ¡and ¡Eve ¡send ¡pseudo-­‑

random ¡strings ¡known ¡to ¡Chris ¡

  • Then: ¡

– Chris ¡sends ¡the ¡XOR ¡of ¡his ¡video ¡with ¡Alice, ¡Bob, ¡ and ¡Eve’s ¡pseudo-­‑random ¡strings ¡ – i.e., ¡three ¡serial ¡one-­‑Eme ¡pad ¡encrypEons ¡

  • Reminiscent ¡of ¡Chaum’s ¡DC ¡net ¡ ¡
slide-21
SLIDE 21

Issue ¡2: ¡Recovery ¡

zxmnco ak929j9 aksjdq9 wldk0w ¡ alkj38f8 2hlkd02 9sjlkjd0 981lkjlkj ¡ vmdnv mdnduu z093ufoi lkjksdlka ¡ 0988j4S skjdcka8 3masjkjs dlkqwkd ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

⊕ ⊕ ⊕

The ¡ 646MB ¡ Video ¡

slide-22
SLIDE 22

Issue ¡3: ¡Assignment ¡

  • How ¡can ¡Chris ¡efficiently ¡assign ¡646 ¡MB ¡strings ¡

to ¡Alice, ¡Bob, ¡and ¡Eve? ¡

  • Chris ¡anonymously ¡broadcasts ¡(somehow) ¡a ¡

table ¡of ¡assignments ¡along ¡with ¡the ¡length ¡of ¡ his ¡message ¡

  • Each ¡assignment ¡contains: ¡

– A ¡PRF ¡seed ¡encrypted ¡for ¡each ¡member ¡ – A ¡cleartext ¡hash ¡of ¡the ¡string ¡assigned ¡to ¡each ¡ member ¡

slide-23
SLIDE 23

Issue ¡3: ¡Assignment ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

slide-24
SLIDE 24

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Issue ¡3: ¡Assignment ¡

Length: ¡646 ¡MB ¡

  • Enc. ¡Seed ¡

Hash ¡ A ¡ {dkad}A ¡ 092f ¡ B ¡ {f23d}B ¡ f9ja ¡ C ¡ {d3g5}C ¡ jh2m ¡ E ¡ {afef}E ¡ vnsk ¡

slide-25
SLIDE 25

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Publish ¡

Issue ¡3: ¡Assignment ¡

Length: ¡0 ¡bytes ¡

  • Enc. ¡Seed ¡

Hash ¡ A ¡ {dfwv}A ¡ td82 ¡ B ¡ {ert3}B ¡ 3flk ¡ C ¡ {09fg}C ¡ df3f ¡ E ¡ {fg4h}E ¡ vce3 ¡

slide-26
SLIDE 26

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Bob ¡ Chris ¡ Eve ¡

Issue ¡3: ¡Assignment ¡

Alice ¡

Length: ¡0 ¡bytes ¡

  • Enc. ¡Seed ¡

Hash ¡ A ¡ {v9ek}A ¡ 2d2t ¡ B ¡ {2fva}B ¡ nve0 ¡ C ¡ {aof}C ¡ 3ren ¡ E ¡ {d2g5}E ¡ sdvz ¡

slide-27
SLIDE 27

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Alice ¡ Bob ¡

Issue ¡3: ¡Assignment ¡

Length: ¡0 ¡bytes ¡

  • Enc. ¡Seed ¡

Hash ¡ A ¡ {dsfr}A ¡ d1fs ¡ B ¡ {fv24}B ¡ hvae ¡ C ¡ {sdo}C ¡ 0jd2 ¡ E ¡ {s5eg}E ¡ fewh ¡

Chris ¡ Eve ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

slide-28
SLIDE 28

Issue ¡3: ¡Assignment ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

slide-29
SLIDE 29

Issue ¡3: ¡Assignment ¡

Publish ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

slide-30
SLIDE 30

Issue ¡4: ¡Anonymity ¡

  • How ¡can ¡Chris ¡transmit ¡his ¡assignment ¡table ¡

anonymously? ¡

  • The ¡assignment ¡contains ¡the ¡length ¡of ¡Chris’ ¡

message, ¡so ¡it ¡must ¡not ¡be ¡traceable ¡to ¡him ¡

  • Dissent ¡uses ¡a ¡modificaEon ¡of ¡the ¡Brickell-­‑

Shamikov ¡data ¡collecEon ¡protocol ¡to ¡shuffle ¡the ¡ fixed-­‑length ¡assignment ¡tables ¡

  • Final ¡ordering ¡of ¡tables ¡determines ¡ordering ¡in ¡

which ¡members ¡broadcast ¡their ¡pseudo-­‑random ¡ strings ¡

slide-31
SLIDE 31

Issue ¡4: ¡Anonymity ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Fixed-­‑length ¡ Shuffle ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dfwv}A ¡ td82 ¡

B ¡

{ert3}B ¡ 3flk ¡

C ¡

{09fg}C ¡ df3f ¡

E ¡

{fg4h}E ¡ vce3 ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{v9ek}A ¡ 2d2t ¡

B ¡

{2fva}B ¡ nve0 ¡

C ¡

{aof}C ¡ 3ren ¡

E ¡

{d2g5}E ¡ sdvz ¡

Length: ¡ ¡646 ¡MB ¡ Seed ¡ Hash ¡ A ¡

{dkad}A ¡ 092f ¡

B ¡

{f23d}B ¡ f9ja ¡

C ¡

{d3g5}C ¡ jh2m ¡

E ¡

{afef}E ¡ vnsk ¡

Length: ¡ ¡0 ¡bytes ¡ Seed ¡ Hash ¡ A ¡

{dsfr}A ¡ d1fs ¡

B ¡

{fv24}B ¡ hvae ¡

C ¡

{sdo}C ¡ 0jd2 ¡

E ¡

{s5eg}E ¡ fewh ¡

slide-32
SLIDE 32

Pusng ¡it ¡together… ¡

  • 1. Each ¡group ¡member ¡generates ¡a ¡fixed-­‑length ¡

assignment ¡table ¡

  • 2. Members ¡use ¡fixed-­‑length ¡shuffle ¡to ¡

anonymize ¡these ¡assignment ¡tables ¡

  • 3. Members ¡(except ¡sender) ¡use ¡assigned ¡PRF ¡

seeds ¡to ¡generate ¡a ¡psuedo-­‑random ¡string ¡ for ¡each ¡anonymous ¡message ¡

  • 4. Strings ¡corresponding ¡to ¡each ¡message ¡XOR ¡

to ¡the ¡sender’s ¡message ¡

slide-33
SLIDE 33

Variable-­‑length ¡is ¡beber ¡

33 ¡

Variable-­‑length ¡ Fixed-­‑length ¡ A ¡ B ¡ C ¡ E ¡

Message ¡ Padding ¡ Padding ¡ Padding ¡

A ¡ B ¡ C ¡ E ¡

Message ¡ Assignment ¡ Tables ¡

NLmax ¡bits ¡ Ltotal ¡+ ¡kN ¡bits ¡

slide-34
SLIDE 34

Outline ¡

  • IntroducEon ¡to ¡Dissent ¡
  • How ¡Dissent ¡works ¡

– Overall ¡protocol: ¡Variable-­‑length ¡shuffle ¡ – Key ¡component: ¡Fixed-­‑length ¡shuffle ¡

  • Prototype ¡and ¡experimental ¡results ¡
  • Goals ¡for ¡future ¡work ¡
slide-35
SLIDE 35

Fixed-­‑Length ¡Shuffle ¡

  • A ¡verifiable ¡secret ¡shuffle ¡
  • Adds ¡accountability ¡to ¡Brickell-­‑ShmaEkov ¡

shuffle ¡

  • Two ¡possible ¡outcomes: ¡
  • 1. Shuffle ¡succeeds, ¡messages ¡delivered, ¡secret ¡

permutaEon ¡unrecoverable ¡

  • 2. Shuffle ¡fails, ¡messages ¡unrecoverable, ¡at ¡least ¡
  • ne ¡abacker ¡exposed ¡
slide-36
SLIDE 36

Issue ¡1: ¡Anonymity ¡

  • How ¡do ¡members ¡anonymize ¡their ¡messages? ¡
  • We ¡use ¡onion ¡rouEng ¡/ ¡mix ¡network ¡to ¡

provide ¡anonymity: ¡

  • 1. Members ¡serially ¡encrypt ¡their ¡message ¡with ¡the ¡

public ¡key ¡of ¡each ¡group ¡member ¡in ¡a ¡pre-­‑ determined ¡order ¡

  • 2. Each ¡group ¡member ¡sequenEally ¡decrypts, ¡

permutes, ¡and ¡forwards ¡the ¡message ¡set ¡

slide-37
SLIDE 37

Message ¡set ¡under ¡

  • nion ¡encryp1on ¡

{{{{A}E}C}B}A ¡ {{{{B}E}C}B}A ¡ {{{{C}E}C}B}A ¡ {{{{E}E}C}B}A ¡

slide-38
SLIDE 38

{{{{A}}}} ¡ {{{{B}}}} ¡ {{{{C}}}} ¡ {{{{E}}}} ¡

Message ¡set ¡under ¡

  • nion ¡encryp1on ¡

{{{{A}E}C}B}A ¡ {{{{B}E}C}B}A ¡ {{{{C}E}C}B}A ¡ {{{{E}E}C}B}A ¡

slide-39
SLIDE 39

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡

{{{{A}}}} ¡ {{{{B}}}} ¡ {{{{C}}}} ¡ {{{{E}}}} ¡ {{{E}}} ¡ {{{B}}} ¡ {{{A}}} ¡ {{{C}}} ¡ {{C}} ¡ {{A}} ¡ {{E}} ¡ {{B}} ¡ {E} ¡ {C} ¡ {A} ¡ {B} ¡ B ¡ A ¡ E ¡ C ¡

Permuted ¡plaintext ¡ message ¡set ¡ Message ¡set ¡under ¡

  • nion ¡encryp1on ¡
slide-40
SLIDE 40

Issue ¡2: ¡Integrity ¡

  • How ¡do ¡members ¡ensure ¡that ¡their ¡message ¡is ¡

in ¡the ¡output ¡message ¡set? ¡

  • Group ¡members ¡submit ¡a ¡“Go” ¡or ¡“No-­‑go” ¡

message ¡awer ¡seeing ¡the ¡permuted ¡message ¡ set ¡to ¡confirm ¡that ¡their ¡message ¡is ¡in ¡the ¡set ¡

  • Members ¡use ¡a ¡second ¡layer ¡of ¡onion ¡

encryp1on ¡so ¡that ¡Go/No-­‑Go ¡messages ¡don’t ¡ break ¡anonymity ¡

– One-­‑Eme-­‑use ¡secondary ¡keypair ¡

slide-41
SLIDE 41

Message ¡set ¡under ¡ primary ¡and ¡secondary ¡

  • nion ¡encryp1on ¡

{{{{ ¡α ¡= ¡[[[[A]E]C]B]A ¡ ¡}E}C}B}A ¡ {{{{ ¡β ¡= ¡[[[[B]E]C]B]A ¡ ¡}E}C}B}A ¡ {{{{ ¡γ ¡= ¡[[[[C]E]C]B]A ¡ ¡}E}C}B}A ¡ {{{{ ¡ε ¡= ¡[[[[E]E]C]B]A ¡ ¡}E}C}B}A ¡

slide-42
SLIDE 42

Message ¡set ¡under ¡ primary ¡and ¡secondary ¡

  • nion ¡encryp1on ¡

{{{{α}E}C}B}A ¡ {{{{β}E}C}B}A ¡ {{{{γ}E}C}B}A ¡ {{{{ε}E}C}B}A ¡

slide-43
SLIDE 43

{{{{α}}}} ¡ {{{{β}}}} ¡ {{{{γ}}}} ¡ {{{{ε}}}} ¡ Message ¡set ¡under ¡ primary ¡and ¡secondary ¡

  • nion ¡encryp1on ¡

{{{{α}E}C}B}A ¡ {{{{β}E}C}B}A ¡ {{{{γ}E}C}B}A ¡ {{{{ε}E}C}B}A ¡

slide-44
SLIDE 44

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡

{{{{α}}}} ¡ {{{{β}}}} ¡ {{{{γ}}}} ¡ {{{{ε}}}} ¡ {{{ε}}} ¡ {{{β}}} ¡ {{{α}}} ¡ {{{γ}}} ¡ {{γ}} ¡ {{α}} ¡ {{ε}} ¡ {{β}} ¡ {ε} ¡ {γ} ¡ {α} ¡ {β} ¡ Permuted ¡ciphertext ¡ set ¡under ¡secondary ¡

  • nion ¡encrypEon ¡

Message ¡set ¡under ¡ primary ¡and ¡secondary ¡

  • nion ¡encryp1on ¡

β ¡ α ¡ ε ¡ γ ¡

slide-45
SLIDE 45

Alice ¡ Bob ¡ Chris ¡ Eve ¡

Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡ Decrypt, ¡ Permute ¡

{{{{α}}}} ¡ {{{{β}}}} ¡ {{{{γ}}}} ¡ {{{{ε}}}} ¡ {{{ε}}} ¡ {{{β}}} ¡ {{{α}}} ¡ {{{γ}}} ¡ {{γ}} ¡ {{α}} ¡ {{ε}} ¡ {{β}} ¡ {ε} ¡ {γ} ¡ {α} ¡ {β} ¡ [[[[B]]]] ¡ [[[[A]]]] ¡ [[[[E]]]] ¡ [[[[C]]]] ¡ Permuted ¡ciphertext ¡ set ¡under ¡secondary ¡

  • nion ¡encrypEon ¡

Message ¡set ¡under ¡ primary ¡and ¡secondary ¡

  • nion ¡encryp1on ¡
slide-46
SLIDE 46

Issue ¡2: ¡Integrity ¡

Alice ¡ Bob ¡ Chris ¡ Eve ¡ Permuted ¡ ciphertext ¡set ¡ Go ¡ No-­‑Go ¡ Go ¡ Go ¡ [[[[E]]]] ¡ [[[[A]]]] ¡ [[[[E]]]] ¡ [[[[C]]]] ¡

slide-47
SLIDE 47

Issue ¡2: ¡Integrity ¡

  • If ¡all ¡group ¡members ¡report ¡Go, ¡then ¡each ¡

member ¡publishes ¡her ¡secondary ¡private ¡key ¡

  • All ¡members ¡can ¡decrypt ¡each ¡ciphertext ¡in ¡

the ¡set, ¡and ¡the ¡permutaEon ¡is ¡kept ¡secret ¡

slide-48
SLIDE 48

Issue ¡3: ¡Accountability ¡

  • How ¡do ¡group ¡members ¡expose ¡an ¡abacker? ¡
  • If ¡any ¡group ¡member ¡reports ¡No-­‑Go, ¡then ¡

each ¡member: ¡

  • 1. Destroys ¡her ¡secondary ¡private ¡key, ¡rendering ¡

the ¡messages ¡unrecoverable, ¡and ¡

  • 2. Publishes ¡a ¡proof ¡of ¡her ¡correctness: ¡signed ¡

intra-­‑group ¡transmissions ¡and ¡informaEon ¡ necessary ¡to ¡replay ¡anonymizaEon ¡process ¡

slide-49
SLIDE 49

Issue ¡3: ¡Accountability ¡

  • Once ¡group ¡members ¡destroy ¡secondary ¡

private ¡keys, ¡they ¡can ¡safely ¡reveal ¡the ¡secret ¡ permuta1on ¡ Bob ¡ Alice’s ¡signed ¡

  • utgoing ¡

message ¡set ¡ Bob’s ¡signed ¡

  • utgoing ¡

message ¡set ¡ + ¡proof ¡that ¡Bob ¡correctly ¡decrypted ¡ and ¡permuted ¡Alice’s ¡message ¡set ¡

slide-50
SLIDE 50

Fixed-­‑Length ¡Shuffle ¡Recap ¡

  • 1. Group ¡members ¡encrypt ¡their ¡message ¡with ¡

two ¡layers ¡of ¡onion ¡encrypEon ¡

  • 2. Each ¡group ¡member ¡permutes ¡the ¡set ¡and ¡

decrypts ¡a ¡layer ¡of ¡primary ¡key ¡encrypEon ¡

  • 3. Members ¡send ¡a ¡Go ¡or ¡No-­‑Go ¡message ¡

indicaEng ¡whether ¡or ¡not ¡to ¡decrypt ¡

  • 4. Members ¡publish ¡either ¡their ¡secondary ¡

private ¡keys ¡OR ¡proofs ¡of ¡their ¡correctness ¡

slide-51
SLIDE 51

Outline ¡

  • IntroducEon ¡to ¡Dissent ¡
  • How ¡Dissent ¡works ¡

– Overall ¡protocol: ¡Variable-­‑length ¡shuffle ¡ – Key ¡component: ¡Fixed-­‑length ¡shuffle ¡

  • Prototype ¡and ¡experimental ¡results ¡
  • Goals ¡for ¡future ¡work ¡
slide-52
SLIDE 52

Prototype ¡

  • Implemented ¡fixed-­‑length ¡and ¡full ¡Dissent ¡

(variable-­‑length) ¡protocols ¡in ¡Python ¡

  • Used ¡Emulab, ¡a ¡network ¡testbed, ¡to ¡run ¡

performance ¡tests ¡

– 100ms ¡node-­‑to-­‑node ¡latency, ¡5Mbps ¡link ¡bandwidth ¡ – Up ¡to ¡44 ¡nodes ¡

  • Did ¡not ¡implement ¡“blame” ¡phases ¡
slide-53
SLIDE 53

Time ¡(minutes) ¡– ¡log ¡scale ¡ Total ¡size ¡of ¡message ¡set ¡– ¡log ¡scale ¡

Variable-­‑Length ¡ (Dissent) ¡ Fixed-­‑Length ¡ Only ¡

Time ¡required ¡for ¡transmission ¡ in ¡a ¡16-­‑node ¡group ¡– ¡Balanced ¡

50 5 0.5 4KB 1MB 64KB 16MB

slide-54
SLIDE 54

Time ¡(minutes) ¡– ¡log ¡scale ¡ Total ¡size ¡of ¡message ¡set ¡– ¡log ¡scale ¡

Time ¡required ¡for ¡transmission ¡ in ¡a ¡16-­‑node ¡group ¡– ¡One ¡Sender ¡

50 5 0.5 4KB 1MB 64KB 16MB

Fixed-­‑Length ¡ Only ¡ Variable-­‑Length ¡ (Dissent) ¡

slide-55
SLIDE 55

Prototype ¡

  • BroadcasEng ¡a ¡16 ¡MB ¡file ¡in ¡a ¡16-­‑node ¡group ¡

took ¡3.6 ¡1mes ¡longer ¡using ¡Dissent ¡than ¡ broadcasEng ¡file ¡without ¡encrypEon ¡or ¡ anonymizaEon ¡

  • Refer ¡to ¡paper ¡for ¡full ¡results ¡

– Round ¡Eme ¡over ¡message ¡set ¡size ¡ – Round ¡Eme ¡broken ¡down ¡by ¡component ¡ – Round ¡Eme ¡over ¡group ¡size ¡

slide-56
SLIDE 56

Outline ¡

  • IntroducEon ¡to ¡Dissent ¡
  • How ¡Dissent ¡works ¡

– Overall ¡protocol: ¡Variable-­‑length ¡shuffle ¡ – Key ¡component: ¡Fixed-­‑length ¡shuffle ¡

  • Prototype ¡and ¡experimental ¡results ¡
  • Goals ¡for ¡future ¡work ¡
slide-57
SLIDE 57

Future ¡Work ¡

  • Use ¡a ¡more ¡efficient ¡fixed-­‑length ¡shuffle ¡

– Brickell-­‑ShmaEkov ¡shuffle ¡requires ¡serial ¡ interac1vity ¡

  • Reduce ¡size ¡complexity ¡of ¡assignment ¡tables ¡ ¡
  • Reuse ¡one ¡fixed-­‑length ¡shuffle ¡for ¡many ¡

message ¡transfers ¡

  • Implement ¡protocol ¡on ¡large ¡scale ¡
slide-58
SLIDE 58

Wrap-­‑Up ¡

  • Dissent ¡is ¡a ¡sender-­‑anonymous ¡protocol ¡for ¡

broadcast ¡within ¡a ¡group ¡

  • Dissent ¡contributes: ¡

– Accountability, ¡the ¡ability ¡to ¡idenEfy ¡group ¡members ¡ who ¡try ¡to ¡block ¡message ¡transmission ¡ ¡ – Communica1on ¡efficiency, ¡under ¡variable ¡message ¡ lengths ¡

  • Dissent ¡has ¡the ¡potenEal ¡to ¡be ¡a ¡pracEcal ¡tool ¡for ¡

anonymous ¡latency-­‑tolerant ¡group ¡messaging ¡

slide-59
SLIDE 59

Acknowledgements ¡

  • The ¡anonymous ¡CCS ¡reviewers ¡
  • Vitaly ¡ShmaEkov, ¡Michael ¡Fischer, ¡Bimal ¡

Viswanath, ¡Animesh ¡Nandi, ¡JusEn ¡Brickell, ¡ Jacob ¡Strauss, ¡Chris ¡Lesniewski-­‑Laas, ¡Pedro ¡ Fonseca, ¡Philip ¡Levis ¡

  • All ¡of ¡you ¡for ¡listening ¡
slide-60
SLIDE 60

QuesEons? ¡

slide-61
SLIDE 61
slide-62
SLIDE 62

Time ¡required ¡to ¡send ¡varying ¡ message ¡sizes ¡in ¡a ¡16-­‑node ¡group ¡

Time ¡(minutes) ¡ Total ¡size ¡of ¡message ¡set ¡– ¡log ¡scale ¡

Message ¡ Transfer ¡ Fixed-­‑ Length ¡ Shuffle ¡

slide-63
SLIDE 63

Time ¡required ¡to ¡send ¡1MB ¡of ¡data ¡ (balanced) ¡using ¡Dissent ¡

Time ¡(minutes) ¡ Number ¡of ¡Nodes ¡

Total ¡ Time ¡ Shuffle ¡ Time ¡

slide-64
SLIDE 64

DefiniEons ¡

  • Integrity: ¡All ¡honest ¡group ¡members ¡have ¡the ¡

messages ¡of ¡all ¡other ¡honest ¡diners, ¡or ¡know ¡that ¡ the ¡shuffle ¡failed ¡

  • Anonymity: ¡No ¡subset ¡of ¡members ¡of ¡size ¡≤ ¡N ¡– ¡2 ¡

can ¡match ¡another ¡member ¡to ¡her ¡message ¡with ¡ probability ¡beber ¡than ¡random ¡guessing ¡

  • Accountability: ¡No ¡honest ¡group ¡member ¡has ¡a ¡

proof ¡that ¡an ¡honest ¡member ¡is ¡faulty, ¡and ¡either ¡ (a) ¡all ¡honest ¡members ¡obtain ¡the ¡message ¡of ¡all ¡

  • ther ¡honest ¡members, ¡or ¡(b) ¡all ¡honest ¡

members ¡expose ¡at ¡least ¡one ¡faulty ¡member ¡

slide-65
SLIDE 65
  • 1. Shuffles ¡assignment ¡

tables ¡

  • 2. Shuffles ¡accusaEons ¡

Protocol ¡Components ¡

Fixed-­‑Length ¡Shuffle ¡

Based ¡on ¡Brick-­‑Shmat ¡

Generate ¡ Assignment ¡Tables ¡ Transmission ¡of ¡ Pseudo-­‑Rand ¡Strings ¡

Assigns ¡pseudo-­‑rand ¡ strings ¡to ¡group ¡members ¡ Transmits ¡pseudo-­‑random ¡ strings ¡and ¡anonymized ¡ messages ¡