Traceback for End-to-End Encrypted Messaging
Nirvan Tyagi Ian Miers Tom Ristenpart CCS 2019
1
Traceback for End-to-End Encrypted Messaging Nirvan Tyagi Ian - - PowerPoint PPT Presentation
Traceback for End-to-End Encrypted Messaging Nirvan Tyagi Ian Miers Tom Ristenpart CCS 2019 1 Setting: End-to-end encrypted (E2EE) messaging Hello Alice Bob Platform 2 Setting: End-to-end encrypted (E2EE) messaging Hello > 2
1
2
Hello
3
Hello
> 2 billion users
4
5
6
User submits report Moderation decision based on content Action taken on relevant parties
7
User submits report Moderation decision based on content Action taken on relevant parties Combination of machine learning and human review
8
User submits report Moderation decision based on content Action taken on relevant parties Combination of machine learning and human review Ban fake/troll accounts injecting misinformation into network Notify users that have previously shared or received misinformation
9
User submits report Moderation decision based on content Action taken on relevant parties Combination of machine learning and human review Ban fake/troll accounts injecting misinformation into network Notify users that have previously shared or received misinformation Report must provide enough information to execute the following steps
10
11
Message content is encrypted!
12
Message content is encrypted!
13
Message content is encrypted! Forwarding traffic is muddled by
14
[TMR CCS’19]
User submits report Moderation decision based on content Action taken on relevant parties
forwards in E2EE messaging
15
forwards in E2EE messaging
[TMR CCS’19]
User submits report Moderation decision based on content Action taken on relevant parties
16
Message franking [FB white paper ’17], [GLR CRYPTO’17], [DGRW CRYPTO’18]
17
User reports received message to platform
Message franking [FB white paper ’17], [GLR CRYPTO’17], [DGRW CRYPTO’18]
18
Message franking [FB white paper ’17], [GLR CRYPTO’17], [DGRW CRYPTO’18]
User reports received message to platform m
19
User reports received message to platform m Platform learns message and sender, but nothing more about where message came from or where it reached
Message franking [FB white paper ’17], [GLR CRYPTO’17], [DGRW CRYPTO’18]
20
User reports received message to platform
[TMR CCS’19]
21
User reports received message to platform
[TMR CCS’19]
m
22
User reports received message to platform
[TMR CCS’19]
m
23
Before report Platform view: encrypted content and metadata (participants, length, and timing)
24
25
Before report Platform view: encrypted content and metadata (participants, length, and timing) User view: messages they receive or send
26
Before report Platform view: encrypted content and metadata (participants, length, and timing) User view: messages they receive or send
m m m User shouldn’t learn forwarding info of received messages
27
m m User shouldn’t learn forwarding info of received messages m
Before report Platform view: encrypted content and metadata (participants, length, and timing) User view: messages they receive or send
28
29
m
After report Platform view: message content and forward links of traceback target (e.g. path, tree)
30
m
31
m
Trace accountability An honest user cannot be framed for an action they didn’t perform
32
m
Trace accountability An honest user cannot be framed for an action they didn’t perform
Malicious user can partition trace, but will be blamed as source
33
Alice Bob Charlie
34
Alice Bob Charlie m
E2EE channel
35
Alice Bob Charlie m
E2EE channel
36
Alice Bob Charlie kAB m
E2EE channel
“tracing” key
37
Alice Bob Charlie kAB kAB m
E2EE channel
kAB
“tracing” key
38
Alice Bob Charlie kAB kAB m
E2EE channel
kAB kØ
“null pointer” key randomly generated
39
Alice Bob Charlie kAB kAB m
E2EE channel
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
40
Alice Bob Charlie kAB kAB m
E2EE channel
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
“encrypted pointer”
41
Alice Bob Charlie kAB kAB m
E2EE channel
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
“encrypted pointer” PRF that is also CR (e.g., HMAC)
42
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
idAB
43
Alice Bob Charlie kAB kAB m
E2EE channel
idAB ctAB Table stored on platform
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m) idAB
kAB
44
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
idAB idAB
45
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
idAB idAB
46
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kBC m kAB
idAB idAB
47
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kBC m F(kBC , m) kAB
idAB idAB
48
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kBC m idBC F(kBC , m) kAB
idAB idAB
49
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kBC m idBC F(kBC , m)
Decrypt and dereference ctBC
kAB = Dec(kBC , ctBC) kAB
idAB idAB
50
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kBC m idBC F(kBC , m)
Decrypt and dereference ctBC
kAB = Dec(kBC , ctBC) F(kAB , m) idAB kAB
idAB idAB
51
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kBC m idBC F(kBC , m)
Decrypt and dereference ctBC
kAB = Dec(kBC , ctBC) F(kAB , m) idAB
Decrypt and dereference ctAB
kØ = Dec(kAB , ctAB) F(kØ , m) not in table
⇒ beginning of forward chain!
kAB
idAB idAB
52
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
Small and fast to compute! idAB idAB
53
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m) Before report Platform view: Ciphertexts and PRF outputs without keys User view: Keys without ciphertext
kAB
idAB idAB
54
Alice Bob Charlie kAB kAB m
E2EE channel
Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m)
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m) After report Platform view: Learns keys only for rows of trace
kAB
Before report Platform view: Ciphertexts and PRF outputs without keys User view: Keys without ciphertext ctAB idBC ctBC idAB idAB
55
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
Trace accountability Pointer “dereferences” are bound to a message idAB idAB
56
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
Trace accountability Pointer “dereferences” are bound to a message idAB idAB
57
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
Trace accountability Pointer “dereferences” are bound to a message
k’ m’
idAB idAB
58
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
k’ m’
Trace accountability Pointer “dereferences” are bound to a message To break accountability, F(k’ , m’) must collide with idBC idAB idAB
Trace accountability Pointer “dereferences” are bound to a message
59
Alice Bob Charlie kAB kAB m
E2EE channel
ctAB Table stored on platform ctBC = Enc(kBC , kAB)
m
idBC = F(kBC , m) idBC ctBC
kBC kBC
idBC
kØ
ctAB = Enc(kAB , kØ) idAB = F(kAB , m)
kAB
See paper for security proofs!
k’ m’
To break accountability, F(k’ , m’) must collide with idBC idAB idAB
60
User submits report Moderation decision based on content Action taken on relevant parties Combination of machine learning and human review Ban fake/troll accounts injecting misinformation into network Notify users that have previously shared or received misinformation
61
User submits report Moderation decision based on content Action taken on relevant parties Combination of machine learning and human review Ban fake/troll accounts injecting misinformation into network Notify users that have previously shared or received misinformation
62
User submits report Moderation decision based on content Action taken on relevant parties Combination of machine learning and human review Ban fake/troll accounts injecting misinformation into network Notify users that have previously shared or received misinformation Need something more than path traceback!
63
Alice Bob Charlie idBC idAB
64
Alice Bob Charlie idBC idAB
“backward pointer”
65
Alice Bob Charlie idBC idAB
“backward pointer” “forward pointer”
66
Alice Bob Charlie idBC idAB Diane idBD
“backward pointer” “forward pointers”
67
Alice Bob Charlie idBC idAB Diane idBD
“backward pointer” “forward pointers”
See paper for full details of construction! (uses PRG and secret sharing)
68
https://github.com/nirvantyagi/tracing
69
https://github.com/nirvantyagi/tracing
70
https://github.com/nirvantyagi/tracing
71
Can tracing be abused to silence socially valuable content? Future work: Policy and implementation to limit abuse of tracing
User submits report Moderation decision based on content Action taken on relevant parties
72
Future work: Policy and implementation to limit abuse of tracing
User submits report Moderation decision based on content Action taken on relevant parties Threshold number
Tracing ability is only granted after moderation decision on content is complete?
Can tracing be abused to silence socially valuable content?
73
https://github.com/nirvantyagi/tracing
forwards in E2EE messaging