Public Key Infrastructure

Bouw vertrouwen op in de PKI met certificaatketens, Root CA en Intermediate CA, en veilige certificaatvalidatie.

Public Key Infrastructure

Vertrouwen opbouwen

Hoe geeft een client aan dat hij een bepaalde Root CA vertrouwt?

Een client geeft zijn vertrouwen in een bepaalde Root CA (certificaatautoriteit) aan via een proces rond de certificaatketen van vertrouwen. Zo werkt het:

  • Vooraf geïnstalleerde rootcertificaten: de meeste besturingssystemen en webbrowsers worden geleverd met een set vooraf geïnstalleerde rootcertificaten van vertrouwde CA's. Die rootcertificaten staan in een store met vertrouwde rootcertificaten.
  • Certificaatvalidatie: wanneer een client verbinding maakt met een server, bijvoorbeeld bij het bezoeken van een website, presenteert de server zijn TLS-certificaat. Dat certificaat is doorgaans ondertekend door een Intermediate CA, die op haar beurt is ondertekend door een Root CA.
  • Verificatie van de vertrouwensketen: de client verifieert de vertrouwensketen door te controleren of het gepresenteerde certificaat is ondertekend door een vertrouwde Root CA. Ook controleert hij of de Intermediate CA's in de keten worden vertrouwd.
  • Digitale handtekeningen: elk certificaat in de keten is digitaal ondertekend door de CA erboven. De client gebruikt de publieke sleutel van die CA om deze handtekeningen te verifiëren en zo vast te stellen dat er niet met de certificaten is geknoeid.
  • Vertrouwensbeslissing: is de volledige vertrouwensketen geldig en leidt die terug naar een vertrouwde Root CA, dan vertrouwt de client het certificaat van de server. Daarmee kan de veilige communicatie doorgaan.

Wat is het voordeel van Intermediate CA's in plaats van één enkele Root CA?

Voor infrastructuur-PKI's kan één enkele root juist voordelig zijn.

Hoe komt een Intermediate CA aan zijn certificaat?

Een Intermediate CA (certificaatautoriteit) komt aan zijn certificaat via een proces dat cross-signing heet, uitgevoerd door een Root CA. Zo werkt het:

  1. Certificate Signing Request (CSR): de organisatie die een Intermediate CA wil opzetten, genereert een CSR. Die CSR bevat de publieke sleutel en de identificerende gegevens van de Intermediate CA.
  2. Indienen bij de Root CA: de CSR wordt ingediend bij een vertrouwde Root CA.
  3. Verificatie: de Root CA verifieert de identiteit en legitimiteit van de organisatie die het intermediate certificaat aanvraagt.
  4. Ondertekenen: zodra dat geverifieerd is, ondertekent de Root CA de CSR met haar privésleutel en maakt zo het intermediate certificaat. Dat ondertekende certificaat verbindt de Intermediate CA met de Root CA en legt daarmee een vertrouwensketen vast.
  5. Uitgifte: de Root CA geeft het ondertekende intermediate certificaat uit aan de aanvragende organisatie, die het vervolgens kan gebruiken om eindentiteitscertificaten te ondertekenen, bijvoorbeeld TLS-certificaten voor websites.

Dit proces zorgt ervoor dat de Intermediate CA wordt vertrouwd dankzij zijn verbinding met de Root CA, die al wordt vertrouwd door browsers en besturingssystemen.

Wat is een certificaatketen en hoe werkt die?

Een certificaatketen, ook bekend als vertrouwensketen, is een reeks certificaten die de authenticiteit en betrouwbaarheid van een digitaal certificaat borgt. Zo werkt het:

  • Verificatieproces: wanneer een client, bijvoorbeeld een webbrowser, verbinding maakt met een server, presenteert de server zijn eindentiteitscertificaat. De client controleert vervolgens de certificaatketen om vast te stellen dat elk certificaat is ondertekend door het volgende certificaat in de keten, tot aan het rootcertificaat.
  • Vertrouwensketen: elk certificaat in de keten wordt geverifieerd met de publieke sleutel van het certificaat erboven. Dat gaat door tot aan het rootcertificaat, dat de client al vertrouwt.
  • Vertrouwen vaststellen: is de hele keten geldig en leidt die terug naar een vertrouwd rootcertificaat, dan vertrouwt de client het eindentiteitscertificaat en kan de veilige communicatie doorgaan.

Dit systeem borgt dat het eindentiteitscertificaat legitiem is en is uitgegeven door een vertrouwde autoriteit, waarmee de integriteit en beveiliging van digitale communicatie in stand blijven.

Welk probleem wil de extensie Basic Constraints oplossen?

De extensie Basic Constraints in een digitaal certificaat pakt het probleem aan van het onderscheiden van verschillende soorten certificaten en hun rol binnen een public key infrastructure (PKI). Zo werkt het:

  • Herkenning van een certificaatautoriteit (CA): de extensie geeft aan of een certificaat een CA-certificaat is of een eindentiteitscertificaat. Dat onderscheid is cruciaal, want CA-certificaten kunnen andere certificaten uitgeven, eindentiteitscertificaten niet.
  • Padlengtebeperking: de extensie kan het aantal Intermediate CA's beperken dat onder deze CA in de certificaatketen mag bestaan. Zo worden overmatig lange certificaatketens voorkomen, die inefficiënt en mogelijk onveilig zijn.

Opgeloste problemen:

  • Ongeautoriseerde certificaatuitgifte voorkomen: door duidelijk te markeren welke certificaten als CA mogen optreden, wordt voorkomen dat eindentiteitscertificaten andere certificaten uitgeven, waarmee de integriteit van de PKI behouden blijft.
  • De lengte van de certificaatketen beheersen: door de padlengte te beperken blijft de certificaatketen hanteerbaar en veilig, en worden mogelijke kwetsbaarheden van lange ketens voorkomen

Welke mechanismen gebruikt ze om die problemen op te lossen?

De extensie Basic Constraints in een digitaal certificaat gebruikt de volgende mechanismen om CA-certificaten van eindentiteitscertificaten te onderscheiden en de lengte van de certificaatketen te beheersen:

  • CA-vlag: deze vlag geeft aan of het certificaat een CA-certificaat (certificaatautoriteit) is of een eindentiteitscertificaat. Staat de vlag op TRUE, dan kan het certificaat worden gebruikt om andere certificaten te ondertekenen en is het dus een CA-certificaat. Staat die op FALSE, dan is het een eindentiteitscertificaat en kan het geen andere certificaten uitgeven.
  • Padlengtebeperking: deze geeft het maximale aantal niet-zelf uitgegeven intermediate certificaten aan dat in een geldig certificeringspad op dit certificaat mag volgen. Met die beperking begrenst de extensie de lengte van de certificaatketen, zodat die hanteerbaar en veilig blijft.

Hoe deze mechanismen werken:

  • CA-vlag: bij de uitgifte van een certificaat wordt de CA-vlag ingesteld volgens het beoogde gebruik van het certificaat. Tijdens de certificaatvalidatie controleren clients deze vlag om te bepalen of het certificaat mag worden vertrouwd om andere certificaten uit te geven.
  • Padlengtebeperking: deze waarde wordt tijdens het validatieproces gecontroleerd om te borgen dat de certificaatketen de opgegeven lengte niet overschrijdt. Is de keten te lang, dan geldt het certificaat als ongeldig.

Deze mechanismen helpen de integriteit en beveiliging van de public key infrastructure (PKI) in stand te houden, doordat alleen geautoriseerde certificaten andere certificaten kunnen uitgeven en overmatig lange certificaatketens worden voorkomen.