Convergence, een PKI alternatief?
06-11-2011,22:29 doorHugo
De inbraak bij Diginotar heeft goed aangetoond welke verantwoordelijkheden Certificate Authorities (CA) hebben. De compromittering van een CA kan grote gevolgen hebben voor internetdiensten en kan zelfs mensenlevens in gevaar brengen. Voor velen reden genoeg om te concluderen dat PKI z’n beste tijd gehad heeft en voor Moxie Marlinspike om met een alternatief te komen: Convergence (http://convergence.io/). Convergence wordt neergezet als een veilig alternatief, maar hoe veilig is dat alternatief? Tijd om daar eens kritisch naar te kijken.

Hoe werkt Convergence?
Op het moment dat een browser verbinding maakt met een met SSL beveiligde website, raadpleegt de Convergencemodule in de browser meerdere, zogehete, notaries. Deze notaries vragen bij dezelfde website het SSL certificaat op en geven deze terug aan de browser. De browser controleert of alle ontvangen certificaten overeen komen met het certificaat dat deze zelf van de website ontvangt. Komen deze overeen, dan is het zeer aannemelijk dat er geen man-in-the-middle aanval plaatsvindt en de verbinding dus veilig is. Door deze opzet is een centrale certificatenuitgever overbodig. Websites kunnen daardoor gebruik maken van self-signed certificaten.

De privacy van de gebruiker wordt gewaarborgd doordat de browser één notary gebruikt als een soort proxy om verbinding te maken met de overige notaries. Deze overige notaries weten om welke website het gaat, maar weten niet om welke gebruiker het gaat. De proxy-notary weet om welke gebruiker het gaat, maar niet om welke website het gaat.

Hoe veilig is Convergence?
Convergence is een interessant alternatief voor PKI. Tijdens een BlackHat (http://www.youtube.com/watch?v=Z7Wl2FW2TcA) bijeenkomst presenteert Moxie Marlinspike Convergence als een veilig alternatief is. Maar is dat zo? Zoals elk systeem kent ook Convergence zwakke punten. Hieronder een, niet per se volledige, lijst van zwakke punten van Convergence.

Omdat elke browser, voor elke verbinding naar een met SSL beveiligde website, notaries moet raadplegen, zijn een boel notaries noodzakelijk om dit mogelijk te maken. Het is niet ondenkelijk dat sommige landen, denk aan China en Iran, dit aangrijpen om een aantal nationale notaries in te richten en deze verplicht te stellen voor de bevolking. Uiteraard zullen deze nationale notaries voor bepaalde gebruikers geforceerde antwoorden teruggeven, waardoor de overheid van dat land via een man-in-the-middle aanval deze gebruikers kan afluisteren.

Om de certificatencontrole te versnellen kan Convergence gebruik maken van een lokale cache. Deze lokale cache bepaalt dus voor een belangrijk deel of de verbinding naar een website veilig opgezet kan worden. Het is dus niet ondenkelijk dat internetcriminelen zullen proberen om deze lokale cache te vervuilen met valse certificaten.

Het instellen van welke notaries de browser mag raadplegen vergt kennis welke de gemiddelde gebruiker niet heeft. De meeste mensen zullen afhankelijk zijn van de notarylijst die bij een browser wordt meegeleverd. Het is algemeen bekend dat het up-to-date houden van software, en dus ook de browser, iets is dat niet goed genoeg gebeurd. PKI kent dezelfde zwakke plek.

Een goed ingerichte CA heeft zijn signing-server niet aan het internet gekoppeld. Een notary dient wel aan het internet gekoppeld te zijn omdat browsers deze moeten kunnen benaderen. Dit maakt een notary in theorie al kwetsbaarder dan een CA.

Een CA worden is iets dat niet zomaar gebeurd. Daar zijn strenge regels voor. Een notary worden is een kwetsie van de notarysoftware op een server installeren. Iedere computerhobbiest zou dat kunnen doen. Omdat met een notary niet zo makkelijk geld te verdienen valt, is de vraag wie de benodigde notaries gaan hosten. Nu is de belangrijkste vraag: wat garandeert de betrouwbaarheid van een notary?

Des te meer notaries een browser raadpleegt, des te meer zekerheid over de veiligheid van de verbinding. Omdat elke notary op verzoek van een browser ook het certificaat van een website opvraagt, zal een webserver voor elke verbinding met een browser ook een heleboel verbindingen vanuit notaries ontvangen. Deze extra verbindingen kunnen een negatief effect hebben op de prestatie van een webserver.

Bij verreweg de meeste SSL verbindingen is alleen de server voorzien van een certificaat. Maar slechts enkele verbindingen vereisen ook een clientcertificaat. Het uitgeven van SSL-clientcertificaten vereist een uitgifteprocedure, iets wat onderdeel is van een PKI. Convergence biedt geen mogelijkheid voor het uitgeven van SSL-clientcertificaten.

Hoe verder met PKI?
De bovengenoemde punten geven aan dat Convergence niet per se een beter alternatief is voor PKI. Daarbij is Convergence een technisch alternatief voor PKI, terwijl de problemen bij Diginotar en Comodo van organisatorisch aard waren. De inbraak bestond welliswaar uit het uitvoeren van technische handelingen, maar een goede beveiliging begint bij goede procedures en een goed ontwerp. Was het beveiligingsbeleid van Diginotar of de controleprocedure op Diginotar in orde, dan was de inbraak zeer waarschijnlijk niet mogelijk geweest.

Met het principe van PKI is niks mis. Waar het mis gegaan is, is met hoe PKI’s in de praktijk zijn ingericht. De uitgifte van digitale certificaten ligt bij vele commerciële partijen terwijl fouten in de uitgave gevolgen kan hebben voor een heel land of zelfs meer, zoals we gezien hebben bij Diginotar. Het aantal certificate authorities dient sterk te worden teruggebracht en de overgebleven authorities dienen onder zware toezicht te worden geplaatst. Niet alleen om de veiligheid van de uitgifte te kunnen garanderen, maar ook om te voorkomen dat authorities hun (bijna-)monopolypositie gaan misbruiken. De resultaten van periodieke audits dienen openbaar te worden gemaakt zodat gebruikers hun mate van vertrouwen in een CA kunnen bepalen.

ICT-beveiliging zonder op enig moment gebruik te maken van vertrouwen is zeer lastig. Ergens moet je gebruik maken van anderen, omdat alles zelf doen praktisch onmogelijk is. Maar vertrouwen is wel iets dat je moet verdienen. Naar mijn idee hebben CA’s te weinig gedaan om het vertrouwen te verdienen en het is tijd dat daar verandering in komt. Want problemen met een systeem los je op door de problemen aan te pakken en niet door het systeem in z’n geheel te vervangen door een ander systeem met z’n eigen problemen en nieuwe zwakheden.
Laatst gewijzigd: 06-11-2011, 22:48