Wij zetten onze wifi open, jij ook?

Gemakkelijk vertrouwd én gemakkelijk vervalst

De week in 263 woorden

Iedereen weet het nu wel: als het even kan moet je “https” in plaats van “http” gebruiken. Digitale certificaten zorgen ervoor dat je zeker weet dat de website van Gmail ook echt die van Google is. En dat niemand die je internetverkeer kan aftappen met de inhoud kan meelezen. Afgelopen week bleken er echter weer eens vervalste certificaten voor Google in omloop te zijn. Een bekend probleem, maar de oplossing is zo makkelijk nog niet.

Ik zeg wie ik ben

Zou je mij op mijn blauwe ogen geloven als ik zeg wie ik ben? De AIVD in ieder geval niet. Toen ik hen onlangs in Zoetermeer bezocht werd mij de toegang geweigerd zolang ik niet een officieel identificatiebewijs overhandigde. Mijn rijbewijs was voldoende om te bewijzen dat ik ook echt was wie ik beweerde. De AIVD vertrouwde dat pasje omdat het door de overheid is uitgegeven.

Zo werkt het ook met die SSL/TLS-certificaten. Elke browser komt met een lange lijst van vertrouwde partijen die certificaten voor websites mogen uitgeven, de Certificate Authorities. Als je een beveiligde website bezoekt controleert je browser of het aangeboden certificaat is uitgegeven door zo’n Certificate Authority. De meeste browsers vertrouwen meer dan zeshonderd Certificate Authorities. Zo’n honderd overheden zijn zelf ook een Certificate Authority, waaronder de Nederlandse.

Teveel vertrouwen in Certificate Authorities

Hoe controleert een browser of al die Certificate Authorities wel voortdurend even zorgvuldig blijven met de uitgifte van nieuwe certificaten? Het korte antwoord is: niet. En zelfs al zou dat kunnen, je kunt nooit elk risico afdekken in zo’n systeem. Er zijn genoeg voorbeelden bekend waarbij hackers hebben ingebroken op de computersystemen van een Certificate Authority en vervolgens valse certificaten hebben aangemaakt. Comodo is een bekend voorbeeld. En denk je dat overheden altijd even netjes opereren? Die breken soms ook in, zoals bij Diginotar. Of als ze zelf een Certificate Authority zijn, maken ze een vertrouwd maar vervalst certificaat voor een gewenste domeinnaam aan. En zo gek is die gedachte echt niet: in Nederland laten we ook allerlei waarborgen varen omdat de staatsveiligheid in het geding zou zijn.

Een beter alternatief is lastig

Wat nu? Eén van de oplossingen is om de certificaten die jij te zien krijgt te vergelijken met de certificaten die andere bezoekers van die website te zien krijgen. Als jij een ander certificaat krijgt dan de rest van de wereld, heb je een goede reden om je af te vragen of niet iemand jouw verbinding probeert te kapen. Je zou ook het vertrouwen in de beoordeling van Certificate Authorities kunnen verleggen: welke organisaties, in plaats van je browser, zou jij hierin vertrouwen? Daarnaast zouden certificaten misschien door meer dan één organisatie ondertekend moeten worden. Toch wordt nog geen enkel van die oplossingen als perfect beschouwd.

En nog lastiger te implementeren

Maar misschien is het bedenken van een betrouwbare manier voor het vaststellen van de echte beheerder van een website niet eens het grootste probleem dat opgelost moet worden. Het is bijzonder lastig om zo’n oplossing breed geïmplementeerd te krijgen. Want ook al is je idee nog zo mooi: de bouwers van de grootste drie of vier browsers moeten je oplossing wel inbouwen. En als je oplossing ook niet compatible is het met het huidige systeem, dan is zo’n verandering nog lastiger.

Voor nu: begin bij jezelf

Wie zelf al een beetje aan de slag wil, kan eens kijken naar een plugin als Certificate Patrol. Daarmee hou je in je browser bij welke certificaat je browser bij een website tegenkomt. Verandert het certificaat opeens, dan moet je je afvragen waarom dat is. Was het oude certificaat bijna verlopen en heeft de beheerder het certificaat vernieuwd? Of is de beheerder overgestapt naar een andere Certificate Authority? Of luistert er misschien iemand mee?

  1. Sam V

    Ik denk dat we uiteindelijk moeten werken aan een decentraal systeem. Zoals in dit artikel staat kunnen CA’s falen. Hoe groot (commodo) of klein (diginotar) ze ook zijn. Bij diginotar hebben we met veel problemen het vertrouwen opgezegd (wat overigens de juiste beslissing was). Bij Commodo niet: to-big-to-fail. De vraag is dus niet alleen wie je wilt vertrouwen maar vooral hoelang. Commodo en enkele anderen zijn inmiddels zo groot geworden dat we hier in het huidige systeem niet meer vanaf kunnen.

    Erg interessant is de Convergence oplossing uit dit artikel. Het kan parallel aan het huidige systeem gebouwd kan worden. Wat een wereldwijde implementatie realistischer maakt.
    Helaas betekend het vergelijken van je certificaat bij iemand anders dat die andere persoon dus automatisch weet welke websites je bezoek. Convergence doet dit overigens wat veiliger dan het Perspectives project, maar in de context van Bits of Freedom is “niet perfect” misschien iets te genuanceerd.

  2. Leon

    Er is ook zoiets als DANE. Hierbij wordt een DNS regel aangemaakt met daarin de vingerafdruk (hash) van het certificaat van de website. Dat maakt een decentrale opzet én het gebruik van zelf aangemaakte certificaten een goede optie.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd.

Help mee en steun ons

Door mijn bijdrage ondersteun ik Bits of Freedom, dat kan maandelijks of eenmalig.