Internet is onveilig. Certificeringsprotocollen bestaan op basis van 'vertrouwen', maar zouden op waarheid moeten worden gecontroleerd. Anders liggen hacks zoals bij Diginotar nog steeds op de loer. Of erger. De Nederlandse cybersecurity-wetenschapper Volkan Kaya heeft een oplossing. Hij wil de pki-infrastructuur veranderen. 'De x.509-standaard is zwak.'
Volkan Kaya is eigenlijk staatsgevaarlijk: de cybersecurity-expert kent de zwaktes van internet. Vooral in certificering liggen grote veiligheidsproblemen. Kaya, decennia werkzaam in de bancaire wereld en onlangs afgestudeerd op de Cyber Security Academy (een samenwerking tussen Universiteit Leiden en de TU Delft), kan gemakkelijk hele stukken van internet platleggen. De oorzaak: een slechte pki, wat staat voor public key infrastructure. ‘De pki is een ecosysteem dat de identiteit van een gebruiker verifieert. Binnen encryptie heb je zo’n ‘sleutel’ nodig, zodat de computers die met elkaar praten, elkaar vertrouwen. En daar ligt het probleem: kun je internet laten draaien op vertrouwen?’
Het antwoord daarop is al jaren duidelijk: nee.
In Nederland kwam de kwetsbaarheid pijnlijk aan het licht door de Diginotar-affaire. De hack bij Diginotar in de zomer van 2011 was een uitgave van valse ssl-certificaten voor websites wereldwijd, veroorzaakt door een man-in-the-middle-aanval bij het Nederlandse bedrijf Diginotar. Meer dan vijfhonderd valse certificaten werden verspreid, met voornamelijk Iraanse internetgebruikers als doel. Nederlandse overheidswebsites, die gebruikmaakten van certificaten van Diginotar, en overige websites wereldwijd werden tijdelijk als onveilig verklaard. Met de valse certificaten kon een versleuteld berichtwisseling onderschept worden tussen de bezoeker van een website en de server van de website. Bezoekers van de website hebben geen middelen om dit soort aanvallen te herkennen. Uitgewisselde berichten kunnen makkelijk ontsleuteld worden en de informatie komt beschikbaar voor de aanvaller. Valse certificaten zijn door de hacker gemaakt voor bekende sociale netwerkdiensten als Gmail, Twitter, Facebook en de geheime diensten CIA, MI6 en Mossad. Door de hack is het vertrouwen in alle door Diginotar uitgegeven digitale certificaten ingetrokken en kwamen ook andere diensten, zoals DigiD en de RDW in de problemen. De hack werd online opgeëist door een 21-jarige Iraanse man, die handelde uit sympathie voor Iran en kritiek leverde op Nederland. Als gevolg van de hack werd internetgebruikers geadviseerd enkele dagen geen gebruik te maken van online-overheidsdiensten.
‘Het is dus al gebeurd, het gebeurt nu en als we het niet aanpassen gebeurt het ook in de toekomst’, waarschuwt Kaya. Dagelijks gebruiken we de pki. Zo zijn betalingssystemen afhankelijk van identificatie van de terminals. En de digitale overheden kunnen niet zonder pki. ‘Als een gebouw een slechte fundering heeft, kun je het gebouw niet versterken met een verflaag. We moeten de pki voor internet opnieuw bouwen met onze kennis van nu.’
X.509
Het probleem ligt bij de zogenoemde X.509-standaard, dat het formaat van digitale certificaten bepaalt. Internet werkt met certificaten om de integriteit en vertrouwelijkheid van communicatie te beschermen. Een certificaat geeft houvast in cryptografie, zodat ontvanger A zeker weet dat de sleutel van verzender B ook daadwerkelijk van B is. We hebben een goed werkende openbare sleutelinfrastructuur (pki) samen met digitale certificaten nodig, die de identiteit van de computers met zeer hoge zekerheid garandeert, om de vertrouwelijkheid en integriteit van communicatie te garanderen.
Hoe kom je aan zo’n digitaal certificaat? Certificeringsinstanties (CA) geven digitale certificaten uit. Het betreft dus een partij die vertrouwd wordt door alle gebruikers van internet. Een digitaal certificaat staat garant voor een openbare sleutel. Hierdoor kan een gebruiker (een door een CA betrouwbaar bevonden partij) vertrouwen op de handtekening of bewering van een andere gebruiker. De CA fungeert dus als een ’trusted third party’.
Het formaat van deze certificaten wordt bepaald door de eerder genoemde X.509-standaard. Deze standaard wordt gebruikt in https, het beveiligde zoekprotocol voor het world wide web. Een ander veelvoorkomend gebruik van de X.509-standaard is in het uitgeven van identiteitskaarten door nationale overheden voor het elektronisch ondertekenen van documenten. Een voorbeeld daarvan is DigiD.
Zwaktes
‘Deze opzet is onveilig’, claimt Kaya. ‘De x.509-standaard kent zwaktes. Een daarvan is dat tijdens de uitgifte van digitale certificaten challenge-response via e-mail wordt gebruikt. Het protocol voor e-mailberichten (smtp) is geen beveiligd protocol en e-mailberichten zijn te onderscheppen door aanvallers.’
De X.509-standaarden staan de uitgifte toe van meerdere certificaten, door gebruik te maken van verschillende sleutelparen op hetzelfde moment voor een specifieke domeinnaam. Kaya: ‘De flexibiliteit van het hebben van meerdere geldige certificaten voor dezelfde host computer op hetzelfde moment maakt het ook mogelijk om valse geldige certificaten uit te geven zonder kennis van de hostcomputer zelf. Het detecteren van dergelijke nepcertificaten is een uitdaging, omdat niemand van het bestaan ervan weet.’
Een vertrouwde CA mag een certificaat uitgeven voor elke domeinnaam, aangezien een CA geen technische grenswaarden heeft om over de hele wereld te werken. Kaya: ‘De huidige pki-infrastructuur is gebouwd op vertrouwen. Juist in het ‘vertrouwen’ zit een probleem. Want er is slechts een mailverificatie nodig naar een CA om een partij te identificeren, verder niets. Het is dus mogelijk om dezelfde ‘certificate signing request’ naar vele CA’s te sturen en over veel certificaten te beschikken voor hetzelfde onderwerp. Ze zullen allemaal worden beschouwd als een geldig certificaat.’
Niet-eerlijk
Kaya heeft een nieuwe ‘core’ voor pki-certificaten bedacht, waarbij er een nieuwe pki-infrastructuur moet worden gebruikt ter vervanging van de X.509-standaard. Deze zogenoemde ConsensusPKI verandert de kern van de X.509 -pki van ‘vertrouwen’ in ‘niet liegen’. ‘De certificaat-autoriteiten in ConsensusPKI zijn namelijk collectief verantwoordelijk voor de identiteit van de normale computers en ook de identiteit van alle certificaatautoriteiten. De waarheid is: alleen het recentst uitgegeven certificaat is een geldig certificaat en al het andere is een leugen.’
Voor de uitgifte en interpretatie van de certificaten is collectief werk van de CA’s nodig om transparantie te brengen in alle processen van de CA’s. Het certificaatuitgifteproces vereist verificatie van de CVR’s door meerdere CA’s. Alle challenge-response-verificaties uitgevoerd tijdens de certificaatuitgifte moeten worden uitgezonden naar andere CA’s, zodat de geverifieerde CVR’s naar de gerelateerde certificaatblokchain zijn op te slaan. Die kunnen op hun beurt een geverifieerd certificaat afgeven.
‘Voor de interpretatie van de certificaten is het noodzakelijk dat CA’s hun database laten ondervragen door clientsystemen. Deze PKQuery brengt twee verplichtingen met zich mee voor de CA’s. Ten eerste moeten de CA’s alle blockchaingegevens behouden die alle certificaten in het ecosysteem vertegenwoordigen die zijn opgeslagen in de CA-infrastructuur. De tweede verplichting is dat de CA’s de blockchaingegevens die ze opslaan, moeten beschermen, zodat ze eerlijk kunnen reageren op de inkomende vragen. Oneerlijk gedrag zorgt ervoor dat een CA uit het CA-netwerk wordt verwijderd.’
Tot slot speelt de datatabel dat onderwerpen vastzet in het ecosysteem ConsensusPKI een cruciale rol bij het transparant maken van de beschikbare certificaten in cyberspace. ‘De certificaten in de ConsensusPKI dragen geen handtekeningen van de uitgevende CA’s. ConsensusPKI vereist dat CA’s eerlijk zijn tijdens het gebruik en de uitgifte van certificaten. De PKQuery- en de fetch-processen van de ConsensusPKI garanderen dat de kern van ConsensusPKI gehandhaafd blijven. Niet-eerlijk gedrag bij één van de processen zorgt ervoor dat een CA wordt verwijderd uit het blockchain-netwerk, waardoor de CA niet in staat is om certificaten uit te geven.’
Hack
De vraag is echter of er genoeg bereidheid is om de fundamentele veiligheid van internet te verbeteren, weet Kaya. ‘Grote partijen als Apple, Google, Microsoft en Amazon en alle overheden kennen de problemen, maar ze proberen deze op te lossen door niet te veel veranderingen aan de huidige standaard aan te brengen. Waarom niet? Internet is van iedereen en daarom dus van niemand. Niemand neemt deze grote verantwoordelijkheid op zich. Het is wachten tot er een grote hack komt en niemand meer de Nederlandse overheid, Google of Amazon online kan bereiken. Hopelijk ziet we dan dat nepcertificaten een gemeenschappelijk probleem vormen.’
Eigenlijk is het net als het verkeer 100 jaar geleden, toen was het nog veilig op straat en ging niets harder dan 10km/uur.
Tegenwoordig is internet wel makkelijk, maar niet altijd nodig, velen hebben de mentaliteit van “het kan op internet, dus sluiten we het aan op internet”.
De behoefte om b.v mijn koffie apparaat, of mijn koelkast via internet te kunnen bereiken lijkt mij onzin.
Wat mij wel/ook zorgen baart, is dat er ook veel veiligheidssystemen via internet toegankelijk zijn, denk hierbij aan het aansturen van zenders (o.a. voor rampen en lokale omroepen), maar ook sluizen, bruggen e.d.
Een hack kan een ramp zijn, maar het in geval van een hack afsluiten kan ook geen optie zijn.
Ooit hoorde ik iemand zeggen dat één explosief op de juiste plek,of één dragline die een paar uur vrij kan graven, de Nederlandse economie en veiligheid grotendeels plat kan leggen.
Het internet is zo sterk als de zwakste schakel. Een goed geplande DDos en het internet is ineens voor iedereen onbereikbaar:
https://blog.cloudflare.com/the-ddos-that-almost-broke-the-internet/
Bovenstaand is een blog uit 2013 en heruit werd al duidelijk hoe makkelijk het internet echt plat te leggen is. Het is een wonder dat nog iemand dit heeft gedaan. De economische schade die hier uit voort vloeit is niet te ramen.