SLIDE 1
iLab Onion Routing Benjamin Hof hof@in.tum.de Lehrstuhl fr - - PowerPoint PPT Presentation
iLab Onion Routing Benjamin Hof hof@in.tum.de Lehrstuhl fr - - PowerPoint PPT Presentation
iLab Onion Routing Benjamin Hof hof@in.tum.de Lehrstuhl fr Netzarchitekturen und Netzdienste Fakultt fr Informatik Technische Universitt Mnchen Lab 9 16ss 1 / 38 Outline Introduction Trust architecture Protocols Attacks
SLIDE 2
SLIDE 3
Outline
Introduction Trust architecture Protocols Attacks Further topics Announcements
3 / 38
SLIDE 4
Anonymity
Anonymity set: set of people indistinguishable to the adversary
◮ size ◮ diversity
This is not enough!
4 / 38
SLIDE 5
Separation of network identity and routing
is the service provided by onion routing.
5 / 38
SLIDE 6
Overlay network
6 / 38
SLIDE 7
Overlay network
6 / 38
SLIDE 8
Onion skins
server guard middle exit Circuits: nested encrypted connections via three relays
7 / 38
SLIDE 9
Design goals
◮ anonymous routing
non-goals are, e.g.
◮ anonymity ◮ global passive adversary ◮ end to end correlation
attacker power
◮ limited active and passive network attacks ◮ compromised relays 8 / 38
SLIDE 10
Attacker model
9 / 38
SLIDE 11
Attacker model
9 / 38
SLIDE 12
Attacker model
9 / 38
SLIDE 13
◮ you are anonymous to the service you visit ◮ your network does not see which services you visit 10 / 38
SLIDE 14
Tor
Tor is an implementation of onion routing.
◮ censorship circumvention ◮ open design process ◮ low latency anonymity system
Software
◮ tor ◮ obfsproxy ◮ Tor Browser ◮ . . . lots of ecosystem around it 11 / 38
SLIDE 15
Outline
Introduction Trust architecture Protocols Attacks Further topics Announcements
12 / 38
SLIDE 16
Components
- nion router
◮ identity key ◮ relays traffic
directory authority
◮ authority identity key ◮ manage list of onion routers ◮ agree on unified network view with other DAs
- nion proxy
◮ build circuit consisting of onion routers ◮ ingest application traffic 13 / 38
SLIDE 17
Relationships
DA OR OP OR OP OR OR DA DA
14 / 38
SLIDE 18
Relationships
DA OR OP OR OP OR OR DA DA
14 / 38
SLIDE 19
Directory authority
directory authority 0 addr, port, pub key addr, port, pub key . . .
- ther directory authorities
hourly vote
◮ authority identity key ◮ authority signing key 15 / 38
SLIDE 20
Descriptor
◮ nickname ◮ IP, port ◮ identity key (long-term KSK) ◮ signing key (medium-term) ◮ onion key ◮ published date ◮ version ◮ lots of other info, e.g. bandwidth ◮ signature
Right now there is a transition from RSA 1024 to ED25519 with cross signatures.
16 / 38
SLIDE 21
Joining the network
- nion router
◮ upload descriptor ◮ retrieve consensus
DA functionality check DA voting
- nion proxy
◮ retrieve consensus ◮ build circuits 17 / 38
SLIDE 22
Outline
Introduction Trust architecture Protocols Attacks Further topics Announcements
18 / 38
SLIDE 23
Overview
OR1 OR2 OR3 stream relay circuit extend TLS + link protocol
19 / 38
SLIDE 24
Overview
◮ OR connections protected with combined TLS and cell protocol
handshake
◮ all Tor communication in cells inside TLS ◮ authenticated ECDH handshakes (ntor) to build circuits ◮ “onion skin” layered encryption on the relay subprotocol cells 20 / 38
SLIDE 25
Cells
circuit id command length payload 4 octets 1 octet 2 octets may be padded
◮ VERSIONS: version negotiation ◮ CERTS: certificates ◮ CREATE2: ntor handshake DH ◮ CREATED2: ntor handshake DH, authenticator ◮ RELAY: subprotocol (data) ◮ DESTROY: reason for tearing down circuit ◮ and many more
This is the version 4 link protocol. Most cells have fixed size 514
- ctets.
21 / 38
SLIDE 26
Relay subprotocol
relay cmd recognized stream id digest length payload 1 octet 2 octets 2 octets 4 octets 2 octets padded
◮ RELAY_EXTEND2 (control): CREATE2 ◮ RELAY_EXTENDED2 (control): CREATED2 ◮ RELAY_RESOLVE: very simple DNS query ◮ RELAY_RESOLVED: DNS response ◮ RELAY_BEGIN: address, port ◮ RELAY_CONNECTED: address, port ◮ RELAY_DATA: original TCP SDU ◮ RELAY_END: termination reason ◮ and many more
This is where the encryption happens.
22 / 38
SLIDE 27
Link handshake
authenticate using TLS info OR1 OR2 TLS VERSION V E R S I O N , C E R T S , N E T I N F O N E T I N F O
◮ version 3 handshake flow ◮ TLS connection reused for all circuits between OR1 and OR2 23 / 38
SLIDE 28
Circuit setup
◮ extend circuits by one hop at at time ◮ connect a stream to a TCP/IP destination ◮ then: relay cells with application content
Spare circuits are created ahead of time.
24 / 38
SLIDE 29
Relay protocol: circuit extension
OP guard middle CREATE2 CREATED2 EXTEND2(CREATE2) C R E A T E 2 C R E A T E D 2 EXTENDED2(CREATED2)
25 / 38
SLIDE 30
ntor handshake
◮ one-way authenticated DH key agreement ◮ no signatures or RSA involved ◮ two DH operations ◮ forward security ◮ responder authenticated ◮ initiator anonymous ◮ security proofs for: key agreement, authentication, anonymity 26 / 38
SLIDE 31
ntor (simplified)
- 1. Bob: (b, B) ← GenDH()
- 2. Alice learns authentic IDB, B.
3. (x, X) ← GenDH() (y, Y ) ← GenDH() dh := yX||bX (sk′, sk) := H(dh||IDB||X||Y ) tB := Macsk′(IDB||X||Y ) dh := xY ||xB (sk′, sk) := H(dh||IDB||X||Y ) Vrfysk′(tB, (IDB||X||Y )) IDB, X Y , tB
27 / 38
SLIDE 32
Processing of a relay cell
cid cmd [encrypted] OR2: Deck2(·) recog ? = 0 → pass along circuit OR3: Deck3(·) recog ? = 0 Vrfyk(MAC, cell) cid cmd cmd recog sid digest len payload
28 / 38
SLIDE 33
Outline
Introduction Trust architecture Protocols Attacks Further topics Announcements
29 / 38
SLIDE 34
sslstrip
exit server
30 / 38
SLIDE 35
Correlation
server
31 / 38
SLIDE 36
Correlation
server → guard nodes
31 / 38
SLIDE 37
Outline
Introduction Trust architecture Protocols Attacks Further topics Announcements
32 / 38
SLIDE 38
Censorship circumvention
Bridges
◮ “secret” relays ◮ “pluggable transports” as obfuscation layer 33 / 38
SLIDE 39
Onion services
◮ location hidden services / responder anonymity ◮ service offering without disclosing network identity ◮ name/URL: hash of public key ◮ authenticating URL: tunnel TCP connections to an OR
currently not all properties secure
34 / 38
SLIDE 40
Circuit setup (conceptual)
DHT OP RP IP OS IP IP
35 / 38
SLIDE 41
Circuit setup (conceptual)
DHT OP RP IP OS IP IP descriptor: IPs, kpub
35 / 38
SLIDE 42
Circuit setup (conceptual)
DHT OP RP IP OS IP IP
35 / 38
SLIDE 43
Circuit setup (conceptual)
DHT OP RP IP OS IP IP RP
35 / 38
SLIDE 44
Circuit setup (conceptual)
DHT OP RP IP OS IP IP
35 / 38
SLIDE 45
Use cases
◮ responder authentication ◮ break out of NAT ◮ hide server location
Example
◮ Facebook social network: https://facebookcorewwwi.onion ◮ DuckDuckGo search engine: http://3g2upl4pq6kufc4m.onion ◮ Debian GNU/Linux operating system mirror:
http://vwakviie2ienjx6t.onion
◮ Ricochet messenger
Always offer additionally to TLS.
36 / 38
SLIDE 46
Outline
Introduction Trust architecture Protocols Attacks Further topics Announcements
37 / 38
SLIDE 47