Wat is PKI en hoe werken certificaten?

Auteur: Gepubliceerd

In het kort: PKI is een publieke-sleutelinfrastructuur: een systeem van certificaten, instanties, procedures en hulpmiddelen dat een cryptografische sleutel koppelt aan een domein, persoon of apparaat. Zo kan een browser controleren of hij verbinding maakt met de juiste server en kan een bedrijfsnetwerk een bevoegde computer herkennen. PKI vormt de basis voor veel toepassingen van HTTPS, authenticatie en digitale handtekeningen, maar garandeert op zichzelf niet dat de website-eigenaar betrouwbaar is of dat het hele systeem veilig is.

Hoe PKI een sleutel aan een identiteit koppelt

De afkorting PKI komt van het Engelse Public Key Infrastructure. De basis is asymmetrische cryptografie: technieken die gebruikmaken van twee wiskundig samenhangende sleutels, een publieke en een private. De publieke sleutel mag worden gedeeld, maar de private sleutel moet onder controle van de eigenaar blijven.

Bij een digitale handtekening wordt de private sleutel gebruikt om de handtekening te maken en de publieke sleutel om de geldigheid ervan te controleren. Een geslaagde controle bevestigt dat de handtekening met de bijbehorende private sleutel is gemaakt en dat de ondertekende gegevens niet zijn gewijzigd. Het sleutelpaar zelf vertelt echter niet van wie het is.

Een digitaal certificaat lost dit probleem op. Het is een elektronisch bewijs dat een publieke sleutel koppelt aan een bepaalde entiteit of identificatie, zoals een domeinnaam. Het bevat onder meer de publieke sleutel, gegevens van de entiteit, de uitgever, de geldigheidsperiode en de toegestane toepassingen. In het veelgebruikte X.509-formaat wordt het certificaat digitaal ondertekend door de uitgever.

Wat het certificaat precies bevestigt, hangt af van het type. Een basiscertificaat voor een HTTPS-server bevestigt volgens de procedure van de uitgever dat de aanvrager controle heeft over het opgegeven domein. Het bevestigt niet de betrouwbaarheid van een webwinkel of de kwaliteit van het aanbod.

Waaruit bestaat een PKI-infrastructuur?

PKI is geen afzonderlijk certificaat, maar een compleet systeem voor het uitgeven en beheren van certificaten. De belangrijkste onderdelen zijn:

Vertrouwen wordt doorgaans opgebouwd via een keten: het servercertificaat is ondertekend door een tussenliggende CA, en het certificaat van die CA leidt naar een vertrouwde hoofdinstantie, de root CA. Het rootcertificaat is meestal zelfondertekend, maar die handtekening maakt het niet betrouwbaar. Doorslaggevend is dat het eerder in het vertrouwensarchief is opgenomen.

Wat gebeurt er bij een HTTPS-verbinding?

HTTPS is HTTP dat wordt beschermd door het TLS-protocol. Dit protocol beveiligt de communicatie tussen browser en server. PKI helpt daarbij om de identiteit van de server te bevestigen.

Stel dat je de website winkel.example opent. Vereenvoudigd voert de browser de volgende stappen uit:

  1. Hij ontvangt het servercertificaat en de tussenliggende certificaten die nodig zijn om de vertrouwensketen op te bouwen.
  2. Hij controleert of het certificaat geldig is voor de naam winkel.example, of de geldigheidsperiode nog loopt en of het mag worden gebruikt voor serverauthenticatie.
  3. Hij verifieert de handtekeningen in de keten en controleert of deze naar een vertrouwde instantie leidt. Hoe informatie over ingetrokken certificaten wordt verwerkt, hangt af van de software en het ingestelde beleid.
  4. Tijdens de TLS-onderhandeling controleert hij het bewijs dat de server over de bijbehorende private sleutel beschikt en spreekt hij sessiesleutels af met de server.

Het certificaat versleutelt niet zelf al het verkeer. In modern TLS worden gegevens beschermd met efficiënte symmetrische cryptografie die de afgesproken sessiesleutels gebruikt. Het certificaat en de private sleutel dienen vooral voor de authenticatie van de server.

Correct werkend HTTPS beschermt de verzonden gegevens, maar bevestigt niet dat de ontvanger goede bedoelingen heeft. Ook een nepwebwinkel kan een geldig certificaat voor zijn domein hebben.

Publieke of private PKI: wat kies je?

Publieke PKI steunt op instanties die algemeen worden vertrouwd door browsers en besturingssystemen. Dit is de juiste keuze voor een openbaar toegankelijke website: bezoekers zouden niet handmatig het certificaat van jouw certificeringsinstantie hoeven te installeren. Controleer bij het kiezen van een dienst de actuele compatibiliteit met de gebruikte clients, de validatieregels en de mogelijkheden voor automatische vernieuwing.

Private PKI werkt binnen een organisatie of een gecontroleerde omgeving. Het bedrijf bepaalt zelf de regels voor het uitgeven van certificaten en configureert de beheerde apparaten zodat ze de eigen CA vertrouwen. Deze certificaten worden niet automatisch vertrouwd op computers van klanten buiten het bedrijf.

Een openbare bedrijfswebsite heeft bijvoorbeeld een certificaat nodig dat door de browsers van gebruikers wordt herkend. Voor de authenticatie van bedrijfslaptops op een Wi-Fi-netwerk kan juist private PKI worden gebruikt: elke laptop krijgt een eigen certificaat dat kan worden ingetrokken als het apparaat verloren raakt. Private PKI wordt ook gebruikt bij VPN en mTLS: TLS waarbij beide partijen in de verbinding zich met een certificaat authenticeren.

Wat moet je na de uitgifte van een certificaat onderhouden?

De belangrijkste verplichtingen beginnen nadat het systeem in gebruik is genomen. Private sleutels moeten worden beschermd tegen kopiëren en onbevoegd gebruik. Certificaten moeten worden geregistreerd, hun vervaldatums moeten worden bewaakt en ze moeten tijdig worden vernieuwd. Een verlopen certificaat kan de werking van een website of API-interface onderbreken of de toegang tot het netwerk blokkeren.

Als een private sleutel is uitgelekt, is het niet voldoende om het certificaat opnieuw te downloaden. Je moet een nieuw sleutelpaar genereren, een nieuw certificaat verkrijgen, het vorige intrekken en de oorzaak van het lek verhelpen. Hoe effectief de intrekking is, hangt ook af van de vraag of de systemen die het certificaat gebruiken de status ervan controleren.

Bepaal vóór de invoering wie de certificaten moet vertrouwen: iedere internetgebruiker of uitsluitend beheerde apparaten. Leg vervolgens vast wie verantwoordelijk is voor de bescherming van sleutels, automatische vernieuwing en de reactie op gestolen sleutels. Zonder die afspraken is zelfs een correct geconfigureerde PKI moeilijk veilig te onderhouden.

Zie ook: Wat is MCP?

Lees ook

Lees hoe PHP-FPM PHP-verzoeken verwerkt, verschilt van een webserver en hoe je processen afstemt op verkeer en hostingcapaciteit.
Ontdek hoe BIND als open DNS-serversoftware domeinen beheert, welke rollen het vervult en wanneer zelf beheren zinvol is.
Lees wat het Poolse REGON-register en -nummer betekenen, hoe ze verschillen van NIP en KRS en hoe je bedrijfsgegevens controleert.