woensdag 7 september 2011

Gecertificeerd hacker - Doe het zelf DigiD

In mijn laatste blog heb ik het gehad over een groep hackers die bijna alles wat ze deden openbaar maakte op het internet, met de vraag wat er door andere personen allemaal nog verborgen wordt. Deze week is daar een antwoord op gekomen. Een manier om al het internetverkeer van iedereen te onderscheppen.


Mensen die het nieuws gevolgd hebben de laatste tijd weten natuurlijk dat ik het (grotendeels) heb over DigiNotar, de gehackte Certification Authority (CA). Maar niet iedereen zal meteen weten wat een CA is, en wat ze precies doen, dus eerst een kleine uitleg.

Normale websites die men bezoekt zijn niet versleuteld. Dat houdt in dat alle tekst zoals hij te zien is op een website, ook zo over het internet van de webserver naar de opvragende computer gaat. Iemand die dit verkeer kan zien, kan dus ook meekijken met de inhoud van alle websites die iemand bezoekt. Omdat dit bij sommige websites niet bepaald gewenst is (Denk aan dingen als internetbankieren, DigiD, enzovoort), worden "gevoelige" sites beveiligd met een SSL versleuteling.

Hoe herken je een versleutelde websites? Zoals tegenwoordig zelfs de overheid aan mensen vertelt, het alom bekende "Slotje" op een website:




Dit slotje houdt in dat al het verkeer tussen de webserver en de internetbrowser is versleuteld met een certificaat. Als je (In de meeste browsers) op het gedeelte met het slotje klikt, krijg je meer informatie te zien over de website en het gebruikte certificaat:


Hier staat dat de verbinding is gecodeerd met een 256-bits TLS codering, en dat er gebruik wordt gemaakt van een VeriSign Class 3 certificaat. Ook al zou iemand dit verkeer dus onderscheppen, is het onleesbaar. Iemand kan het wel onderscheppen, decoderen, lezen en weer coderen voordat het doorgestuurd wordt, maar dan zal het certificaat dat gebruikt wordt voor de codering niet meer geldig zijn, en zal de browser hier een waarschuwing voor geven.

Maar waarom is het certificaat niet meer geldig? Een certificaat is een certificaat? Dat klopt, iedereen kan certificaten generen. Daarom worden er in browsers gebruik gemaakt van zogenaamde "Root certificaten". Deze certificaten laten de browser (En andere applicaties) weten welke bedrijven geautoriseerd zijn om certificaten uit te geven. Elk certificaat wat door zo'n bedrijf wordt uitgegeven is voor de browser dus automatisch een goed certificaat, en zal een groene balk / tekst met een slotje opleveren. Als iemand dus zelf een certificaat uitgeeft, zal deze door de browser niet gezien worden als authentiek certificaat en zal er een waarschuwing verschjinen:


Een belangrijk punt in deze beveiligingsmethode is dus vertrouwen. We moeten de bedrijven welke certificaten uitgeven (De CA's) vertrouwen alleen goed gecontroleerde certificaten uit te geven, aan mensen die ook het recht hebben deze certificaten te gebruiken..

DigiNotar is één van deze CA's. Helaas voor DigiNotar, en een hoop andere mensen, is een Iraanse hacker achter het Amdministrator wachtwoord gekomen van de server die dit bedrijf gebruikt om de certificaten uit te geven. Met dit wachtwoord is / was het mogelijk voor deze hacker om voor elke website een geldig certificaat uit te geven, en dat heeft hij/zij ook gedaan. In totaal zijn er zelfs 531 "valse" certificaten uitgegeven (Bron). Waaronder ook certificaten voor veelgebruikte diensten als Windows Update en GMail, waardoor het voor deze hacker dus mogelijk is dit verkeer te onderscheppen zonder dat een gebruiker hier iets van door heeft, en waar geen enkele beveiliging tegen opgewassen is.

Dus wat is dan de oplossing? Het root certificaat van DigiNotar intrekken. De grote browsers (Mozilla Firefox, Google Chrome) hebben dit ondertussen ook gedaan. Dit houdt wel in dat ALLE certificaten uitgegeven door DigiNotar nu ongeldig zijn in die browsers. En helaas voor ons gebruikt de Nederlandse overheid DigiNotar certificaten voor websites als DigiD, en de belastingdienst.

Het gevolg is dat zelfs websites als DigiD en de belastingdienst veiligheidswaarschuwingen opleverde in sommige browsers. En dit is het puntje waar veel mensen en nieuwssites de mist in gaan. Deze websites zijn op geen enkele manier gehacked, en er is geen onversleutelde verbinding. Alle data wordt nog steeds verzonden over een SSL versleutelde verbinding tussen de webserver en de browser. Alleen als iemand het verkeer kan omleiden door bijvoorbeeld de DNS server (De server die de computer vertelt naar welk adres de verbinding gelegd moet worden bij een bepaald website adres) te hacken. Maar de kans dat dit kan gebeuren is heel klein. Toch?

Blijkbaar is die kans groter dan gedacht. Een nieuwskop van afgelopen maandag: "Hackers kapen dns-systeem NetNames en bekladden bekende sites". Oeps. Een combinatie van deze twee hacks houdt in dat een kwaadwillende hacker AL het internetverkeer kan omleiden naar waar hij/zij dan ook wil, zonder dat een gebruiker hier IETS van merkt. Een scenario met gevolgen zo groot, dat het de fundamenten van internetbeveiliging kan laten schudden. Maar goed dat men hier uiteindelijk toch achter gekomen is, anders zouden de gevolgen niet te overzien zijn.

Of zouden er toch nog steeds dingen niet boven zijn gekomen? Als we dit bericht van de hacker (volgens eigen zeggen) van DigiNotar moeten geloven heeft hij/zij nog 4 andere CA's onder controle: "You know, I have access to 4 more so HIGH profile CAs, which I can issue certs from them too which I will, I won't name them" (http://pastebin.com/1AxH30em). Dat zou dus betekenen dat er potentiëel honderden websites op dit moment niet veilig zijn. Iedereen spreekt over de "hack van DigiD" terwijl we blij moeten zijn dat men het van die partij doorheeft. Wie weet wat er op dit moment door hackers gelezen wordt? Ik wil er niet eens over nadenken. Dan liever alle gegevens van gehackte bedrijven op straat.