Two-factor authenticatie voor websites

De laatste week is de Nederlandse overheid in rep en roer door de vertrouwensbreuk die is ontstaan door de geslaagde hackpoging bij de slecht beveiligde certificaat verstrekker Diginotar, sinds vorig jaar een dochter van databeveiliger Vasco. Door de inbrekers zijn zeker 500 valse certificaten gemaakt, die ondermeer door de Iraanse overheid zijn misbruikt voor het afluisteren van internetverkeer van hun burgers voornamelijk naar Google (bijvoorbeeld GMail).

Veel van de certificaten, waarmee de gegevensuitwisseling tussen overheidswebsites en hun gebruikers wordt versleuteld, zijn door Diginotar ondertekend en zijn daarom sinds de inbraak van 19 juli waardeloos en worden nu in ijltempo vervangen door certificaten van een alternatieve Certificate Authority. Eén van de bedrijven die hier garen bij spinnen is KPN.

Naast het zo snel mogelijk repareren van de schade, dringt de vraag zich op hoe dit rampscenario voorkomen had kunnen worden. Eén van de problemen bij het valideren van certificaten is de praktijk dat een certificaat dat door een willekeurige CA is ondertekend als geldig wordt beschouwd. Dat betekent dat het hele systeem zo veilig is als de minst veilige CA en er maar één gekraakt hoeft te worden om het hele systeem aan het wankelen te krijgen. De Firefox browser, waarin dit artikel is geschreven, bevat ruim over de honderd CA certificaten.

Zo kon het gebeuren dat de reputatie van Google op het spel kwam te staan door de gebrekkige beveiliging van een Nederlands bedrijf, waarmee Google geen enkele relatie had.

Er is geen eenvoudig en sluitend antwoord dat in de toekomst een soortgelijk probleem kan voorkomen, maar er is al wel een systeem, dat dit soort aanvallen behoorlijk kan bemoeilijken: al enige jaren zijn domeinnaam providers bezig met het beveiligen van de DNS infrastructuur door de invoering van DNS beveiligingsextensies, kortweg DNSSEC genaamd.

DNS is het systeem, dat zorgt voor de vertaling van hostnamen (www.fokke.org) naar ip adressen (83.161.137.43). Het antwoord dat een computer krijgt op een vraag aan een DNS server wordt tot nu toe altijd blindelings vertrouwd. Dit systeem bestaat al sinds 1983, toen beveiliging op Internet een totaal andere rol speelde dan vandaag de dag.

Er zijn verschillende manieren om een computer een vals ip adres te geven, wanneer deze met DNS een hostnaam opzoekt. Dit is ook in Iran gebeurd om gebruikers naar de website te leiden, waarop het valse certificaat stond geïnstalleerd.

Een DNS server, waarin DNSSEC is geactiveerd ondertekent elk antwoord met een cryptografische handtekening, die door de vrager kan worden gecontroleerd. Dit voorkomt dat kwaadwillende een vals antwoord kunnen geven op een DNS vraag.

Er zijn twee aspecten van DNSSEC, die het beveiligingsniveau tijdens het opbouwen van een versleutelde verbinding met een webserver kunnen vergroten. Het eerste aspect is hierboven al beschreven: wanneer alle DNS aanvragen voor het google.com domein waren ondertekend, was de kans dat een gebruiker was omgeleid naar de website met het valse certificaat veel kleiner geweest. Voor een succesvolle aanval op een website moeten dan dus twee barrières overwonnen worden: een vervalst certificaat en een valse ondertekening van een DNS antwoord. Een soort van "two factor authenticatie" voor websites dus.

Het tweede aspect kan een deel van het probleem van het grote aantal CA certificaten oplossen: met de introductie van DNSSEC is het namelijk ook mogelijk om certificaten op te slaan in de DNS server. Op deze manier ontstaat er een eenduidige keten van certificaten voor een website in plaats van een ondertekening voor een willekeurig CA certificaat. Het grote nadeel van deze oplossing is dat dit de beveiliging alleen vergroot wanneer volledig wordt afgestapt van de met de browser meegeleverde CA certificaten. En dat zal, gezien de wijde verspreiding ervan, nog wel lang op zich laten wachten.

In de tussentijd kan de invoering van DNSSEC wel een welkome aanvulling zijn op de authenticatie van een website alleen een certificaat en het is te hopen dat Internet Service Providers haast gaan maken met het aanbieden van deze extra beveiliging aan hun klanten.

Comments

Geen soelaas voor Iraanse internetters

Nog even een kleine nuancering bij dit verhaal: Wanneer een partij controle heeft over het netwerk tussen de server en de gebruiker, zal ook DNSSEC niet helpen: Ondanks het feit dat de gebruiker een correct IP adres ontvangt van de DNS server, kan het verkeer nog steeds onderweg onderschept en omgeleid worden...