DigiNotar en onveilige certificaten: maar hoe zit het precies?
Diginotar gekraakt, PKIoverheid inclusief DigiD onderuit. Harde actie volgt: Diginotar voorgoed in de strafbank en intussen failliet, frisse certificaten gekocht van een ander. Alles weer in orde. Of niet? Zeker niet!
Vertrouwelijk en financieel verkeer via onder andere e-mail, vpn's, ldap en het web (https) berust voornamelijk op de beveiliging die ssl/tls kan bieden. Het is een dubbele beveiliging; tegen afluisteren, maar ook tegen crackers die zich voordoen als degene waar verbinding mee wordt gezocht. Defecten in de toepassing van ssl/tls maken perfecte phishing mogelijk. Verder kan een kwaadwillende 'man in the middle' onopgemerkt blijven door verkeer tussen twee partijen in beide richtingen door te geven, eventueel na wijziging.
Het ssl-protocol werd rond 1995 bedacht door Netscape. De ontwerpers kozen een vorm van cryptografie gebaseerd op paren ongelijke sleutels. Het uitgangspunt voor elk paar bestaat uit twee willekeurige grote priemgetallen. Een van de sleutels blijft geheim, de tweede wordt openbaar gemaakt. Informatie kan met beide sleutels worden vercijferd. Maar wat de een onleesbaar maakt, kan alleen met de ander worden gedecodeerd. De merkwaardige eigenschappen van het sleutelpaar berusten op een wiskundig 'valluik': het product van twee grote priemgetallen laat zich niet binnen afzienbare tijd in factoren ontbinden.
Valluik en pki
Dankzij het valluik kan er een 'public key infrastructure' (pki) bestaan, gebaseerd op digitale certificaten die met zekerheid werden ondertekend door de bezitters van specifieke geheime sleutels. Bijvoorbeeld: Ga naar het beveiligde deel van belastingdienst.nl en vraag je browser om het certificaat van de beveiliging, via enkele kliks te beginnen op het slot of de knop in de adresbalk. Het bevat onder andere de naam van de server (mijn.belastingdienst.nl), de publieke sleutel die erbij hoort en een digitale handtekening van de Amerikaanse firma Verisign, een 'certificate authority' (CA).
De handtekening is het vercijferde resultaat van een wiskundige bewerking (hashfunctie), waarmee een zo goed als unieke vingerafdruk van het certificaat werd berekend. Je browser verifieert het certificaat door de handtekening te decoderen met een publieke sleutel van Verisign, en de uitkomst te vergelijken met de vingerafdruk die de browser zelf berekent. Zijn de twee hashwaardes gelijk, dan is Verisign inderdaad de ondertekenaar en is bovendien zeker dat het certificaat sinds de ondertekening niet is veranderd; het bevat de oorspronkelijke publieke sleutel. Je browser vercijfert er een willekeurig getal mee en stuurt het resultaat naar de server, die zijn geheime sleutel gebruikt voor de decodering. Het getal dient op zijn beurt als uitgangspunt voor vercijfering van de onderlinge communicatie.
Keukenartikelen
Het lijkt misschien een waterdichte gang van zaken. Maar in de praktijk heeft het de zeewaardigheid van een vergiet. Een korte samenvatting van de gaten:
De CA moet garanderen dat een certificaat voor webserver X aan de juiste persoon werd verkocht, en bij voorkeur ook dat de bedrijfsnaam van een webstek geen valse vlag is. Vaak doet een CA echter nauwelijks meer dan controleren of de aanvrager iets van doen heeft met degene die het domein registreerde. In dat geval gaat de garantie niet verder dan een technisch punt: Je browser krijgt via https een rechtstreekse verbinding met het domein genoemd in het certificaat. Zo ontstaan verwarrende en potentieel onveilige situaties.
Ga naar keuken-artikelen.nl, stop iets in de winkelwagen en klik op 'bestel deze artikelen'. Er verschijnt een inlogpagina via https, vanaf een ander domein: keuken-artikelen.securearea.eu. Recente browsers slaan direct alarm, want het certificaat bevat geen informatie over de eigenaar. Bovendien is de zogenaamd beveiligde pagina slechts voor een deel vercijferd. Doe hier liever geen zaken mee, zeggen onder andere Firefox, Chrome, Opera en IE.
Firefox houdt het https-kenmerk van keuken-artikelen.securearea.eu grijs in plaats van blauw, omdat een deel van de pagina bestaat uit van buitenaf via http ingebrachte elementen.
Chrome brengt zijn kritiek scherper in beeld, met een vette rode streep door 'https'.
Wiens fout?
Nader onderzoek leert dat keuken-artikelen.nl werd geregistreerd door Active 24, een multinationale hostingservice gevestigd op het industrieterrein Schiphol-Rijk. De eigenares van het kookwinkeltje (te Venray) weet ongetwijfeld veel van koken, maar laat de bouw van de webstek over aan een derde firma in Hengelo, op zijn beurt via domeinregistratie geassocieerd met een vierde bedrijf te Zwolle en Arnhem. Deze laatste partij lijkt eigenaar van securearea.eu en houder van het certificaat. Zowel keuken-artikelen.nl als securearea.eu zijn gehuisvest op ip-adres 93.186.183.38, dat zich voorstelt als fluitje.biedmeer.nl.
Het is een gebruikelijke maar niettemin ondoorzichtige opzet, want wie is er nu precies verantwoordelijk voor de veiligheid van de webstek, en is het certificaat aan die persoon verkocht? Maar gezien het beperkte risico voor de klanten - betalingsverkeer gaat buiten de webstek om - lijkt vooral de Hengelose partij een steek te laten vallen door ook in het beveiligde deel van de kookwinkel elementen afkomstig van domeinen buiten securearea (waaronder Facebook, Clicky en Kiyoh) te plaatsen, via http. Want daarom wordt de inlogpagina door de browsers gemarkeerd als onveilig, wat de omzet van de kookwinkel niet ten goede zal komen.
Groene adresbalk
Certificaten die alleen de verbinding met een specifiek domein garanderen, laten zich binnen de huidige pki van internet misbruiken door fraudeurs. Ze geven de websurfer immers een gevoel dat het goed zit, terwijl over de eigenaar van het domein in kwestie niets bekend is. Daarom introduceerde een samenwerkingsverband van CA's en browsermakers (het CA/Browser Forum) in 2007 een nieuw type certificaat waaraan strengere eisen worden gesteld. 'Extended Validation' (EV) certificaten worden pas uitgereikt nadat de koper is geïdentificeerd als een bestaande organisatie, verantwoordelijk voor de webstek waar het om gaat.
Grote bedrijven die al bekend staan als betrouwbaar kunnen zich met een EV-certificaat beschermen tegen fraudeurs die hun webpagina's nabootsen, doordat de browsers EV-beveiligde adressen groen markeren. Klanten en partners mogen ervan uitgaan dat een pagina zonder groen in de adresbalk nep is, hoe goed hij verder ook lijkt op het origineel. Althans in theorie.
Goedkoper is beter
Maar kleine webwinkels hebben er weinig aan. Voor phishers vormen ze geen interessant doelwit en hun omzet hangt voornamelijk af van het vertrouwen van klanten in het bedrijf, niet in een of ander domein. Https waar de browsers niet over klagen is goed genoeg. Bovendien zijn EV-certificaten op zichzelf al duur en ongeschikt voor meerdere domeinen die een ip-adres delen, de 'virtual hosting' die zulke winkels betaalbaar maakt.
Een tweede bezwaar tegen EV-certificaten is het misplaatste vertrouwen dat ze misschien geven in sommige bedrijven die ermee pronken. Want de officiële EV-richtlijnen (pagina 3) sluiten specifiek uit dat het certificaat iets zegt over de mate waarin een bedrijf zich aan de wet houdt of veilig werkt. Een gecertificeerde server kan best gekraakt zijn. En een veilige verbinding garandeert niet dat de belastingdienst goed omgaat met je DigiD, zoals we hebben gemerkt.
Het grootste deel van het web is wellicht beter gediend met goedkopere, liefst gratis certificaten die weinig of geen beheer vergen. Want dan wordt het aantrekkelijk om alle http-verbindingen te vervangen door https. Nu is http meestal het zwakke punt, ook als een webstek voor de inlog omschakelt naar een beveiligde pagina. Gratis certificaten worden al geleverd door StartCom en sinds enkele jaren ondersteund door de grote browsers.
Het grootste lek
Maar ook dan blijven de CA's zelf dubieus. De huidige pki van internet laat toe dat elke CA voor om het even welk domein geldige certificaten kan maken. Wat betekent dat elke CA - en iedereen die met succes een CA kraakt - als 'man in the middle' https-verkeer ongemerkt kan afluisteren.
De Nederlandse CA Diginotar bleek haast onvoorstelbaar incompetent; na een te eenvoudige inbraak maakte een cracker op zijn gemak honderden certificaten voor belangrijke domeinen zoals Google, Yahoo en update.microsoft.com. Minstens een ervan was langere tijd in frauduleus gebruik.
Het certificaat in kwestie werd uitgegeven op 10 juli. Diginotar ontdekte de inbraak negen dagen later - en hield de affaire onder de pet. Pas eind augustus werd alarm geslagen door de Chrome browser van een Iraanse Gmailgebruiker, waarna het lek door de browsermakers kon worden gedicht. (Sinds mei bevat Chrome vingerafdrukken van de publieke sleutels voor de meeste domeinen van Google zelf, zodat binnen de eigen kring alleen certificaten worden geaccepteerd van de CA's waar Google zaken mee doet.)
Het was niet de eerste bekende kraak van een CA. Eerder dit jaar werd ingebroken bij minstens vier wederverkopers van Comodo, de op een na grootste CA ter wereld. Daarbij kwamen frauduleuze certificaten in omloop voor onder andere Gmail en Hotmail. Het ging waarschijnlijk om dezelfde dader, die ook inbrak bij Startcom, zonder succes.
Https blijft nuttig
Stel dat andere partijen ook kans zien om certificaten te (laten) maken voor afluisterwerk, en dat ze tot nu toe niet zijn betrapt? De vraag was academisch, tot onderzoeker Chris Soghoian bij toeval ontdekte dat het Amerikaanse bedrijf Packet Forensics hardware verkoopt die speciaal is ontworpen voor het afluisteren van verbindingen beveiligd met ssl/tls. De klant kan zelf eenvoudig zorgen voor al dan niet legitieme certificaten, volgens de brochure. Sinds 2009 mag het apparaat ook buiten de VS worden verkocht aan bedrijven en overheden. Het kan haast niet anders of zulke apparatuur is in dagelijks gebruik.
De CA als vertrouwde partij heeft zijn tijd gehad. Browsermakers waren al bezig met extra maatregelen en gaan ongetwijfeld verder op dat pad. Interessant is ook Convergence, een Firefox add-on die alle CA's buiten spel zet, en toch goed beschermt tegen afluisteraars en phishers. Details in het blog van de uitvinder en in zijn presentatie tijdens Blackhat USA 2011.
Het lijkt soms dweilen met de brandkraan open. Maar ssl/tls in het algemeen en https in het bijzonder blijven nuttig. Zoals Matt Blaze (Universiteit van Pennsylvania) het uitdrukt: 'Ik weet hoe ik kan inbreken. Maar ik doe nog steeds mijn deuren op slot.'