Title: Slicing the Onion: Anonymity Using Unreliable Overlays
1Slicing the Onion Anonymity Using Unreliable
Overlays
- Sachin Katti
- Jeffrey Cohen Dina Katabi
2Problem Statement
Leverage existing popular P2P overlays to send
confidential, anonymous messages without keys
3Overlays rock!
Ideal for anonymous communication
- Thousands of nodes
- Plenty of traffic to hide anonymous communication
- Diverse membership ? Nodes unlikely to collude
- Dynamic ? Hard to track
4Overlays suck!
- Nodes dont have public keys
- Nodes are not trustworthy
- Nodes are unreliable
5This talk Information Slicing
- Message confidentiality, and source and
destination anonymity - No public keys
- Churn resilient
61. Message Confidentiality Without Keys
7Confidentiality via Information Slicing
Split message to random pieces and send pieces
along node-disjoint paths
8Confidentiality via Information Slicing
Me
D
9Message Recovery by destination
10Even an attacker that gets all but one piece
cannot decode!
Destination gets all pieces ? can decode ?
112. Anonymity without Keys
12System Setup
- Anonymous communication has two phases
- Route Setup
- A node learns how to forward a received message
- Data transmission
- Just follow the routes
13Setup Anonymous Routes
- Each node knows its next hop
- No one else knows the next hop of a node
- Why not tell each node the ID of its next hop in
a confidential message?
Idea Build anonymity by confidentially sending
to each node its routing info!
14Naïve way to send to a node its next hop
Exponential Blowup!
15Challenge Exponential Blowup Solution Reuse
nodes without giving them too much information
V
Z
W
R
Zs next hop information
Rs next hop information
16Challenge Exponential Blowup Solution Reuse
nodes without giving them too much information
V
Z
W
R
V and W will know Z and Rs next hops
17Challenge Exponential Blowup Solution Reuse
nodes without giving them too much information
V
Z
W
R
Reuse V to send pieces that belong to different
nodes
18Challenge Exponential Blowup Solution Reuse
nodes without giving them too much information
V
Z
W
R
Reuse nodes to send multiple pieces as long as
the pieces belong to different messages
19Slicing Protocol
Source has multiple IP addresses
20Slicing Protocol
Source organizes nodes into stages
D
X
R
21Slicing Protocol
Destination D is placed randomly (here in last
stage)
D
X
R
22Slicing Protocol
Source confidentially tells each node its next
hop info
D
X
R
23Slicing Protocol
V receives the ids of its next hops along
disjoint paths
D
X
R
24Slicing Protocol
V also receives one piece meant for Z and one for
R, but cannot decipher their next hops
D
X
R
25Slicing Protocol
W also receives its info and pieces for Z and R W
cannot decipher Zs and Rs next hops
D
X
R
26Slicing Protocol
V and W have pieces meant for Z and R
D
X
R
27Slicing Protocol
V and W forward the pieces meant for Z and R
D
X
R
28Slicing Protocol
Node disjoint paths to deliver to Z its V and W
do not have enough pieces to know Zs info
D
X
R
29Slicing Protocol
The same for R
D
X
R
30Slicing Protocol
V and W are reused without revealing anything
about Z and Rs routing information
D
X
R
31Slicing Protocol
Similarly source constructs entire graph
D
X
R
32Slicing Protocol
D
X
R
Anonymity without keys!
333. Dealing With Churn
34Slicing Protocol - Churn
D
X
R
35Slicing Protocol - Churn
- What if node V departs?
- Destination cannot decode
D
X
X
R
36How Do We Combat Churn?
- Churn causes data loss
- Typical solution ? Add Redundancy
- Use coding to efficiently add redundancy
37Source Coding the Data
- Source Coding (Erasure Codes)
- Split into 3 pieces instead of 2
- Any 2 pieces suffice to retrieve data
- Added redundancy of (1/2) 50
38Source Coding For Robustness
S
Z
V
D
X
S1
R
X
W
S2
P
Y
U
Source coding can tolerate one node failure in
the network
- Destination D gets two pieces ? Can decode
39Source Coding For Robustness
S
Z
V
D
X
S1
R
X
W
S2
P
Y
U
- What if a second node (here Z) fails?
40Source Coding For Robustness
S
Z
V
D
X
X
S1
R
X
W
S2
P
Y
U
- What if a second node (here Z) fails?
- Destination D cannot decode
41Coding partially solves problem
Z
X
R
42Coding partially solves problem
R
Due to upstream node failure, R receives 2
pieces instead of 3
43Coding partially solves problem
R
R can only send out two pieces now, Initial
redundancy is destroyed
44Regenerating Redundancy
R
Pieces are linear combinations of message
fragments
45Network Coding
R
Take Linear combination of the pieces
New piece
R can create a linear combination of the pieces
he received to generate a new piece
46Network Coding
R
R can now send out 3 pieces instead of 2
Redundancy is regenerated inside the network
47Network Coding
R
Network coding can tolerate one node failure in
every stage
Can tolerate downstream node failures
48General Network Coding
- Nodes send linear combinations of incoming pieces
- Technique generalizes to any number of extra
pieces
For k extra pieces, network coding tolerates k
failures in every stage
494. Evaluation
50Evaluation Environment
- Implementation in Python
- Evaluated both in simulation and on PlanetLab
- Evaluate anonymity, performance and churn
resilience - Each metric is evaluated against the optimal
existing baseline
51Anonymity
- Simulate an overlay of 10000 nodes
- Attackers are placed randomly in the network
- Attackers can control nodes, snoop on their
edges, and collude - Comparison with Chaum mixes (optimal baseline)
- Entropy is standard anonymity metric
Anonymity
52How anonymous is information slicing?
Source Anonymity
Chaum mix
Info. Slicing
Anonymity
Fraction of Attacking Nodes
High anonymity despite no keys
53Churn Resilience
- Compared against practical anonymity system ?
Onion Routing - For fairness, onion routing is modified to have
redundancy using source coding - Metric
- Prob. of successfully sending a message, given a
particular redundancy
54Churn Resilience
Results for a Probability of Node Failure 0.3
Info. Slicing
Probability of Success
Onion Routing with source coding
Added Redundancy
Large increase in probability of success because
of network coding
55Implementation on PlanetLab
56Churn Resilience - Planetlab
Probability of Success
Added Redundancy
Network Coding nearly doubles the churn
resilience with the same overhead!
57Performance
- Two nodes in each stage and five stages
PlanetLab
Local Network
Info. Slicing
Info. Slicing
Throughput (Mb/s)
Throughput (Mb/s)
Onion Routing
Onion Routing
No. of Stages
No. of Stages
Parallel paths ? Increased throughput
58Conclusion
Enabled anonymous communication in P2P overlays
with no keys. Information Slicing provides
- Confidentiality ? Node disjoint paths
- Low Cost Anonymity ? Node Reuse
- Churn Resilience ? Network Coding