Technical changes since the last Tor talk
Nick Mathewson The Tor Project <nickm@torproject.org>
Defcon XV Aug 4, 2007
Technical changes since the last Tor talk Nick Mathewson The Tor - - PowerPoint PPT Presentation
Technical changes since the last Tor talk Nick Mathewson The Tor Project <nickm@torproject.org> Defcon XV Aug 4, 2007 Marty! We've got to go back to the future2004! Tor was working, usable, and seemed pretty secure. (v 0.0.7.2)
Defcon XV Aug 4, 2007
– Security: adding features/fixing security bugs. – Scalability: adding capacity is hard. – Scalability: using capacity is hard. – Usability: adding GUIs, fixing bugs. – Integration: working nice with other apps is hard. – Lots more: See the changelog.
More secure, more scalable!
More efficient, less filling!
What do you mean, I need to edit a file?
Alice2 Bob1 Bob2 Alice1 Alice3 Network
S S S S S S S S S
1.
S S S S S S S S S Alice2
2. 3.
Alice1
1.
S S S S S S S S S Alice2
2. 3.
Bob1 Bob2 Alice1
4.
See also: PipeNet, Onion Routing
6. 5.
S S S S S S S S S Alice2 Bob1 Bob2 Alice1
S S S S S S S S S Alice2 Bob1 Bob2 Alice1
S S S S S S S S S Alice2 Bob1 Bob2 Alice1
No obvious fix that isn’t extra-slow.
– (If you just ask a server for a list of neighbors, it can
trivially lie.)
– (Use self-signed descriptions; identity by PK.)
S S S S S S S S S Alice2 Bob1 Bob2 Alice1 Known to Alice1 Known to Alice2
S1 S2 Sn Authority Authority Authority Client Client Client
S1 S2 Sn Authority Authority Authority Client Client Client
Cache Cache Cache Cache
S1 S2 Sn Authority Authority Authority Client Client Client
Cache Cache Cache Cache
Client Cache “What's the directory?” Sign(Desc1,Desc2,Desc3..Desc99) “What's the directory?” Sign(Desc1,Desc3..Desc99,Desc100)
Client Cache “What do authorities A and B say?” SignA(digest list), SignB(digest list) “Send me descriptor with digest X” Descriptor with digest X
S1 Authorities Client Cache
“Use server whose identity key is X”.
“ H e r e ’ s
e j u s t f
y
! ”
ID = X
S1 S2 Sn Authority Authority Authority
and sign it.
multi-signed document.
Authority?
Guard?
(Actually determining these can be hard.) (Keywords define client behavior; authorities improve criteria.)
S1 Client bw=x p=2x bw=4x bw=x bw=x/2 bw=2x bw=2x bw=x bw=x bw=x/2
Big servers were underused. Tiny servers were overloaded.
S1 Client p=x p=2x p=4x p=x p=x/2 p=2x p=2x p=x p=x p=x/2
S1 Client p=x p=2x “I can push a
p=x p=2x p=2x p=x
Client 1 hour 10 days 10 days 1 hour 10 days
Client 1 hour 10 days 10 days 1 hour 10 days O k a y f
p
t 2 2 .
Alice loses if first and last hop are evil. (Correlation attacks) Suppose c/n nodes (bandwidthwise) are compromised. Therefore, (c/n)^2 of Alice's circuits are compromised. Therefore, if Alice's behavior stays the same, she will eventually lose.
Alice S S S S S S
Chosen at random*, held fixed**.
If Alice’s guards are good, Alice never has a vulnerable path.
S S
S S S S
S S
Alice S S (exit to 80,22) S S S (exit to 8001) S
Alice S S S S (exit to weird port) Service on weird port
Alice S1 S2 “Extend this circuit to S2 at 18.244.0.188:9010” “Uh, how?” In practice, server knowledge is not 100% synchronized. So, use identity key and IP.
Alice S1 S2 “Extend this circuit to S2 at evil:9010” Only good for traffic analysis... but other users were effective. (So, don’t use only identity key.) evil
Old Alice S
“Uh, guys? This is TLS.”
New Alice S
E(g^x) g^y,H(K=g^xy) X Y,H(K=H(X|Y)) Already encrypted, authenticated
Client Bad server Server 2
E2(gx) E2(g0) gy,H(g0y) g0, H(gx0)
(but once we checked for bad g^x,g^y,Ian Goldberg could prove this protocol secure.) (Also, we patched OpenSSL for this.)
browser
???????
Privoxy/ polipo
HTTP SOCKS
App
TCP
gaim
SOCKS
???????
browser
Privoxy/ polipo
HTTP SOCKS S O C K S
gaim
SOCKS
Replaced libc calls
Linux/BSD App
App
You can also do use a VM as your router: see JanusVM.
Privoxy/ polipo
HTTP SOCKS
App Linux, BSD
TCP TCP + address
App
SOCKS
Dumb App
SOCKS “get me 1.2.3.4!”
DNS
“Where is naughty.com?” “1.2.3.4!”
Smart App
SOCKS “get me naughty.com!”
Dumb App
SOCKS “get me 1.2.3.4!”
DNS
“Where is naughty.com?” “1.2.3.4!”
Vidalia TorK
– Try it out; want to run a server? – See docs and specs for more detail.
– https://torproject.org/donate.html – (We’rea tax-deductible charity!)
– I’m in the dunk tank at 6:30
– Roger at 2 on anti-censorship – Mike at 5 on securing the network and
apps.