Beheer

Security
trust

Darkmatter-rel legt zwakte van SSL-certificaten bloot

Kun je vertrouwen op een security-systeem dat alleen gebaseerd is op vertrouwen?

2 september 2019

Als de rel rond Darkmatter één ding pijnlijk duidelijk maakt, is het wel dat het huidige systeem van SSL-certificaten uiterst kwetsbaar is. Security-bedrijf Darkmatter, dat al een twijfelachtige reputatie had, is recent door Google en Mozilla geweigerd als nieuwe Certificate Authority (CA). De reden: er was onvoldoende vertrouwen. Wat zegt dit eigenlijk over het systeem van SSL-certificaten dat vrijwel volledig is gebaseerd op vertrouwen?

Om te zorgen dat de data die je uitwisselt met een website vertrouwelijk blijft (en dus niet toegankelijk is voor een derde partij) gebruiken we SSL-certificaten. Deze geven aan dat het verkeer tussen de bezoeker en de webserver die eigendom is van de aanbieder van de site, veilig is en dus niet afgeluisterd kan worden. Iedere organisatie kan alleen voor haar eigen website bij een CA een dergelijk certificaat aanvragen. Dit betekent dat bijvoorbeeld de ING Bank alleen een certificaat kan aanvragen voor ING.nl. Vervolgens toetst de CA of de genoemde URL inderdaad in het bezit is van de aanvrager. Als dit het geval is wordt het SSL-certificaat uitgegeven.

Zoals gezegd is het systeem rond SSL-certificaten gebaseerd op vertrouwen. Op dit moment is Comodo de grootste CA met 41% marktaandeel. Hoe hebben zij ooit het vertrouwen van de browsers gewonnen en hoe weten we zeker dat alle medewerkers geen kwade bedoelingen hebben of niet chantabel zijn? Medewerkers bij CA's kunnen immers als toegang fungeren voor het uitgeven van een vals certificaat. Daarmee zou je zó een man-in-the-middle aanval kunnen uitvoeren.

Webverkeer afluisteren

Elke CA kan namelijk voor alle URL’s die er maar zijn zomaar certificaten uitgeven. Voor een aanvaller is het natuurlijk een droomscenario als hij/zij zelf een CA zou zijn. Zo zou hij/zij onbelemmerd webverkeer kunnen afluisteren. En als vertrouwen feitelijk de belangrijkste voorwaarde is waar je aan moet voldoen, hoe moeilijk is het dan eigenlijk voor een hacker om zelf een CA te starten? Het is weliswaar kostbaar, maar zeker niet onbereikbaar. Nu is bij Darkmatter waarschijnlijk op tijd aan de rem getrokken. Deze CA wanna-be is geblokkeerd vóórdat het zijn spionage-activiteiten kon uitbreiden via de begeerde status als CA. Maar het kan uiteraard heel anders gaan. 

Overigens hoeft een hacker niet eens eigenaar te zijn van een CA oOm certificaten te kunnen misbruiken. Neem bijvoorbeeld Diginotar, een Nederlandse CA. Een hacker wist daar binnen te dringen en kon eenvoudig valse certificaten aanmaken voor bekende websites, onder meer van de Nederlandse overheid. Daarmee konden malafide sites zich voordoen als de echte websites. De oorzaak van deze succesvolle CA-hack was heel simpel: achterstallige updates in het CMS dat werd gebruikt door Diginotar.

Initiatieven voor meer beveiliging

Omdat meer partijen inzien dat het huidige systeem erg kwetsbaar is, zijn er inmiddels wel initiatieven om meer security in te bouwen. Een deeloplossing voor het betrouwbaarder maken van het systeem rond SSL-certificaten, is bijvoorbeeld het Certificate Transparancy Project. Dit is een initiatief van Google dat uitgegeven certificaten bijhoudt in publiek beschikbare logs. Hierdoor kan een browser een ontvangen certificaat checken met het log en zo controleren of het certificaat valide is. 

Browsers voeren deze controle niet zomaar uit; ze doen het alleen als een site-eigenaar een Expect-CT header toevoegt met de juiste instellingen. Dán wordt de check uitgevoerd en kan de eindgebruiker een waarschuwing te zien krijgen. Er zijn echter helaas nog niet veel websites met een dergelijke header en tot op heden zijn er ook nog maar weinig browsers die ondersteuning bieden voor deze header.

Natuurlijk kan ook een kwaadwillende CA een malafide certificaat botweg in een Certificate Transparancy log publiceren. Daardoor gaat de check van de browser goed en lijkt het malafide certificaat valide. Alleen als deze logs worden gecontroleerd door een persoon kan het opvallen dat het certificaat voor bijvoorbeeld google.com opeens door een 'vreemde' CA uitgegeven wordt. Hier zijn dan ook weer diensten voor, zoals bijvoorbeeld Suricat (aangeboden door Computest), maar waterdicht is het allemaal nog steeds niet.

Kritische community

Tot op heden lijken een kritische community en initiatieven als het Certificate Transparency Project voldoende te zijn om het systeem van SSL-certificaten ogenschijnlijk veilig te houden. Toch kun je concluderen dat er nog zeker ruimte is voor verbetering. Bij Darkmatter waren er verschillende signalen waaruit men kon afleiden dat het niet om een betrouwbare partij ging. Maar wat als de volgende aanvraag komt van een partij met een schijnbaar onberispelijke reputatie? 

Het feit dat Google vorig jaar de SSL-certificaten van Symantec op de zwarte lijst zette kwam voor velen als een verrassing. Bij een gevestigde security-leverancier uit Silicon Valley zou je er toch vanuit mogen gaan dat het met het vertrouwen wel goed zit. Uit de certificate transparency logs bleek dat Symantec in een testomgeving certificaten had uitgegeven voor domeinen zonder dat de eigenaren daarvan dit wisten. Hierbij leken versleutelde verbindingen naar de sites veilig, maar kon dit niet worden gegarandeerd. Dit betekent dat via een man-in-the-middle aanval mogelijk het webverkeer zou kunnen worden afgeluisterd. 

Door dit soort incidenten heeft het huidige systeem van CA’s wellicht zijn langste tijd gehad. Maar zolang er echter geen sterk alternatief is, is vertrouwen van de community het belangrijkste wapen waar we het mee zullen moeten doen. En dat is eigenlijk best bijzonder in een tijd waar de wereld wordt gedreven door technologie.

Reactie toevoegen