Onderzoekers hebben een lek in de Internet Public Key Infrastructuur (PKI) ontdekt die wordt gebruikt voor het uitgeven van SSL-certificaten voor websites. Het lukte het team, bestaande uit onderzoekers van het Nederlandse Centrum Wiskunde & Informatica in Amsterdam, de Technische Universiteit Eindhoven, EPFL in Zwitserland en onafhankelijke beveiligingsonderzoekers Alexander Sotirov en Jacob Appelbaum, om een kwaadaardige Certification Authority (CA) op te zetten die door alle browsers geaccepteerde SSL-certificaten kan uitgeven. Hierdoor is het mogelijk om bank en andere beveiligde websites na te bootsen, ook al gebruiken die HTTPS.
Dit geeft phishing en Man-in-the-middle aanvallen een nieuwe impuls, omdat nu ook het versleutelde verkeer is te onderscheppen, zonder dat de gebruiker voor de valse website wordt gewaarschuwd. Het onderzoeksteam merkt verder op dat hun aanval perfect met de DNS-aanval van Dan Kaminsky is te combineren. De onderzoekers geven op dit moment tijdens het Chaos Communication Congress in Berlijn hun presentatie.
MD5 kwetsbaarheid
Voor het uitvoeren van de aanval gebruikten de onderzoekers een kwetsbaarheid in de MD5 cryptografische hash functie, waardoor het mogelijk is om verschillende berichten met dezelfde MD5 hash te genereren. Normaal heeft elk bestand of handtekening waarvan men een MD5 hash berekent een unieke waarde. In 2007 toonden Nederlandse onderzoekers al aan dat het ze gelukt was om 12 verschillende PDF-bestanden van dezelfde hash waarde te voorzien.
SSL-certificaten
Er wordt op het web steeds meer vertrouwelijke informatie uitgewisseld, denk aan inloggegevens, het uitwisselen van financiele informatie, etc. Om ervoor te zorgen dat gebruikers van een website weten met wie ze de informatie uitwisselen zijn er SSL-certificaten in het leven geroepen.
Een certificaat is een document dat zowel een identiteit als een publieke sleutel bevat, en van een digitale handtekening is voorzien. De handtekening is afkomstig van een Certification Authority (CA). De CA garandeert bij het genereren van de handtekening dat het de identiteit van de eigenaar van de publieke sleutel heeft gecontroleerd en dat die eigenaar ook de corresponderende private sleutel bezit. Iedereen die de publieke sleutel van de CA bezit, kan de handtekening van de CA op het certificaat controleren. Hierdoor garandeert de CA dat de publieke sleutel in het certificaat bij de identiteit van het certificaat behoort.
Hoe werkt de aanval
Voor het uitvoeren van de aanval vroegen de onderzoekers een legitiem website certificaat van een commerciële Certification Authority die door alle browsers vertrouwd wordt. Aangezien het om een legitiem verzoek gaat, tekent de CA het certificaat. De aanval werkt alleen bij CA's die MD5 gebruiken om de handtekening van het certificaat te genereren, maar dat zijn er nog voldoende, zoals RSA Data Security, Thawte, Verisign en RapidSSL.
Het tweede gedeelte van de aanval bestaat uit het gebruik van een "intermediary CA certificate" waarmee andere certificaten zijn te tekenen die de onderzoekers willen uitgeven. Aangezien de MD5 hashes van zowel het legitieme als de kwaadaardige certificaten hetzelfde zijn, kan men de handtekening van de commerciële CA naar het kwaadaardige CA certificaat kopieren, wat daardoor geldig blijft.
Wie zo'n kwaadaardige website bezoekt krijgt een certificaat en een kwaadaardig CA certificaat opgestuurd. De handtekening van de kwaadaardige website is via het kwaadaardige CA certificaat te verifieren, en de kwaadaardige CA wordt weer geaccepteerd door de browser omdat diens handtekening overeenkomst met die van de CA root certificate die in de "vertrouwenslijst" is opgenomen. Hierdoor zal de gebruiker niets merken.
Playstation 3 power
De vereiste rekenkracht voor de aanval werd geleverd door tweehonderd Playstation 3 consoles van Sony. Als het gaat om brute-force berekeningen zijn spelcomputers superieur aan normale processoren, waarbij één PS3 gelijkstaat aan 40 moderne single core processoren. Het berekenen van de aanval kostte 3 dagen. De aanval is hierdoor ook uit te voeren door criminelen die over een groot genoeg botnet beschikken of door de staat gesponsorde aanvallers. De onderzoekers zeggen zelf dat iemand die ervaring met het onderwerp heeft, tenminste een maand nodig heeft om achter de methode te komen.
Oplossing
Om de aanval te voorkomen moeten CA's stoppen met gebruik van MD5 voor het genereren van digitale handtekeningen en certificaten. Het SHA-1 of SHA-2 algoritme zouden "acceptabele alternatieven" zijn. CA's die niet kunnen overstappen moeten als tijdelijke oplossing de serienummers van alle nieuw uit te geven certificaten randomiseren. Toch is dit slechts een noodverband, wat ook geldt voor SHA-1, waarvan delen al eerder zijn gekraakt. De onderzoekers verwachten dan ook dat het niet lang zal duren voordat SHA-1 hetzelfde lot als MD5 deelt.
Bestaande certificaten
Eigenaren van een certificaat dat met MD5 is getekend hoeven op dit moment niets te doen. "Legitiem verkregen digitale certificaten zijn veilig en vertrouwd, zelfs als ze met MD5 getekend zijn. Onze methode vereist de aanschaf van een speciaal gemaakt digitaal certificaat van een CA en heeft geen invloed op certificaten die voor andere websites zijn uitgegeven", aldus de onderzoekers. Het volledige onderzoek zal als alles meezit in de eerste helft van 2009 verschijnen. De getroffen CA's hebben inmiddels laten weten dat ze binnenkort op SHA-1 overstappen.
Het verwijderen van de betrokken CA's uit de browser kan ernstige gevolgen hebben. Wie RapidSSL uit zijn browserlijst verwijdert, kan in dit geval zo'n 30% van de HTTPS-sites op het internet niet meer bereiken.
Lezerstip!
Een lezer laat ons weten dat je vrij eenvoudig kunt zien of een SSL-certificaat met MD5 of SHA-1 is getekend en door welke instantie het is uitgegeven. Wie op het "gouden slotje" klikt, dan voor "view certificate" kiest en daarna "Details", kan voor zowel de CA als certificaat controleren welk algoritme er is gebruikt. Je hoeft dan alleen naar beneden te scrollen naar "Certificate Signature Algorithm." Als daar voor ALLE certificaten "PKCS #1 SHA-1 With RSA Encryption" staat is het goed. Kom je "md5RSA" tegen, dan moet je bijvoorbeeld de bank aanschrijven dat ze in ieder geval SHA-1 moeten gebruiken. ABN Amro, Fortis, Mijn Postbank en Rabobank gebruiken allemaal SHA-1.
Podcast
Meer over de aanval hoor je in een speciale editie van de podcast!
Deze posting is gelocked. Reageren is niet meer mogelijk.