1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%deffont "standard" xfont "comic sans ms-medium-r"
%%deffont "thick" xfont "arial black-medium-r"
%%deffont "typewriter" xfont "courier new-bold-r"
%%deffont "type2writer" xfont "arial narrow-bold-r"
%%deffont "standard" tfont "standard.ttf", tmfont "kochi-mincho.ttf"
%%deffont "thick" tfont "thick.ttf", tmfont "goth.ttf"
%%deffont "typewriter" tfont "typewriter.ttf", tmfont "goth.ttf"
%deffont "standard" xfont "helvetica-medium-r", tfont "arial.ttf", tmfont "times.ttf"
%deffont "thick" xfont "helvetica-bold-r", tfont "arialbd.ttf", tmfont "hoso6.ttf"
%deffont "italic" xfont "helvetica-italic-r", tfont "ariali.ttf", tmfont "hoso6.ttf"
%deffont "typewriter" xfont "courier-medium-r", tfont "typewriter.ttf", tmfont "hoso6.ttf"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Default settings per each line numbers.
%%
%default 1 leftfill, size 8, fore "black", back "white", font "thick", hgap 1
%default 2 size 8, vgap 10, prefix " ", ccolor "black"
%default 3 size 6, bar "gray70", vgap 0
%default 4 size 6, fore "black", vgap 0, prefix " ", font "standard"
%%
%%default 1 area 90 90, leftfill, size 9, fore "yellow", back "blue", font "thick"
%%default 2 size 9, vgap 10, prefix " "
%%default 3 size 7, bar "gray70", vgap 10
%%default 4 size 7, vgap 30, prefix " ", font "standard"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Default settings that are applied to TAB-indented lines.
%%
%tab 1 size 5, vgap 40, prefix " ", icon arc "red" 50
%tab 2 size 4, vgap 35, prefix " ", icon delta3 "blue" 40
%tab 3 size 3, vgap 35, prefix " ", icon dia "DarkViolet" 40
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%nodefault
%center, size 9, font "thick", back "white", fore "black"
Tor:
%size 8
Next-generation Onion Routing
%size 7
Roger Dingledine
Nick Mathewson
Paul Syverson
The Free Haven Project
%font "typewriter", fore "blue"
http://freehaven.net/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Low-latency anonymity system
%leftfill
Deployed: 20 nodes, hundreds (?) of users
Many improvements on earlier design
Free software -- modified BSD license
Design is not covered by earlier onion routing
patent
Uses SOCKS to interface with client apps
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
We have working code
(14 kloc of C)
and a design document,
and a byte-level specification,
and a Debian package (in Unstable)
Works on Linux, BSD, OSX, Cygwin, ...
User-space, doesn't need kernel mods or root
%size 9
http://freehaven.net/tor/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%page
%%
%%Talk Overview
%%
%%A bit about Onion Routing
%%
%%Improvements we've made
%%
%%Some related work
%%
%%Ask me questions
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Anonymity: Who needs it?
Private citizens
advocacy, counseling, whistleblowing, reporting, ...
%size 6
Higher-level protocols
voting, e-cash, auctions
%size 6
Government applications
research, law enforcement
%size 6
Business applications
%size 5
(hide relationships and volumes of communication)
Who is visiting job sites?
Which groups are talking to patent lawyers?
Who are your suppliers and customers?
Is the CEO talking to a buyout partner?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Anonymity is a network effect
Systems need traffic (many low-sensitivity users) to attract the high-sensitivity users
Most users do not value anonymity much
Weak security (fast system) can mean more users
which can mean
%cont, font "italic"
stronger
%cont, font "standard"
anonymity
High-sensitivity agents have incentive to run nodes
so they can be certain first node in their path is good
to attract traffic for their messages
There can be an optimal level of free-riding
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Onion Routing is...
An overlay network
Users build virtual circuits through the network
One layer of encryption at each hop
Fixed-size cells
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Tor's goals
Conservative design
minimize new design work needed
%size 6
Support testing of future research
Design for deployment; deploy for use
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Threat model -- what we aim for
Protect against somebody watching Alice
Protect against curious Bob
Protect against `some' curious nodes in the middle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Differences / limitations
We're TCP-only, not all IP (but we're user-space and very portable)
Not as strong as high-latency systems (Mixmaster, Mixminion)
Not peer-to-peer
No protocol normalization
Not unobservable (no steg, etc)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Perfect forward secrecy
Telescoping circuit
negotiates keys at each hop
no more need for replay detection
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
No mixing, padding, traffic shaping (yet)
Please show us they're worth the usability tradeoff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%page
%%
%%Many TCP streams can share one circuit
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Many TCP streams share a circuit
Previous designs built a new circuit for each stream
lots of public key ops per request
plus anonymity dangers from making so many circuits
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Leaky-pipe circuit topology
Alice can direct cells to any node in her circuit
So we can support long-range padding,
have multiple streams exiting at different places in the circuit
etc
%size 6
Unclear whether this is dangerous or useful
More research needed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Congestion control
Simple rate limiting
Plus have to keep internal nodes from overflowing
(Can't use global state or inter-node control)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Directory servers
To solve the `introduction' problem
Approve new servers
Tell clients who's up right now
plus their keys, location, etc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Variable exit policies
Each server allows different outgoing connections
E.g. no servers allow outgoing mail currently
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
End-to-end integrity checking
In previous onion routing, an insider could change
the text being transmitted:
"dir" => "rm *"
Even an external adversary could do this!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Rendezvous points
allow hidden services
don't need (brittle) reply onions
Access-controlled: Bob can control who he talks to
Robust: Bob's service is available even when some Tor nodes go down
Smear-resistant: Evil service can't frame a rendezvous router
Application-transparent: Don't need to modify Bob's apache
%size 6
(Not implemented yet)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
How do we compare security?
Assume adversary owns c of n nodes
can choose which
%size 6
What's the chance for a random Alice and Bob that he wins?
Freedom, Tor: (c/n)^2
Peekabooty, six-four, etc: c/n
Jap (if no padding): 1 if c>1
Anonymizer: 1 if c>0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Future work
Threshold directory agreement
Scalability: Morphmix/p2p extensions?
Restricted-route (non-clique topology)
Non-TCP transport
Implement rendezvous points
Make it work better
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
We have working code
Plus a design document,
and a byte-level specification
and a Debian package (in Unstable)
%size 9
http://freehaven.net/tor/
%size 6
Privacy Enhancing Technologies workshop
%size 9
http://petworkshop.org/
|