Motivation
2/50
Research
Something something Art of War
Agenda
4/50
Architecture
5/50
Client 1 control stream
Client 2 control stream
Message stream
Message stream
WWW
leave_group
set_profile_picture
video
recording
text
E2E
Rules
6/50
Getting started
7/50
Getting started
8/50
Getting started
9/50
Getting started
10/50
Getting started
11/50
Getting started
12/50
Sniffing
13/50
Sniffing
14/50
?
Length = 255 (0xff) bytes
Sniffing
15/50
?
Protobuf
16/50
Decoding messages
17/50
Encryption
18/50
Noise
19/50
Noise
20/50
Key exchange
Global scheme:
n (field), g (generator)
g
Alice:
generates random x
computes gx mod n
x (Alice’s private key)
gx (Alice’s public key)
Bob:
generates random y
computes gy mod n
y (Bob’s private key)
gy (Bob’s public key)
using y, gx computes gxy
using x, gy computes gxy
gxy (shared secret)
gxy (shared secret)
gx (Alice’s public key)
y (Bob’s private key)
gy (Bob’s public key)
x (Alice’s private key)
Key exchange
Global scheme:
n (field), g (generator)
g
Cannot compute goal:
gxy
???
Goal:
gxy (shared secret)
Eve:
Gets
Gets
gx (Alice’s public key)
gy (Bob’s public key)
Key exchange (recap)
23/50
Noise Summary
24/50
Encryption library
25/50
?
Patching
26/50
Patching
27/50
Applying
28/50
Encoding
29/50
Encoding
30/50
Indicates a successful login, even though we didn’t provide any credentials…
Where are they?
Requests and events
31/50
End-to-End encrypted messaging (E2E)
32/50
Signal Protocol
33/50
Alice:
requests Bob’s public keys from server
generates random x
computes shared secret #1 and sends the encrypted message along with her generated public key
shared #1
“What’s up?”
Bob:
computes shared secret #1
generates a new key y
computes shared secret #2 using the newly generated key and Alice’s most recent key, combines it with the old secret and discards the old one
send the encrypted message along with the new public key
Alice:
computes shared secret #2
generates a new key z
computes shared secret #3
“Nothing much”
shared #2
shared #3
.
.
.
Signal Protocol
34/50
Signal Protocol (recap)
35/50
Group messaging
36/50
Group
Alice
Carol
Bob
Dave
‘Hi’
‘Hi’
‘Hi’
‘Hi’
Group messaging
37/50
Media
38/50
Live Location
39/50
Registration and Login
40/50
Registration and Login
41/50
ENC
42/50
token
43/50
“PkTwKSZqUfAUyR0rPQ8hYJ0wNsQQ3dW1+3SCnyTXIfEAxxS75FwkDf47wNv/c8pP3p0GXKR6OOQmhyERwx74fw1RYSU10I4r1gyBVDbRJ40pidjM41G1I1oN”
b’ ‘
md5(classes.dex)
Login
44/50
https://v.whatsapp.net/v2/exist?ENC=A8q2fyeB2h...
cc=972&in=521231234&lg=en&lc=US&hasav=1&token=CZy7...cbE%3d
&e_regid=Qf35kA&e_keytype=BQ&e_ident=T93...f4Hc
&e_skey_id=AAAA&e_skey_val=qS3lH...a7nw&e_skey_sig=NPrW...CBjQ&authkey=76qJ...8DGj0
Recap
45/50
45/61
Actual Applications
46/50
47/50
48/50
Insights
49/50
שאלות?