Als we internetbankieren, weten we dat we moeten opletten dat de verbinding beveiligd is door HTTPS Secure, kortweg HTTPS. Dat herken je o.a. door een hangslotje in de adresbalk van je browser. Deze beveiliging heeft alleen betrekking op de inhoud van het netwerkverkeer, maar niet op het transport. Iemand die een dergelijk pakket onderschept, ziet niet wat je aan het doen bent, maar ziet wel dat jouw computer verbinding heeft met de server van de bank. Hij weet dan vrijwel zeker dat jij met bankzaken bezig bent en dus wellicht een interessant doel voor hem bent. The Onion Router is een middel om dit transport te beveiligen.

 

 

 

Om informatie over het netwerk van de ene computer naar de andere te versturen, wordt dit opgedeeld in pakketten (zie afbeelding 1). Die krijgen stuk voor stuk het netwerkadres van de zendende en ontvangende computer. Elk pakket gaat vervolgens het netwerk op en bereikt via een reeks knooppunten de eindbestemming. De knooppunten heten routers en weten aan de hand van het ontvangstadres waarnaartoe ze de pakketten moeten doorsturen. Dit proces heet routing.

 

 Eenmaal op de eindbestemming aangekomen kan de ontvanger weer antwoorden, omdat het verzendadres bekend is. Op deze manier vindt communicatie in twee richtingen plaats. Gevolg is wel dat het gemakkelijk is om te traceren welke computers met elkaar communiceren. Je hoeft alleen maar een netwerkpakket te onderscheppen om het adres van zowel de zendende als ontvangende computer te achterhalen. Onion routing voorkomt dit.

 

 Onion routing

 

De afzender versleutelt het pakket eerst meerdere keren en stuurt het dan naar de eerste router (afbeelding 1). Die kan met zijn sleutel alleen de buitenste laag ontcijferen. Deze laag bevat enkel het adres van de volgende router. De eerste router stuurt het pakket door naar deze tweede router die op zijn beurt alleen de tweede laag kan ontcijferen. Die onthult alleen het adres van de derde router. Dit proces gaat zo door tot de laatste router. Die ontcijfert zowel de laatste laag als de inhoud van het oorspronkelijke pakket en stuurt dit naar de uiteindelijke ontvanger. Let wel, als het oorspronkelijke pakket niet beveiligd was door bijvoorbeeld HTTPS, was de inhoud van het pakket nu leesbaar voor een onderschepper. Onion routing is alleen een beveiliging voor het transport.

 

 Deze methode heet onion routing, omdat het pakket tijdens zijn reis als een ui laag voor laag wordt afgepeld. Een dergelijk pakket met meerdere versleutelde lagen heet een onion. Het effect van dit alles is dat elke router alleen de vorige en volgende router kent. Zelfs de ontvanger weet niet wie de oorspronkelijke afzender is, omdat hij alleen het adres van de laatste router ziet. Als je een onion onderschept, ben je weliswaar op de hoogte van de communicatie tussen twee routers, maar ken je niet de volledige route tussen de afzender en de ontvanger. Een onion volgen is eveneens lastig. Door het afpellen van de buitenste laag is het uitgaande pakket niet meer dezelfde als toen hij binnenkwam bij de router.

 

 Om antwoord te geven, stuurt de ontvanger een pakket naar de laatste router, d.w.z. laatste ten opzichte van de oorspronkelijke afzender. Die router versleutelt het pakket met zijn sleutel en stuurt het naar de voorlaatste. Die versleutelt het op zijn beurt nogmaals en stuurt het naar zijn voorganger. Het pakket krijgt op de terugweg steeds meer laagjes, de onion wordt weer opgebouwd. Als de oorspronkelijk afzender het antwoord ontvangt, pelt hij alle laagjes weer af. Alleen hij kan dat, omdat hij alle sleutels heeft. De routers hebben alleen hun eigen sleutel.

 

 TOR

 

