Introductie
Public Key Infrastructure (PKI) is een manier voor organisaties om de authenticiteit van personen, apparaten en meer te waarborgen. In een goed functionerende PKI spelen certificaten een belangrijke rol bij het autoriseren en authenticeren van de identiteit van gebruikers. Omdat certificaten regelmatig worden gegenereerd, ingetrokken en bijgewerkt om de infrastructuur functioneel te houden, is het belangrijk te begrijpen hoe certificaten worden gegenereerd, hoe ze worden gebruikt voor authenticatie en hoe certificaten met elkaar verbonden zijn. Bij het aanmaken van een certificaat wordt ook een sleutelpaar gevormd, bestaande uit een privésleutel en een publieke sleutel, die gebruikt kunnen worden voor asymmetrische encryptie, digitale handtekeningen en meer.
De privésleutel wordt vaak beveiligd in een HSM (Hardware Security Module) om datalekken te voorkomen, wat kan leiden tot compromittering van de sleutel. Elk certificaat bevat de publieke sleutel van de certificaathouder, die het certificaat de authenticiteit van die publieke sleutel verleent. Bij het tot stand brengen van een beveiligde verbinding kan de bijgevoegde publieke sleutel worden gebruikt voor asymmetrische encryptie, waardoor de gebruiker zich geen zorgen hoeft te maken over man-in-the-middle (MITM)-aanvallen. We zullen dit nu stap voor stap toelichten, te beginnen met het eerste certificaat dat in het netwerk wordt gegenereerd, om elk concept te begrijpen.
Root CA-certificaat
De root- CA vormt de ruggengraat van een PKI en blijft daarom offline. De root-CA ondertekent zijn eigen certificaat en legt de basis voor het vertrouwen tussen identiteiten om een ​​digitaal certificaat uit te geven. De root-CA ondertekent een certificaat voor de uitgevende CA en andere intermediaire CA's, zoals beleids-CA's in het geval van een drielaags architectuur. Het rootcertificaat is vergelijkbaar met elk ander certificaat dat u tegenkomt, maar het bevat over het algemeen geen CRL Distribution Points (CDP) of Authority Info Access (AIA).
Omdat niemand een rootcertificaat kan intrekken, zou de hele PKI moeten worden vervangen als de root-CA wordt gecompromitteerd. Als de root-CA een openbare CA is , kan het certificaat ervan worden toegevoegd aan de lijst met vertrouwde certificaten (Certificate Trusted Lists, CTL's) in het certificaatbeheerprogramma (certmgr.msc), waardoor het rootcertificaat wordt vertrouwd.
Tussenliggende CA of uitgevende CA
De root-CA ondertekent een certificaat voor uitgevende CA's en geeft hen de mogelijkheid om eindentiteitscertificaten te creëren die zijn toegewezen aan de identiteit van een gebruiker, apparaat of programma. Certificaten van uitgevende CA's worden ondertekend met de privésleutel van de root-CA. Het certificaat bevat ook een AIA, die certificaatlezers de URL toont van het root-certificaat, de uitgever van het certificaat van de uitgevende CA.

Het certificaat van de uitgevende CA bevat ook het CDP, waarmee kan worden bevestigd of het certificaat is ingetrokken.

Het uitgevende CA-certificaat wordt gebruikt om eindentiteitscertificaten te genereren. De persoonlijke sleutel van het certificaat wordt gebruikt om deze eindentiteitscertificaten te ondertekenen.
Eindentiteitscertificaten
Eindentiteitscertificaten worden uitgegeven door de uitgevende CA, die de privésleutel gebruikt om het certificaat te ondertekenen. Een eindentiteitscertificaat kan een servercertificaat of een apparaatcertificaat, zoals een firewall, zijn. Eindentiteitscertificaten kunnen worden gebruikt voor beveiligingsdiensten zoals authenticatie, vertrouwelijkheid van gegevens en integriteit van gegevens.

Elk certificaat bevat een openbare sleutel die kan worden gebruikt als digitale handtekening om gegevens te versleutelen, versleutelde sessies tot stand te brengen, enz.
Certificaatketen
Een certificaatketen is een hiërarchie van certificaten die begint bij de certificaten van de eindentiteit en terug te voeren is naar de uitgever, die uiteindelijk leidt naar het zelfondertekende certificaat van de root-CA.

Certificaatketens worden gebruikt om de autoriteit van de openbare sleutel en andere informatie in een typisch TLS/SSL-certificaat te verifiëren, inclusief de vraag of het certificaat toebehoort aan het genoemde onderwerp. Om dit te verifiëren, wordt de handtekening van het certificaat geverifieerd met de openbare sleutel in het certificaat van de uitgever, waarvan de handtekening vervolgens wordt geverifieerd met de openbare sleutel van de uitgever. Dit gaat door tot het rootcertificaat, het laatste certificaat in de keten, is bereikt. Om de certificaatketen te verifiëren, worden de volgende stappen gevolgd:
- De uitgever van elk certificaat moet overeenkomen met het onderwerp van het volgende certificaat. De uitgever van het certificaat van de eindentiteit moet dus overeenkomen met het onderwerp van het certificaat van de uitgevende CA, enzovoort. Dit zou moeten doorgaan tot we bij het rootcertificaat aankomen, dat zelfondertekend zou zijn. De uitgever en het onderwerp van dit rootcertificaat zouden hetzelfde zijn. Als we alle certificaten van de eindentiteit tot de root met succes verifiëren, bevestigt dit dat de certificaten correct aan elkaar gekoppeld zijn.
- Wanneer een certificaat wordt uitgegeven, wordt de privésleutel van die CA gebruikt om het certificaat te ondertekenen, en de bijbehorende publieke sleutel wordt gekoppeld aan het certificaat van de uitgevende CA. De handtekening van het uitgegeven certificaat moet daarom worden geverifieerd met de publieke sleutel in het certificaat van de uitgever.
- Het rootcertificaat is het vertrouwensanker van de PKI. Het rootcertificaat moet worden opgeslagen in Microsoft Certificate Manager, zodat browsers certificaten kunnen vertrouwen met het rootcertificaat als laatste certificaat in hun certificeringspad.

Om een ​​certificaat te vertrouwen, moet het een geldige uitgever hebben en teruggaan naar een vertrouwde root-certificeringsinstantie (CA). Alle intermediaire CA's en certificaten van eindentiteiten worden dan vertrouwd.
Certificaten verifiëren
Wanneer een browser een eindentiteitscertificaat downloadt, downloadt hij ook het certificaat van de uitgever of een bundel certificaten. Wanneer de verificatie van het certificaat start, wordt eerst de certificaatketen opgebouwd. Als deze succesvol is en het rootcertificaat is geverifieerd, wordt de validatieperiode van het certificaat gecontroleerd. Als de certificaten geldig zijn en de certificaatketen ook succesvol is opgebouwd, kan het certificaat worden vertrouwd. Als een van de validaties mislukt, waarschuwt de browser de gebruiker of blokkeert hij de toegang tot de website.
Conclusie
Certificaten zijn cruciaal in deze verbonden wereld, waar certificaten kunnen worden gebruikt voor authenticatie, encryptie van communicatie en data, en het waarborgen van dataprivacy. Onjuist geconfigureerde PKI's kunnen leiden tot slechte certificaten en mogen daarom niet worden vertrouwd. Browsers zullen ook een waarschuwing tonen of de toegang van de gebruiker tot een website met niet-vertrouwde certificaten volledig blokkeren. Een gezonde PKI moet certificaten creëren die certificaatketens kunnen creëren en handtekeningen kunnen verifiëren, waardoor een vertrouwd netwerk van gebruikers, apparaten en programma's ontstaat.
