Een artikel dat eerder deze week is gepubliceerd op de open-voor-alles-bloggers site Medium heeft voor een aantal angstaanjagende koppen gezorgd.
Het artikel is geschreven als een onafhankelijk onderzoek door een auteur die alleen nusenu
heet:
How Malicious Tor Relays are Exploiting Users in 2020 (Part I)
23% van de exit-capaciteit van het Tor-netwerk heeft Tor-gebruikers aangevallen
Losjes gezegd, die strapline impliceert dat als je een website bezoekt met behulp van Tor, meestal in de hoop om anoniem te blijven en weg te blijven van ongewenste bewaking, censuur of zelfs gewoon oude web tracking voor marketingdoeleinden…
…dan zal één op de vier van die bezoeken (misschien wel meer!
…dan zal een op de vier bezoeken (misschien wel meer!) worden onderworpen aan de doelbewuste controle van cybercriminelen.
Dat klinkt meer dan alleen verontrustend – het klinkt alsof het gebruik van Tor je nog minder veilig zou kunnen maken dan je al bent, en dat daarom teruggaan naar een gewone browser voor alles een belangrijke stap zou kunnen zijn.
Dus laten we eens snel kijken hoe Tor werkt, hoe oplichters (en landen met strenge regels over censuur en bewaking) het zouden kunnen misbruiken, en hoe eng de bovengenoemde kop werkelijk is.
Het Tor-netwerk (Tor is de afkorting van onion router, om redenen die straks duidelijk zullen zijn als je je een ui voorstelt die uit elkaar valt terwijl je hem pelt), dat oorspronkelijk is ontworpen door de Amerikaanse marine, heeft als doel:
- Je ware locatie op het netwerk te verhullen terwijl je surft, zodat servers niet weten waar je bent.
- Het moeilijk maken voor iedereen om “de puntjes op de i te zetten” door uw surfverzoeken terug te voeren naar uw computer.
Op dit punt denkt u misschien: “Maar dat is precies wat een VPN doet, en niet alleen voor mijn browsen, maar voor alles wat ik online doe.”
Maar dat is niet zo.
Een VPN (virtueel privénetwerk) versleutelt al uw netwerkverkeer en stuurt het in gecodeerde vorm door naar een VPN-server die wordt gerund door uw VPN-provider, waar het wordt gedecodeerd en op internet wordt “geïnjecteerd” alsof het afkomstig is van die VPN-server.
Alle netwerk antwoorden worden dus ontvangen door uw VPN-provider namens u, en geleverd terug naar u in versleutelde vorm.
De versleutelde verbinding tussen uw computer wordt genoemd een VPN-tunnel, en is, in theorie, onzichtbaar voor, of op zijn minst unsnoopable door, andere mensen online.
Zoals u ziet, pakt een VPN het eerste hierboven genoemde probleem aan: het verhullen van uw ware locatie op het netwerk.
Maar een VPN pakt niet het tweede probleem aan, namelijk het moeilijk maken voor iedereen om “de puntjes op de i te zetten”.
Zeker, een VPN maakt het voor de meeste mensen moeilijk om de puntjes op de i te zetten, maar het voorkomt niet dat iedereen dat doet, om de eenvoudige reden dat de VPN-provider altijd weet waar uw verzoeken vandaan komen, waar ze naartoe gaan, en welke gegevens u uiteindelijk verstuurt en ontvangt.
Uw VPN-provider wordt dus in wezen uw nieuwe ISP, met dezelfde mate van zichtbaarheid in uw online leven die een gewone ISP heeft.
Waarom niet twee VPN’s gebruiken?
Op dit punt denkt u waarschijnlijk: “Waarom niet twee VPN’s achter elkaar gebruiken? In jargontermen, waarom niet een tunnel-binnentunnel bouwen?
U zou uw netwerkverkeer versleutelen zodat VPN2 het kan ontsleutelen, het dan weer versleutelen zodat VPN1 het kan ontsleutelen, en het dan weer naar VPN1 sturen.
Dus VPN1 zou weten waar uw verkeer vandaan kwam en VPN2 zou weten waar het heen ging, maar tenzij de twee providers samenspanden zouden ze elk maar de helft van het verhaal weten.
In theorie zou je aan beide bovenstaande doelen hebben voldaan door een soort verdeel-en-heers-aanpak, omdat iedereen die je zou willen opsporen eerst ontsleutelde verkeerslogs van VPN2 zou moeten krijgen, en vervolgens gebruikersnaamgegevens van VPN1 voordat ze zouden kunnen beginnen met “de puntjes op de i te zetten”.
Waarom stoppen bij twee?
Zoals u zich kunt voorstellen, zelfs bij gebruik van twee VPN’s, bent u niet helemaal veilig.
Ten eerste, door steeds dezelfde twee VPN’s te gebruiken, is er een duidelijk patroon in uw verbindingen, en daardoor een consistentie in het spoor dat een onderzoeker (of een oplichter) zou kunnen volgen om te proberen u terug te vinden.
Voor alles dat uw verkeer een ingewikkelde route volgt, neemt het niettemin elke keer dezelfde route, dus het kan de tijd en moeite waard zijn voor een crimineel (of een agent) om terug te werken door beide lagen van VPN, zelfs als dat betekent dat er twee keer zoveel gehackt moet worden of twee keer zoveel arrestatiebevelen moeten worden uitgevaardigd.
Ten tweede is er altijd een mogelijkheid dat de twee VPN-providers die u kiest uiteindelijk eigendom zijn van of worden beheerd door hetzelfde bedrijf.
Met andere woorden, de technische, fysieke en juridische scheiding tussen de twee VPN’s is misschien niet zo groot als je zou verwachten – tot het punt dat ze misschien helemaal niet hoeven samen te spannen om je op te sporen.
Dus waarom zou je niet drie VPN’s gebruiken, met één in het midden die niet weet wie je bent en waar je uiteindelijk naartoe gaat?
En waarom zou je die VPN’s niet regelmatig veranderen, om nog meer mix-and-mystery aan de vergelijking toe te voegen?
Wel, sterk vereenvoudigd, is dat zo’n beetje hoe Tor werkt.
Een pool van computers, aangeboden door vrijwilligers over de hele wereld, fungeren als anonimiserende relais om te voorzien in wat in wezen een gerandomiseerde, multi-tunnel “mix-and-mystery” VPN is voor mensen die surfen via het Tor-netwerk.
Het afgelopen jaar heeft het totale aantal relais dat beschikbaar is voor het Tor-netwerk geschommeld tussen de 6000 en 7000, waarbij elk Tor-circuit dat wordt opgezet drie relais gebruikt, grotendeels willekeurig, om een soort VPN met drie tunnels te vormen.
Jouw computer kiest welke relais hij gebruikt, niet het netwerk zelf, dus er komt inderdaad een hoop steeds veranderende mix-and-mystery bij kijken om je verkeer door het Tor-netwerk te sturen en weer terug.
Uw computer haalt de publieke encryptiesleutels op voor elk van de relais in het circuit dat hij aan het opzetten is, en scrambelt vervolgens de gegevens die je verstuurt met behulp van drie ui-achtige encryptielagen, zodat bij elke hop in het circuit het huidige relais alleen de buitenste encryptielaag kan verwijderen voordat het de gegevens doorgeeft aan de volgende.
Relay 1 weet wie je bent, maar niet waar je heen gaat of wat je wilt zeggen.
Relay 3 weet waar je heen gaat, maar niet wie je bent.
Relay 2 houdt de andere twee relais uit elkaar zonder te weten wie je bent of waar je heen gaat, waardoor het voor relais 1 en 3 veel moeilijker is om samen te spannen, zelfs als ze daartoe geneigd zijn.
Het is niet zo willekeurig
In de bovenstaande grafiek ziet u dat de groene lijn in het midden speciale Tor-relais aangeeft die bekend staan als bewakers, of voluit ingangsbewakers, die de subset van werkende relais zijn die geschikt worden geacht voor de eerste hop in een 3-relais circuit.
(Om technische redenen gebruikt Tor eigenlijk dezelfde entry guard voor al je verbindingen voor ongeveer twee maanden tegelijk, wat de willekeurigheid in je Tor circuits enigszins vermindert, maar dat detail zullen we hier negeren.
Op dezelfde manier geeft de oranje lijn onderaan exits aan, of exit nodes voluit, dat zijn relais die betrouwbaar genoeg worden geacht om te worden geselecteerd voor de laatste hop in een circuit.
Merk op dat hier slechts ongeveer 1000 exit nodes op elk moment actief zijn, van de 6000 tot 7000 relais die in totaal beschikbaar zijn.
Je kunt waarschijnlijk zien waar dit heen gaat.
Hoewel de exit nodes van Tor niet kunnen zien waar je bent, dankzij de anonimiserende effecten van de entry guard en middle relay (die regelmatig verandert), krijgen ze wel je uiteindelijke, gedecodeerde verkeer en de uiteindelijke bestemming te zien, omdat het de exit node is die de laatste laag van Tor’s mix-and-mystery encryptie verwijdert.
(Wanneer je via Tor naar gewone websites surft, heeft het netwerk geen andere keus dan je ruwe, originele, gedecodeerde gegevens uit te zenden voor de laatste hop op het internet, anders zou de site die je bezoekt er geen wijs uit kunnen worden.)
Met andere woorden, als je Tor gebruikt om naar een niet-HTTPS (onversleutelde) webpagina te surfen, dan kan de Tor exit node die je verkeer afhandelt niet alleen je uitgaande webverzoeken afluisteren en wijzigen, maar ook knoeien met alle antwoorden die terugkomen.
En met gemiddeld slechts 1000 exit nodes beschikbaar, hoeft een boef die de controle wil krijgen over een aanzienlijk percentage van de exits geen duizenden of tienduizenden servers op te zetten – een paar honderd is voldoende.
En dit soort ingrepen is wat nusenu
beweert te hebben ontdekt in het Tor-netwerk op een schaal die soms tot een kwart van de beschikbare exit nodes kan omvatten.
Meer specifiek beweert Nusenu dat in 2020 honderden Tor-relais in de “exit node”-lijst zijn opgezet door vrijwilligers met criminele bedoelingen en bijbedoelingen:
De volledige omvang van hun activiteiten is onbekend, maar één motivatie lijkt eenvoudig: winst. Ze voeren person-in-the-middle-aanvallen uit op Tor-gebruikers door verkeer te manipuleren terwijl het door hun exit-relais stroomt. Het lijkt erop dat ze het vooral gemunt hebben op cryptocurrency gerelateerde websites – namelijk meerdere bitcoin mixer diensten. Ze vervingen bitcoin-adressen in HTTP-verkeer om transacties om te leiden naar hun portemonnee in plaats van naar het door de gebruiker opgegeven bitcoin-adres. Bitcoin address rewriting attacks zijn niet nieuw, maar de schaal van hun operaties wel. Het is niet mogelijk om vast te stellen of zij zich ook met andere soorten aanvallen bezighouden.
Simpel gezegd beweert Nusenu dat deze oplichters erop wachten om te azen op gebruikers van cryptocurrency die denken dat Tor alleen voldoende is om zowel hun anonimiteit als hun gegevens te beveiligen, en die daarom via Tor browsen maar er niet op letten om https://
aan het begin van nieuwe URL’s die zij intypen te zetten.
.
HTTP als schadelijk beschouwd
In goede en slechte tijden kun je de https://
negeren als je URL’s intypt in je browser, en je komt nog steeds op een HTTPS site terecht, versleuteld en met een hangslot beveiligd.
Vaak zal de server aan de andere kant reageren op een HTTP-verzoek met een antwoord dat zegt: “Van nu af aan, gelieve geen gewone oude HTTP meer te gebruiken,” en uw browser zal dit onthouden en automatisch alle toekomstige verbindingen naar die site upgraden zodat ze HTTPS gebruiken.
Die “gebruik nooit meer HTTP” antwoorden implementeren wat bekend staat als HSTS, kort voor HTTP Strict Transport Security, en ze worden verondersteld om u veilig te houden tegen snooping en verkeersmanipulatie, zelfs als je nooit stopt om erover na te denken.
Maar er is een kip-en-ei-probleem, namelijk dat als de boeven uw allereerste niet-HTTPS-verbinding met een website onderscheppen die u eigenlijk alleen via HTTPS zou moeten benaderen, voordat het bericht “geen HTTPS meer” overkomt, kunnen ze in staat zijn om:
- U HTTP te laten praten naar hun booby-trapped exit node terwijl u HTTPS praat in de richting van de eindbestemming. Dit laat de uiteindelijke site denken dat je veilig communiceert, maar voorkomt dat je je realiseert dat de site van bestemming wil dat je HTTPS praat.
- Herschrijf alle antwoorden van de uiteindelijke bestemming om HTTPS-links te vervangen door HTTP. Dit voorkomt dat uw browser later in de transactie upgradet naar HTTPS, waardoor u blijft zitten met gewone oude HTTP.
Wat te doen?
Hier zijn enkele tips:
- Vergeet niet om
https://
te typen aan het begin van de URL! Om historische redenen blijven browsers standaard op HTTP werken totdat ze beter weten, dus hoe eerder u een site bezoekt door expliciethttps://
aan het begin van de URL te typen, hoe eerder u uzelf beschermt door uw bedoelingen duidelijk te maken. - Als u een website beheert, gebruik dan altijd HSTS om uw bezoekers te vertellen dat ze de volgende keer geen HTTP moeten gebruiken.
- Als u een website beheert waar privacy en veiligheid niet onderhandelbaar zijn, overweeg dan om uw site toe te voegen aan de HSTS Preload-lijst. Dit is een lijst van websites waarvoor alle grote browsers altijd HTTPS zullen gebruiken, wat de URL ook zegt.
- Als uw browser het ondersteunt, of een plugin heeft om het af te dwingen, overweeg dan HTTP-ondersteuning volledig uit te schakelen. Firefox heeft nu bijvoorbeeld een niet-standaard configuratie
dom.security.https_only_mode
. Sommige oudere sites werken misschien niet goed als deze instelling is ingeschakeld, maar als u beveiliging serieus neemt, moet u het eens proberen!
HOW TO ENABLE HTTPS-ONLY MODE IN FIREFOX 79
(Helaas is de “HTTPS-only”-optie van Firefox nog niet beschikbaar in de Tor-browser, die nog gebruikmaakt van een Extended Support Release-versie waarin deze functie nog niet is verschenen)
.