The Onion Router (Tor) is een project dat onion routing gebruikt om de privacy te beschermen op internet. Tor ontwikkelt onder andere client- en serversoftware en de Tor Browser om anoniem te surfen. Er is ook een fysiek netwerk van onion routers nodig. Tor gebruikt daartoe een wereldwijd netwerk van routers die door vrijwilligers worden onderhouden. Deze routers melden zich aan bij een Tor directory server. Als je gebruik maakt van het Tor netwerk, haalt de client hier een willekeurige selectie van Tor routers op. De route van de envelop in afbeelding 1 is daardoor niet vast maar varieert.

 

 TOR browser

 

Om anoniem via het Tor netwerk te surfen, is de Tor Browser de makkelijkste manier. Firefox is de basis van deze browser. De Tor Browser regelt niet alleen onion routing. Hij is ook uitgerust met extra veiligheidsmaatregelen. Zo verwijdert hij de history en cookies als je de browser afsluit. Ook is NoScript standaard geïnstalleerd. NoScript is een plug-in voor Firefox om JavaScript, Flash en dergelijke te beperken of te blokkeren. Dit soort content is behalve een veiligheidsrisico ook een manier om gegevens over je computer te krijgen.

 

 Sommige distributies leveren een pakket om de Tor Browser te installeren. Zo levert Fedora het pakket torbrowser-launcher. Ook zonder pakket is de installatie erg eenvoudig (zie afbeelding 2).

 

 

 

Afbeelding 2: De Tor Browser start de eerste keer op

 

 Ga naar de downloadpagina (zie de link aan het eind van dit artikel) en download afhankelijk van je besturingssysteem de 32- of 64-bits versie van de Tor Browser. Pak de tar ball uit en start de browser als volgt op:

 

 *********************start listing*****************

 

 cd <pad_naar_tor_browser>

 

./start-tor-browser.desktop

 

 *********************eind listing*****************

 

 Het duurt even voordat een scherm met twee opties verschijnt. In het algemeen voldoet de bovenste optie, een directe verbinding met het Tor netwerk. Klik op Connect. Nu moet je geduld hebben, terwijl de browser een route via het Tor netwerk opzet. Wees niet verbaasd als dat meer dan een minuut duurt en al die tijd weinig lijkt te gebeuren.

 

 Uiteindelijk verschijnt de welkomstpagina van de Tor Browser. Test of je daadwerkelijk van het Tor netwerk gebruik maakt door te klikken op Test Tor Network Settings. Je gebruikt de Tor Browser verder, zoals je normaal ook surft. Anonimiteit heeft wel een prijskaartje. Browsen gaat trager en sommige sites werken maar gedeeltelijk. Aanpassen van settings en het installeren van plug-ins is natuurlijk mogelijk, maar vraag jezelf wel af of je daarmee niet voorbij gaat aan het doel van de Tor Browser.

 

 TOR server

 

Als je meer wilt dan alleen anoniem surfen, dan heb je een Tor server nodig. We beschrijven alleen een lokale installatie. Daarvoor voldoen de standaard instellingen en is geen configuratie nodig.

 

 

Het pakket tor is in de repository van veel Linux distributies beschikbaar. Installatie is dus eenvoudig. In het geval dat de pakketmanager het pakket torsocks niet automatisch mee installeert, is het raadzaam om dit alsnog te installeren. Torsocks is een hulpprogramma dat het gebruik van Tor vergemakkelijkt. Start nu de Tor server op:

 

 

*********************start listing*****************

 

 systemctl start tor

 

 *********************eind listing*****************

 

 Vervolgens moet je wachten totdat Tor een volledig pad van onion routers heeft opgezet. Omdat dit lang duurt, 1 of 2 minuten is niet uitzonderlijk, is het nuttig om de status te controleren voordat je verder gaat. Dit kan op de volgende manier:

 

 

*********************start listing*****************

 

systemctl status tor

 

 

Sep 02 13:31:05 globe1.leusnet.teld Tor[2808]: Bootstrapped 90%: Establishing a Tor circuit

 

Sep 02 13:31:05 globe1.leusnet.teld Tor[2808]: Tor has successfully opened a circuit. Looks like client functionality is working.

 

