Certificaten: vertrouwen is goed, controle is beter

We kennen allemaal de uitdrukking ‘vertrouwen is goed, controle is beter…’. Als security expert heb ik regelmatig discussie over het gebruik van certificaten. Ik merk dan dat certificaten worden gezien als een wondermiddel voor het oplossen van een heleboel security vraagstukken. De denkfout zit hem niet in het gebruik van certificaten, maar de manier waarop we vertrouwen hebben in certificaten.

Certificaten worden voor veel verschillende security maatregelen gebruikt. De bekendste is voor een https (ssl) website. In de eerste plaats wordt het certificaat gebruikt om alle informatie tussen mijn browser en de webserver te versleutelen. In de tweede plaats wordt een certificaat gebruikt om aan te tonen dat ik op de juiste website ben. Als je op de verkeerde website komt, zie je meestal een rode balk of een foutmelding, afhankelijk van het type browser die je gebruikt.

Vertrouwde leveranciers

Hoe weet mijn browser nu dat ik de op juiste website terecht ben gekomen? De website geeft, naast een sleutel, een certificaat aan mijn browser. Dit certificaat bevat een digitale handtekening van een certificatieautoriteit (CA). De eigenaar van de website heeft een certificaat aangemaakt en deze laten ondertekenen door een publieke CA. Dit zijn (meestal) bedrijven die voor een kleine vergoeding een certificaat ondertekenen. Mijn browser onderzoekt wie het certificaat heeft ondertekend. Vervolgens zoekt hij die organisatie op in zijn lijst van vertrouwde certificaatleveranciers. Komt de organisatie voor? Dan is het een vertrouwd certificaat.

De lijst met vertrouwde leveranciers wordt meegeleverd met mijn browser. De maker van mijn browser bepaalt wie betrouwbaar is en wie niet. In de praktijk betekent dat, dat je Google, Microsoft, Apple of de Mozilla community vertrouwt. Eén van deze organisaties heeft voor jou bepaald welke certificaatleverancier betrouwbaar is. De betrouwbaarheid van een certificaatleverancier kunnen we echter in twijfel trekken. Meestal is daar één woord genoeg voor: DigiNotar.

Convergence (SSL)

Als alternatief is Convergence (SSL) ontwikkeld. Het idee achter Convergence (SSL) is dat er nu niet één bron bepaalt of een certificaat betrouwbaar is, maar meerdere bronnen. Zo’n bron wordt een Notary (nl: notaris) genoemd. Elke Notary geeft zijn vote (stem) of het certificaat correct is. Als één of meerdere Notaries aangeven dat het certificaat onveilig is, kan de gebruiker zelf een keuze maken. Als gebruiker vertrouw je op de kennis en kunde van de verschillende Notaries. Maar wie zijn dan die Notaries? Google, Microsoft, de Amerikaanse overheid, Brussel of richten we een compleet nieuwe organisatie op? Ook voor dit systeem geldt dat we een aantal organisaties gaan aanwijzen als betrouwbare bron.

Het gebruik van certificaten draait dus om vertrouwen. Elke oplossing die gebruikt maakt van certificaten en/of sleutels voor beveiliging kent dus hetzelfde manco. Je start altijd met een stuk vertrouwen. Hier heb je de keuzemogelijkheid.

CA gehackt

Als certificaten voornamelijk intern gebruikt worden, kun je gaan werken met je eigen CA of PKI. Dan bepaal je zelf wat de betrouwbare bron is, jij zelf dus. Het probleem is dan wel dat anderen je niet zomaar vertrouwen.

Werk je samen met een partner en wil je hierbij gebruik maken van certificaten? Dan kun je er voor kiezen om een gezamenlijke CA te gebruiken. Deze wordt dan door beide partijen vertrouwd, maar je moet dan wel goede afspraken maken over het beheer. Degene die de CA beheert moet ook weer vertrouwd worden.

Werk je met externen mensen en wil je gebruik maken van certificaten? Dan heb je eigenlijk niet veel te kiezen. Je zult in dat geval gebruik moeten maken van een ‘openbare’ CA. Je kunt je dan wel afvragen welke je gaat vertrouwen. Een browser vertrouwt standaard heel veel CA’s, maar je heb zelf de keuze welke jij wilt vertrouwen. Je kunt kiezen voor de goedkoopste, maar of je dan ook de juiste kwaliteit krijgt? In het verleden is er al eens een CA gehackt en kwam de root certificaat op straat te liggen. Opeens waren een heleboel websites met een certificaat van deze CA niet langer betrouwbaar.

Martijn Bellaard heeft 3 jaar als lead architect bij TriOpSys gewerkt. Begin 2017 heeft hij zijn grote droom gevolgd en is hij docent aan de Hogeschool van Utrecht geworden. Dit artikel is gepubliceerd op 03-10-2015.

Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someonePrint this page