Afgelopen donderdag stond er een mooi artikel van Maurits Martijn op de Correspondent. Over hoe je simpelweg gebruikers van openbare draadloze netwerken kunt hacken. En er zo achter kunt komen welke websites ze bezoeken, met welke andere draadloze netwerken ze eerder contact hebben gezocht (en dus waar ze eerder zijn geweest), en zelfs hun wachtwoorden kunt achterhalen. Het erge is: ik weet dit eigenlijk al jaren, maar had het me de ernst daarvan nooit echt gerealiseerd. (Soms zit je zo dicht op de materie, dat je essentie ervan even niet meer ziet.) En het is eerlijk gezegd behoorlijk ernstig...
Even voor de duidelijkheid een korte beschrijving van wat er aan de hand is. (Maurits heeft in het artikel met opzet wat informatie weggelaten, maar daardoor begrijpen - afgaande op de reacties - sommige mensen het niet.) Samen met Wouter Slotboom heeft Maurits een aantal gebruikers van een openbaar draadloos (WiFi) netwerk gehackt. Dit kan op een tweetal verschillend manieren gedaan worden.
Belangrijk om te weten is dat voor deze aanvallen geen speciale apparatuur nodig is (het lukt prima met een laptop of smartphone met daarop de juiste software geïnstalleerd), en dat het geen donder uitmaakt of het openbare draadloze netwerk al dan niet met een wachtwoord is beveiligd. Ik vraag me overigens af of een vergelijkbare aanval ook mogelijk is op WiFi guest netwerken die veel mensen thuis aanbieden, soms als standaard onderdeel van hun Internet abonnement, zoals bijvoorbeeld Ziggo dat aanbiedt. (Lijkt me een mooie opdracht om dat eens grondig uit te zoeken.) Als dat zo is dan ben je zelfs thuis niet meer veilig.HTTPS (ofwel SSL ofwel TLS; alle drie de termen betekenen min of meer hetzelfde) zou in theorie tegen een dergelijke man-in-the-middle aanval moeten beschermen. Het probleem is dat dit in de praktijk absoluut niet werkt. (En dat heeft Maurits met dit artikel even keihard duidelijk gemaakt, en dat was nou precies wat ik me even niet in al zijn glorieuze omvang gerealiseerd had.) In essentie bestaat de bescherming er uit dat de browser met behulp van een zogenaamd certificaat de identiteit van de website verifieert. Als de browser vindt dat het klopt, laat het een slotje zien, en wordt een veilige verbinding opgezet. En als het niet klopt dan volgt een duidelijke foutmelding. Om dit te laten werken moet de browser wel een HTTPS verbinding opzetten met de site. En geen gewone, onbeveiligde, HTTP verbinding. In de praktijk is de browser daar eenvoudig toe te verleiden. En dat is dan ook precies wat de hacks van Maurits en Wouter doen.
Ze laten de browser van het slachtoffer een onbeveiligde verbinding met de laptop van de hacker maken, alsof dit de webserver van de eigenlijke website is. De laptop zet vervolgens een veilige verbinding met de echte website op, en stuurt de data van de browser van het slachtoffer door naar de webserver, en omgekeerd. Omdat de verbinding tussen de browser en de laptop van de hacker onbeveiligd is, kan de laatste alles meelezen. Het is dus, voor de duidelijkheid, niet nodig om een vals certificaat te maken, of om encryptie te kraken.
Voor de duidelijkheid: in theorie zijn smartphone of tablet apps minder gevoelig voor dit soort aanvallen, omdat deze apps zelf direct een veilige verbinding op kunnen zetten met de servers die ze gebruiken, als ze tenminste op de juiste manier geprogrammeerd zijn. Of dit in de praktijk ook zo is, moet nog maar blijken...
Wat is hier tegen te doen? Geen openbaar WiFi netwerk gebruiken, in ieder geval niet voor gevoelige activiteiten of voor sites waar je moet inloggen. Je kunt ook, zoals het artikel suggereert, een VPN opzetten. Maar ik vraag me af of die niet op een vergelijkbare manier in de praktijk te omzeilen zijn... (Lijkt me ook een mooie afstudeer opdracht ;-) Voor die mensen die niet telkens een VPN op willen zetten, of die gewoon zeker willen weten dat hun verbinding echt end-to-end versleuteld is (en dat niet iemand ergens op de Internet backbone een vergelijkbare hack uitvoert), zijn er ook nog de volgende oplossingen.
Al met al weer een heel gedoe, en je moet maar hopen dat voor alle belangrijke sites die jij bezoekt die plugins inderdaad voor een veilige verbinding zorgen.
Ik leef mee met Evert Starink (in de comments van het Correspondent artikel), die terecht aangeeft dit niet te kunnen (en ook niet te willen) begrijpen. Want als het advies is: gebruik geen openbaar WiFi netwerk, dan is eigenlijk het advies: gebruik alleen thuis Internet. Dat is natuurlijk geen optie.
En daarmee komen we op de kern van probleem dat het artikel eigenlijk bloot legt. In de praktijk is WiFi (en eigenlijk het Internet) dus verschrikkelijk onveilig. En ondertussen doen we er wel allemaal verschrikkelijk veel belangrijke, risicovolle, waardevolle, dingen mee. We internetbankieren, we bezoeken dating sites, we kopen van alles en nog wat in web winkels, we werken thuis of lezen onze email nog even op het terras.
Alleen de super-paranoïde web surfer zal het misschien lukken om dit allemaal voldoende veilig te doen. Maar de gemiddelde gebruiker weet niet beter, en is (bijvoorbeeld) niet zomaar in staat om zijn email programma zo in te stellen dat zijn email alleen via een beveiligde verbinding wordt opgehaald en verzonden. De standaard instellingen van de meeste programma's en apps, en van de meeste web diensten, zijn niet veilig genoeg.
Voor de veiligheid wordt teveel oplettendheid van de gebruiker verwacht. Er moet hem bijvoorbeeld iets opvallen (afwezigheid van positieve feedback zoals een slotje, en dan zelfs goed opletten of het wel een 'echt' slotje is). Als hij een waarschuwing krijgt moet hij begrijpen wat er staat (meestal godsonmogelijk) en moet hij de juiste beslissing nemen. Om het zekere voor het onzekere te nemen is het verstandig de transactie af te breken. Maar dat kan in de praktijk wel eens heel erg lastig of verveld zijn (als je echt die informatie van die website nodig hebt, bijvoorbeeld, of als je echt die aankoop op dit moment moet doen).
De gebruiker wordt geacht een expert te zijn. Dat was misschien nog enigzins begrijpelijk toen het Internet bedacht werd. Maar dat is nu echt niet meer realistisch. Sterker nog: het is een roekeloze aanname van systeem ontwikkelaars, die mensen in de praktijk met levensgrote problemen opzadelt.
Het is mij al langer een doorn in het oog dat, als het om ICT gaat, consumenten veel minder rechten hebben dan als ze bijvoorbeeld een auto kopen. Op een auto krijg je garantie. Op software niet. Als een auto alleen maar veilig te besturen zou zijn door een Formule 1 coureur, dan zou die auto niet worden toegelaten op het Nederlandse wegennet.
Nou weet ik we dat er goede argumenten zijn om software niet net zo te behandelen als bijvoorbeeld auto's (zo'n analogie gaat natuurlijk snel mank), maar de gevolgen worden nu wel heel eenzijdig op de consument en de samenleving als geheel afgewenteld. Ik heb hier ook geen pasklare antwoorden op. Maar ik vind wel dat hier wat fundamenteler en breder over moet worden nagedacht.
Dank voor deze verdere uitleg. Er is echter één groot verschil met de auto die u zelft aanhaalt: hoewel we niet allemaal een superlicentie hoeven te hebben om in een auto te rijden (die heb je nodig om met een F1 auto te mogen racen), hebben we wel allemaal een rijbewijs nodig, waarvoor zowel een theorie als een praktijkexamen verplicht zijn. Van praktisch alle andere moderne (consumenten) apparatuur verwachten we daarentegen dat we die zonder enige kennis van zaken veilig kunnen gebruiken. Is dat niet vreemd?
Natuurlijk moet er aandacht zijn voor veiligheid-by-design. Maar daarmee vang je niet alles af; technologie, ook die voor hacken, ontwikkelt zich. HTTP wordt nu toegepast voor dingen waar het in eerste instantie nooit voor bedoeld is geweest. Dan kan je toch van de ontwikkelaars niet verwachten dat ze dat hadden moeten voorzien?
Waar het gaat om de benodigde kennis en vaardigheden, vind ik achteraf gezien de ouderwetse term “elektronische snelweg” nog niet zo heel gek gekozen: je hebt kennis en vaardigheden nodig om je daar veilig over te bewegen.
Er is inderdaad een verschil (zoals al gezegd; iedere analogie gaat wel ergens mank). Maar ik denk niet dat zoiets als een internetrijbewijs helpt. Sterker nog, ik vind dat dat niet nodig zou moeten zijn. Waarom moet een Internet gebruiker weten dat hij geen publieke WiFi netwerken mag vertrouwen? Waarom moet een Internet gebruiker weten dat hij niet zomaar een email attachment mag openen? Die systemen zijn juist oorspronkelijk zo ontworpen om het makkelijk te maken. Dan vind ik het een ontwerpfout als dat uiteindelijk niet zo veilig blijkt te zijn. En niet iets wat je de gebruiker mag verwijten: “hij had beter moeten weten”.
Ik verwijt de ontwerpers van HTTP niet dat ze HTTP hebben bedacht. Ik verwijt eigenlijk ons allemaal dat we zonder na te denken het Internet voor steeds belangrijker zaken zijn gaan gebruiken (zowel als aanbieders van diensten als consumenten), zonder over de risico’s na te denken, en als er dan eens een probleem is er een knutseltje bij te verzinnen om dat ene probleem te verhelpen. Maar uiteindelijk geldt: wat je ook probeert, een fiets wordt nooit een auto. Dus we moeten op zoek naar een fundamentelere aanpak.
Het blijft mij wat te globaal: Is httpS nou wel of niet veilig? Ik dénk van wel. Hoe kan een browser worden verleid tot http ipv https. Voorbeelden? Kan zo b.v. De rabobank App om de tuin geleid worden?
Het internet is ontworpen door en voor specialisten en pas later gekaapt door het grote publiek dat wel de voordelen wilde, maar niet de inspanning wilde opbrengen om de werking (of aanwezige cultuur) te begrijpen.
Zeggen dat anderen moeten zorgen dat het internet veilig is voor iedereen, is als iemand die boos is op de fabrikant als hij zich met een (goedgekeurde) kettingzaag in het been zaagt. Diezelfde kettingzaag verliest zijn bruikbaarheid als deze veilig gemaakt moet worden voor gebruik door leken. Koksmessen geldt hetzelfde voor.
Het kan zijn dat het Internet zich doorontwikkelt tot een product dat veilig is voor leken, maar zo ver zijn we nog niet. De handel suggereert echter anders: iedereen kan een computer beheren, of een netwerk configureren, als je de reclame mag geloven. Dat kan je de bouwers van het netwerk echter nauwelijks aanrekenen.
Terug naar de verkeersvergelijking: Er is geen recht om zelf bestuurder van een auto te mogen zijn, en er zijn alternatieven.
Mopperen dat de wegbeheerder nog niet voor dusdanig veilige wegen heeft gezorgd dat ook een kind veilig naar Frankrijk kan rijden achten we onzinnig, dus waarom verwacht je dit hier wel?
Ik kreeg gisteren (7-5-2016) een notificatie dat er een reactie was op mijn post.
Het wordt een beetje ouwe koeien verhaal. Als ik de reactie van Hans lees gaat hij niet in op mijn vraag lijkt me.
Ik heb geen zin om het hele artikel nogmaals te lezen…
Worden MAC adressen niet alleen op één lokaal netwerk gebruikt? deze kunnen toch niet gerouteerd worden?
Ik ben het overigens met je eens dat ik wel benieuwd ben naar de scheiding van het publieke en persoonlijke WiFi netwerk op de routers van Ziggo en UPC.
Er wordt vaak geschreven “met een laptop” wat suggereert dat iemand in de buurt zou moeten zijn om die te bedienen. Maar wat ook kan is dat er ergens een kleine computer verborgen wordt ‘opgehangen’ die zoveel mogelijk gegevens logt, en dat die computer na een paar dagen weer wordt opgehaald.
in antwoord op je vraag of bijvoorbeeld gast-netwerken van Ziggo ook zo zijn te misbruiken: http://tweakers.net/nieuws/94699/verkeer-upc-klanten-te-onderscheppen-via-vervalste-wifispots.html
Bij UPC kan het blijkbaar redelijk makkelijk, Ziggo heeft het iets beter voor elkaar.
Hartelijk dank, maar het beantwoord niet helemaal mijn vraag. Wat ik graag zou willen weten is of, als een aanvaller verbinding maakt met het gasten WiFi netwerk op mijn router, of hij dan ook mijn eigen communicatie op mijn eigen interne WiFi netwerk kan onderscheppen (dmv ARP spoofing bijvoorbeeld).
Dit is toch een heel ander punt? Als Ziggo het publieke WiFi en jouw thuis WiFi met elkaar verbonden heeft, is dat niet best. Waar het hier over gaat is een WiFi netwerk an sich, en niet over technieken als vlans.
Beide netwerken zijn met elkaar verbonden, al was het maar omdat beide netwerken via de zelfde kabel (ADSL, glas of anderszins) met het Internet zijn verbonden, en vaak door dezelfde router worden verwerkt. D evraag is hoe goed ze van elkaar zijn afgescheiden en of ARP spoofing van het ene naar het andere WiFi netwerk mogelijk is.
Ik reageer hieronder even, anders wordt het onleesbaar ;)