Sep 02 13:31:05 globe1.leusnet.teld Tor[2808]: Bootstrapped 100%: Done

 

 *********************eind listing*****************

 

 Pas als je de vetgedrukte melding ziet, is Tor functioneel. De Tor server luistert standaard lokaal op poort 9050 en het netwerkverkeer moet je hiernaar omleiden. Het gemakkelijkst gaat dat via het commando torsocks. Een SSH verbinding via het Tor netwerk maak je als volgt:

 

 *********************start listing*****************

 

 torsocks ssh mijnid@123.456.7.890

 

 *********************eind listing*****************

 

 Om niet voor ieder commando torsocks te hoeven typen gebruik je het volgende commando:

 

 *********************start listing*****************

 

 . torsocks on

 

 *********************eind listing*****************

 

 Let op de punt aan het begin! Alle commando’s hierna gebruiken nu het Tor netwerk. Voor bovengenoemde SSH sessie volstaat nu:

 

 ********************start listing*****************

 

 ssh mijnid@123.456.7.890

 

 *********************eind listing*****************

 

 orsocks werkt alleen vanaf de commandoregel. Als je een programma opstart via het grafische menu, moet je zijn settings aanpassen om het netwerkverkeer via Tor te laten lopen. Je moet aangeven dat het programma de zogenaamde SOCKS 5 proxy dient te gebruiken die lokaal op poort 9050 luistert. Hoe je die settings moet instellen, varieert natuurlijk van programma tot programma. In afbeelding 3 zie je als voorbeeld hoe dat er bij FileZilla en Firefox uitziet. Let op het vinkje bij Remote DNS voor Firefox. Dit zorgt ervoor dat Firefox voor het opzoeken van een IP-adres bij de hostnaam in de URL, eveneens de SOCKS proxy gebruikt. Zonder dat vinkje gaat deze zogeheten DNS request buiten Tor om hetgeen afbreuk doet aan je anonimiteit.

 

 

 

Afbeelding 3: Instellingen voor FileZilla en Firefox om van het Tor netwerk gebruik te maken

 

 Hidden service

 

Bij onion routing weet de ontvanger niet wie de afzender is. Hij ziet immers alleen het adres van de laatste router. In bepaalde situaties wil de ontvanger ook anoniem zijn. In een land met beperkte persvrijheid wil je bijvoorbeeld graag op een anonieme server informatie beschikbaar stellen. Anders gezegd, je wilt een website die je niet kan benaderen via een publiek IP-adres. De hidden service van Tor maakt dit mogelijk.

 

 Een hidden service gebruikt een zogenaamd onion adres. Dat is een domeinnaam die eindigt op .onion. De DuckDuckGo zoekmachine is bijvoorbeeld ook als onion site benaderbaar:

 

 http://3g2upl4pq6kufc4m.onion

 

 In tegenstelling tot de gebruikelijke top level domeinnamen zoals .nl of .com is. onion niet officieel. Daardoor vindt een domain name server (DNS) hier geen IP-adres bij. De Tor directory server weet wel hoe een onion adres benaderd moet worden. Met de Tor Browser is er daarom voor de gebruiker geen verschil tussen het bezoeken van een onion site en een gewone site.

 

 Je moet natuurlijk wel zo’n onion adres weten. Zoekmachines vinden die niet, omdat het een hidden service is. Er zijn lijsten met onion sites en aan het eind van het artikel staan hiervan enkele links. Verwacht overigens niet een uitgebreide hidden online wereld, want onion sites zijn er maar beperkt.

 

 Om informatie op een onion site ook voor een browser zonder Tor toegankelijk te maken is Tor2web ontwikkeld. Je hoeft alleen maar de domeinnaam .onion te veranderen in .onion.link of onion.to en dat in te voeren in de browser. Voor bovengenoemde URL is dat:

 

 http://3g2upl4pq6kufc4m.onion.link

 

http://3g2upl4pq6kufc4m.onion.to

 

 De Tor2web server maakt via het Tor netwerk verbinding met de hidden service en stuurt de webpagina weer naar jouw browser door. Let wel, met Tor2web surf je zelf niet anoniem. Alleen de hidden service is anoniem.

 

 Tot slot

 

Tor is een krachtig hulpmiddel om anoniem op internet informatie uit te wisselen. Toch blijft 100% anonimiteit lastig. Browser extensies, maar ook applicaties zelf kunnen informatie lekken. Denk hierbij met name aan de boven reeds genoemde DNS requests. Om dat met zekerheid te voorkomen zijn extra maatregelen nodig.