Asymmetric Message Franking
Content Moderation for Metadata-Private End-to-End Encryption Nirvan Tyagi Paul Grubbs Julia Len Ian Miers Tom Ristenpart CRYPTO 2019
1
Asymmetric Message Franking Content Moderation for Metadata-Private - - PowerPoint PPT Presentation
Asymmetric Message Franking Content Moderation for Metadata-Private End-to-End Encryption Nirvan Tyagi Paul Grubbs Julia Len Ian Miers Tom Ristenpart CRYPTO 2019 1 Setting: End-to-end encrypted messaging Hello From: Alice To: Bob
1
2
From: Alice To: Bob
Hello
3
From: Alice To: Bob
Hello
4
From: Alice To: Bob
Hello
“Public”
Hello
[OTR BGB ’04], [Signal X3DH ’16]
From: To:
5
[Dissent OSDI’12], [Riposte S&P’15], [Vuvuzela SOSP’15], [Pung OSDI’16] . . .
From: To: Bob
6
[Dissent OSDI’12], [Riposte S&P’15], [Vuvuzela SOSP’15], [Pung OSDI’16] . . .
From: To: Bob
7
From: To: Bob
8
$#@%!
From: To: Bob
9
$#@%! Online bully Abusive partner Spammer Misinformation
From: To: Bob
10
$#@%! Online bully Abusive partner Spammer Misinformation
$#@%!
From: To: Bob
11
$#@%! Online bully Abusive partner Spammer Misinformation
$#@%! Moderation is a big priority: Facebook employs ≈15K content moderators*
* “The secret lives of Facebook moderators in America” [The Verge 2019]
From: To: Bob
12
$#@%! Online bully Abusive partner Spammer Misinformation
$#@%! Moderation is a big priority: Facebook employs ≈15K content moderators*
* “The secret lives of Facebook moderators in America” [The Verge 2019]
Privacy complicates abuse moderation!
From: To: Bob
13
$#@%! Online bully Abusive partner Spammer Misinformation
$#@%! Moderation is a big priority: Facebook employs ≈15K content moderators*
* “The secret lives of Facebook moderators in America” [The Verge 2019]
Privacy complicates abuse moderation!
14
[TGLMR CRYPTO’19]
15
Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Platform Alice Bob
16
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Platform Alice Bob
17
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Symmetric encryption following key agreement
[Signal X3DH ‘16]
Platform Alice Bob
18
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Identities authenticated by platform
Platform Alice Bob
19
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Alice, Bob, ct
Platform Alice Bob
20
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Alice, Bob, ct
k
Platform Alice Bob
21
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Alice, Bob, ct
k m = Deck(ct) Alice sent Bob m
Platform Alice Bob
22
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Alice, Bob, ct
k m = Deck(ct) Alice sent Bob m
Platform Alice Bob
23
Moderator
From: Alice To: Bob m Message franking
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
Alice, Bob, ct
k m = Deck(ct) Alice sent Bob m
Platform Alice Bob
24
Moderator
m
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
? , Bob, ct
k From: To: Bob
m = Deck(ct) ? sent Bob m Message franking
Platform Alice Bob
25
Moderator
m
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
? , Bob, ct
k From: To: Bob
m = Deck(ct) ? sent Bob m Message franking
Platform Alice Bob
26
Moderator
m, Alice
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
? , Bob, ct
k From: To: Bob
Can we patch by including Alice’s identity in commitment?
m, Alice = Deck(ct) Alice sent Bob m Message franking
Platform Charlie Bob
27
Moderator
m, Alice
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
? , Bob, ct
k From: To: Bob
Can we patch by including Alice’s identity in commitment?
m, Alice = Deck(ct) Alice sent Bob m Message franking
Platform Charlie Bob
28
Moderator
m, Alice
[FB white paper ‘17], [GLR CRYPTO‘17], [DGRW CRYPTO‘18]
? , Bob, ct
k From: To: Bob
Can we patch by including Alice’s identity in commitment?
m, Alice = Deck(ct) Alice sent Bob m
Message franking
29
Specialized digital signature scheme that provides:
Platform Alice Bob
30
Moderator
Specialized digital signature scheme that provides:
From: To:
? ?
Platform Alice Bob
31
Moderator
Specialized digital signature scheme that provides:
m, σ
skA , pkA
σ = Sign(skA , m) m, σ
From: To:
? ?
Platform Alice Bob
32
Moderator
Specialized digital signature scheme that provides:
m, σ
skA , pkA
σ = Sign(skA , m) m, σ Verify(pkA , m , σ) Standard digital signatures provide accountability …but not deniability
From: To:
? ?
Platform Alice Bob
33
Moderator
Specialized digital signature scheme that provides:
m, σ
skA , pkA
σ = Sign(skA , m) m, σ Verify(pkA , m , σ) Standard digital signatures provide accountability …but not deniability “Public”
From: To:
? ?
34
Digital signatures where only one party can verify
[JSI EUROCRYPT ‘96]
35
Digital signatures where only one party can verify
Designated verifier can’t be fooled by forgery
There exists forgery algorithm that fools everyone else
[JSI EUROCRYPT ‘96]
Platform Alice Bob
36
Moderator
m, σ
skA , pkA
m, σ
From: To:
? ? Idea: Designating the moderator as a verifier?
Platform Alice Bob
37
Moderator
m, σ
skA , pkA
m, σ
skM , pkM
From: To:
? ? Idea: Designating the moderator as a verifier?
Platform Alice Bob
38
Moderator
m, σ
skA , pkA
σ = Sign(skA , pkM , m) m, σ
From: To:
? ? Idea: Designating the moderator as a verifier?
skM , pkM
Platform Alice Bob
39
Moderator
m, σ
skA , pkA
σ = Sign(skA , pkM , m) m, σ Verify(pkA , skM , m , σ)
From: To:
? ? Idea: Designating the moderator as a verifier?
skM , pkM
Platform Alice Bob
40
Moderator
m, σ
skA , pkA
σ = Sign(skA , pkM , m) m, σ Verify(pkA , skM , m , σ)
“Public” From: To:
? ?
Could be a forgery!
Idea: Designating the moderator as a verifier?
skM , pkM
Platform Alice Bob
41
Moderator
m, σ
skA , pkA
σ = Sign(skA , pkM , m) m, σ Verify(pkA , skM , m , σ)
Idea: Designating the moderator as a verifier?
“Public” From: To:
? ? Accountability issue: Bob can’t verify!
Could be a forgery! skM , pkM
42
Solution: Designate Bob as verifier of proof that signature to moderator will succeed
Platform Alice Bob
43
Moderator
m, σ
skA , pkA
m, σ
From: To:
? ? Solution: Designate Bob as verifier of proof that signature to moderator will succeed
skB , pkB skM , pkM
Platform Alice Bob
44
Moderator
m, σ
skA , pkA
m, σ
From: To:
? ? Solution: Designate Bob as verifier of proof that signature to moderator will succeed
skB , pkB
σ = Sign(skA , pkB , pkM , m)
skM , pkM
Platform Alice Bob
45
Moderator
m, σ
skA , pkA
m, σ
From: To:
? ? Solution: Designate Bob as verifier of proof that signature to moderator will succeed
skB , pkB
σ = Sign(skA , pkB , pkM , m) Verify(pkA , skB , pkM , m , σ) Judge(pkA , pkB , skM , m , σ)
skM , pkM
Platform Alice Bob
46
Moderator
m, σ
skA , pkA
m, σ
From: To:
? ? Solution: Designate Bob as verifier of proof that signature to moderator will succeed
skB , pkB
σ = Sign(skA , pkB , pkM , m) Verify(pkA , skB , pkM , m , σ) Judge(pkA , pkB , skM , m , σ)
Accountability notions
Judge(pkA , pkB , skM , m , σ)
skM , pkM
47
σ’ = Forge(pkA , skB , pkM , m) Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM
48
Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM
Alice Bob Moderator skA , pkA skB , pkB
m, σ m, σ
σ = Sign(skA , pkB , pkM , m)
“Public”
σ’ = Forge(pkA , skB , pkM , m)
skM , pkM
49
Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM
Alice Bob Moderator skA , pkA skB , pkB
m, σ’ m, σ
σ = Sign(skA , pkB , pkM , m)
“Public”
σ’ = Forge(pkA , skB , pkM , m)
skM , pkM
50
Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM
Alice Bob Moderator skA , pkA skB , pkB
m, σ’ m, σ
σ = Sign(skA , pkB , pkM , m)
“Public”
pkA , pkB , skM σ’ = Forge(pkA , skB , pkM , m)
skM , pkM
51
Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM
Alice Bob Moderator skA , pkA skB , pkB
skm , m, σ’ m, σ
σ = Sign(skA , pkB , pkM , m)
“Public”
pkA , pkB , skM
key compromise!
σ’ = Forge(pkA , skB , pkM , m)
skM , pkM
52
Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM
Alice Bob Moderator skA , pkA skB , pkB
skm , m, σ’ m, σ
σ = Sign(skA , pkB , pkM , m)
“Public”
pkA , pkB , skM
key compromise!
pkA , pkB , skM σ’ = Forge(pkA , skB , pkM , m)
skM , pkM
53
pkA , skB , pkM pkA , pkB , skM pkA , skB , skM skA , pkB , pkM pkA , skB , pkM skA , skB , pkM pkA , pkB , skM Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM σ’ = Forge(pkA , pkB , pkM , m)
54
pkA , skB , pkM pkA , pkB , skM pkA , skB , skM skA , pkB , pkM pkA , skB , pkM skA , skB , pkM pkA , pkB , skM Forger Distinguisher D σ ≈D σ’ pkA , pkB , pkM σ’ = Forge(pkA , pkB , pkM , m)
55
pkA , skB , pkM pkA , pkB , skM pkA , skB , skM skA , pkB , pkM pkA , skB , pkM skA , skB , pkM pkA , pkB , skM Forger Distinguisher D pkA , pkB , pkM implies non-repudiability Some deniability relationships are desirable σ’ = Forge(pkA , pkB , pkM , m)
56
pkA , skB , pkM pkA , pkB , skM pkA , skB , skM skA , pkB , pkM pkA , skB , pkM skA , skB , pkM pkA , pkB , skM Forger Distinguisher D pkA , pkB , pkM Some deniability relationships are desirable implies non-repudiability v i
a t e s r e c e i v e r b i n d i n g Others contradict directly with accountability σ’ = Forge(pkA , pkB , pkM , m)
57
Forger Distinguisher
skM skB skA : Incompatible with unforgeability : Incompatible with receiver binding
58
skM skB skA : Incompatible with unforgeability : Incompatible with receiver binding U : Universal deniability R : Receiver compromise deniability J : Judge compromise deniability U J R
Forger Distinguisher
59
skM skB skA : Incompatible with unforgeability : Incompatible with receiver binding U : Universal deniability R : Receiver compromise deniability J : Judge compromise deniability U J R
This represents only one possible set of tradeoffs! Forger Distinguisher
60
Specialized digital signature scheme that provides:
Receiver binding Sender binding
Universal deniability Receiver compromise deniability Judge compromise deniability
61
62
Example of signature proof of knowledge (SPK) notation: Standard digital signature (Schnorr)
chal
63
Example of signature proof of knowledge (SPK) notation: Standard digital signature (Schnorr)
Verifier Prover
com resp
Σ-Protocol Proof
chal = H(com, m)
Verifier Prover
com resp
SPK via Fiat-Shamir
64
DV signature to moderator DV proof to Bob
65
DV signature to moderator DV proof to Bob
66
DV signature to moderator DV proof to Bob “What Alice is proving to the moderator”
67
DV signature to moderator DV proof to Bob “What Alice is proving to the moderator” “What allows other parties to forge”
68
DV signature to moderator DV proof to Bob “What Alice is proving to the moderator” “What allows other parties to forge” Moderator accepts if aaaaaaaa form a Diffie-Hellman triple
69
DV proof to Bob Moderator accepts if aaaaaaaa form a Diffie-Hellman triple DV signature to moderator
70
Moderator accepts if aaaaaaaa form a Diffie-Hellman triple DV signature to moderator “What Alice is proving to the recipient” “What allows other parties to forge”
71
DV proof to Bob Moderator accepts if aaaaaaaa form a Diffie-Hellman triple DV signature to moderator Alice is proving Diffie-Hellman relationship to Bob!
72
DV proof to Bob Moderator accepts if aaaaaaaa form a Diffie-Hellman triple DV signature to moderator Alice is proving Diffie-Hellman relationship to Bob! Accountability
Deniability
various key compromise scenarios
73
73
Perspective API (for toxicity score)
74
74
Keybase (for PKI)
Available at github.com/julialen/asymmetric-message-franking m, σ m, σ m, σ
75