Zo werkt het Tor-netwerk

Een groot deel van het internet laat zich niet zomaar indexeren door zoekmachines als Google. Sommige services, zoals websites en diverse communicatiekanalen, verbergen zich doelbewust: het zogeheten DarkNet. Tor onion services zijn daar een goed voorbeeld van. Hoe opereren zulke services?

Wat zijn Tor onion services?

Onion services zijn services, zoals websites, die alleen toegankelijk zijn via Tor, een gratis opensource-netwerk bedoeld voor anonieme communicatie.

Voordat we dieper ingaan op onion services, leggen we eerst kort uit wat Tor is, omdat onion services volledig binnen dit netwerk opereren. Tor is gratis opensource-software die het internetverkeer door een wereldwijd netwerk leidt dat uit bijna 7000 nodes oftewel relays bestaat (zie ook https://kwikr.nl/tormet). Het voornaamste doel is de persoonlijke privacy van de gebruiker te beschermen door zijn locatie en data te verbergen.

Tor: basiswerking

Het kernprincipe is “(the) onion routing” (de naam Tor is daar de afkorting van), een techniek die meer dan 25 jaar geleden in opdracht van de Amerikaanse zeemacht werd ontwikkeld. In 2004 werd de Tor-code vrijgegeven en financierde het EFF (Electronic Frontier Foundation) de verdere ontwikkeling. Dit mondde in 2006 uit in de oprichting van The Tor Project, dat nog altijd de ontwikkelingen van Tor en de Tor Browser stuurt.

Via Tor communiceert de client nooit rechtstreeks met de server. De client – de Tor Browser, zeg maar – creëert een willekeurig gekozen pad via (minstens) drie Tor-relays (de eerste is de entry oftewel guard node; de laatste is de exit node), waarna de data via dit circuit worden verstuurd.

De data tussen de client en de exit node worden hierbij versleuteld volgens het onion routing-principe, met een meerlagige encryptie in de applicatielaag van de protocolstack. Elke opeenvolgende node in het circuit verwijdert hiervan telkens één encryptielaag, zoals het pellen van een ui (onion).

Alleen de entry node weet wie de gebruiker is, maar alleen de exit node heeft toegang tot de inhoud van het pakket en verstuurt die naar de uiteindelijke doelserver. Op https://kwikr.nl/torano toont een geanimeerde afbeelding mooi in hoeverre Tor anonimiseert, al dan niet in combinatie met https.

Tor Browser

Met behulp van speciale Tor2web-proxies kun je ook met een standaardbrowser onion services bereiken – het volstaat .onion in de url te vervangen door bijvoorbeeld proxies als .onion.ly of .onion.ws. Maar je gaat dan natuurlijk wel goeddeels voorbij aan het anonimiteitsprincipe van Tor, omdat je alles in handen legt van zo’n Tor2web-gateway. Wil je onion services op een veiligere manier bereiken, dan gebruik je beter de Tor Browser, beschikbaar voor Windows, macOS, Linux en Android.

V3 van ‘The Hidden Wiki’ in Google Chrome via Tor2web-proxy onion.ly.

Onion services: wat?

De anonimiteit kan helaas wel in het gedrang komen, bijvoorbeeld wanneer een (regerings)instantie zowel de entry als de exit nodes in handen heeft en het verkeer aan beide uiteinden correleert.

Bij zogeheten onion services – voorheen hidden services genoemd – is er niet langer een exit node en blijft al het verkeer binnen het Tor-netwerk. Zo’n onion service heeft zelf geen ip-adres, maar een adres dat eindigt op .onion en dat is samengesteld op basis van de publieke sleutel van de service (ed25519).

Onion services: hoe?

De onion service maakt eerst contact met drie Tor-relays, via een willekeurig circuit, en verzoekt deze om als ‘introduction points’ te fungeren. Dat houdt in dat de service zich alleen nog zal laten benaderen via een van deze drie nodes.

Vervolgens stelt de service een descriptor samen. Deze bevat de adressen van de drie nodes en de bijbehorende authenticatiesleutels, waarna de service de descriptor met zijn private sleutel ondertekent. De service uploadt deze descriptor vervolgens via een willekeurig circuit naar een gedistribueerde hash-tabel die op gemachtigde Tor-relays wordt bijgehouden: de zogeheten hidden service directory (HSDir). Qua functionaliteit is die enigszins vergelijkbaar met DNS voor reguliere domeinnamen.

Stel, je voert het onion-adres van een service in de Tor Browser in. Die raadpleegt daarop de hash-tabel in Tor en vraagt naar de betreffende descriptor. De handtekening wordt geverifieerd aan de hand van (de publieke sleutel die verwerkt is in) het .onion-adres van de service.

De client selecteert vervolgens, via twee tussenliggende nodes, een Tor-relay die wordt gevraagd op te treden als een ‘rendezvous point’. Tegelijk bezorgt de client deze relay een ‘one-time secret’ (ots). De client geeft tevens het adres van het rendezvous point en het ots door aan een van de introduction points, dat dit op zijn beurt doorgeeft aan de onion service. Als alles goed is, legt deze service nu een connectie via drie tussenliggende nodes met het rendezvous point, zodat dat een versleutelde en geanonimiseerde verbinding kan opzetten met de client.

Het introduction point (en de HSDir) heeft zijn werk gedaan: het is nu aan het rendezvous point.

Onion services v3

Momenteel zijn Tor onion services bij de derde generatie (v3) aanbeland en zijn services met de vorige versie (v2) nauwelijks nog bereikbaar, althans niet meer met de recentste versies van de Tor Browser (vanaf 10.5.10).

Voor eindgebruikers is het meest opvallende verschil tussen v2- en v3-services de lengte van het onion-adres: 16 tekens (v2) versus 56 (v3). Zo’n v3-adres gebruikt SHA3/ed25519/curve25519-cryptografie en dat is een stuk veiliger dan de versleuteling van een v2-adres (SHA1/DH/RSA1024).

Een ander belangrijk verschil is dat bij v2 de informatie voor de HSDir in platte tekst wordt geüpload naar de HSDir-relays, zodat die onder meer het onion-adres van de services te weten komen. Bij v3-services worden deze data veilig versleuteld.

Toekomst

De derde generatie onion services zijn op dit moment veruit in de meerderheid, maar intussen wordt ook al aan opvolger v4 gewerkt. Deze zou niet zo cpu-intensief zijn en dus minder stroom vereisen. Ook zouden er een betere foutenafhandeling en bootstrap-rapportering komen, en wordt de beveiliging verder opgeschroefd. Of ook de snelheid een boost krijgt, is nog even afwachten. Helaas heeft het Tor Project hierover vooralsnog geen technische documentatie gepubliceerd.

Tor mag dan geassocieerd worden met DarkNet en een gateway naar heel wat illegale content en transacties zijn, het netwerk is tegelijk een zegen voor wie zijn privacy koestert of voor wie het slachtoffer van repressieve instanties dreigt te worden. Het ziet er in deze wereld helaas niet naar uit dat zulke technologieën snel overbodig zullen worden en dus is er, wat ons betreft, voor onion services nog een belangrijke rol weggelegd.

De ontwikkeling van Tor onion services

1996 De eerste “v0” onion router wordt als experiment opgezet in een virtuele omgeving

1998 “V1” Tor wordt ontwikkeld en creëert een verborgen internet voor de Amerikaanse regering

2003 Verdere netwerk- en protocolverbeteringen leiden tot de Tor onion v2-generatie

2006 US Naval Research Laboratories draagt Tor over aan het Tor Project

2015-2018 De Tor onion v3-generatie wordt ontwikkeld

2019 Begin van de ontwikkeling van Tor onion v4

2020 Tor (0.4.4.x) meldt serverbeheerders en clients dat v2 zal worden stopgezet

2021 (oktober) Tor Browser ondersteunt niet langer v2

Geschreven door: Toon van Daele op

Category: Website, Algemeen

Tags: netwerk, tor, onion, index