Door Anoniem: Wat ik hier mis, en ik zal niet de enige zijn, is een duidelijke uitleg in begrijpelijk Nederlands, hoe het mogelijk is dat een root-certificaat is gecompromitteerd.
Hoe dat mogelijk is? Nalatigheid, foutje, noem maar op. Zo ging er een tijd terug het gerucht rond dat door ambtelijk er met de pet naar gooien een root cert van een overheidsinstelling (van een land ergens in Azie) circuleerde, dat ze dit wisten en dat het ze niet genoeg kon schelen om er ook wat aan te doen. Tsja. Ik heb het stuk niet helemaal uitgeplozen maar de rapportage is dat ze een contact gevonden hebben waar je geld naartoe schuift en die regelt dan een vertrouwd certificaat voor je. Het kan goed zijn dat het om een achterdeurtje gaat, dit een "broker" is voor corrupte contacten, iets in die trant. Dat is dus niet een probleem met de cryptografische wiskunde die de certificaten moet garanderen (daar hebben we ook al gedonder mee gehad), maar een typisch mensenprobleem.
En dan zie je hoe PKI daar inherent gevoelig voor is. Want kijk maar naar je certificate store in je browser: Daar zitten iets van 650 absoluut vertrouwde certificaten tussen van een paar honderd organisaties van allerlei allooi. Het model is dus, als je in het bezit bent van zo'n certificaat kan je alles, als niet dan niet. Maar dat maakt alle root certificaten en dus alle houderorganisaties, tot doelwit. In plaats van een bullseye, heeft een aanvaller er beschikking over 650. Mooi man.
Dus als je snapt hoe PKI is opgezet, dan snap je vrij snel dat dit een gigantische achilleshiel is. Als daar wat mis mee gaat, dan is het hoe niet eens zo heel belangrijk. Want het dat het mis zou gaan, daarvan wisten we eigenlijk wel dat het slechts een kwestie van tijd was, is, en zal zijn.
Of is het mogelijk om de broncode van een certificaat te veranderen.
Een certificaat bestaat uit een publieke sleutel en wat data, gesigneerd met een geheime sleutel. Je zou die ongesigneerde data "broncode" kunnen noemen maar niemand doet dat. In PKI heet zoiets een signing request, wat met een geheime sleutel gesigneerd wordt; jouw publieke sleutel plus data plus signatuur (gemaakt met de geheime sleutel van het signerede certificaat) tezamen is je nieuwe certificaat. De sleutel tot het certificaat zelf is ook een geheime sleutel, die moet je dus geheim houden. Een root cert is dan ook een certificaat dat zichzelf certificeert (met z'n eigen geheime sleutel).
Het moge duidelijk zijn dat iedereen een root cert kan maken. Maar een root cert dat helemaal niemand vertrouwt, daar heb je precies niets aan. Vandaar dus die lijst van gezegende root certs voor websites in je browser. Er zijn meer van die lijstjes voor verschillende browsers, maar ook voor verschillende andere doelen.
Andermans certficiaten (root of niet) aanpassen drukt zich meestal uit als een aanval op de wiskunde waar de gebruikte algorithmen op stoelen. Soms blijkt dat te kunnen (zoekterm "MD5"), en dan moet er iets anders verzonnen worden. Maar meestal is het makkelijker om een andere truuk te proberen. En dat kan ook echt vanalles zijn.
Al die links naar Engelstalige en ook nog technisch Engelstalige websites, zijn een groot obstakel voor de gemiddelde bezoeker en geïnteresseerde in deze materie.
Als je met "gemiddelde bezoeker" eigenlijk "DAU" ("Duemmst Anzunehmender User") bedoelt, dan kan ik er inkomen.
De bron is vaak alleen maar in het Engels te vinden, dus als je er in wil duiken zit je redelijk hard vast aan Engels leren. En dan kom je er vaak genoeg achter dat er bedroevend weinig inhoud te vinden is tussel al de sensatietermen. Wat dan weer betekent dat je de onderliggende fundamenten moet uitpluizen en je eigen analyses maken.