Introductie
De X.509-standaard is een veelgebruikt formaat voor digitale certificaten. Deze certificaten worden in verschillende internetprotocollen gebruikt om de identiteit van de bron te verifiëren, wat uiteindelijk een belangrijke rol speelt bij het opbouwen van vertrouwen tussen gebruikers. X.509-certificaten worden uitgegeven door certificeringsinstanties (CA's) en bevatten informatie zoals de identiteit van de entiteit (meestal in de vorm van een domeinnaam), de openbare sleutel, de digitale handtekening, de vervaldatum en andere relevante gegevens.
De structuur van een X.509-certificaat wordt gedefinieerd door de X.509-standaard, die wordt onderhouden door de Internationale Telecommunicatie-unie (ITU) en de Internet Engineering Task Force (IETF). Deze standaard specificeert het formaat voor openbare-sleutelcertificaten, certificaatintrekkingslijsten (CRL's), kenmerkcertificaten en algoritmen voor de validatie van certificatiepaden.
Wat is een X.509-certificaat?
X.509-certificaat is een digitaal certificaat die de X.509 Openbare sleutelinfrastructuur (PKI) standaard om het eigendom van een openbare sleutel te verifiëren. Het certificaat kan worden gebruikt voor asymmetrische of symmetrische encryptie, die kan behoren tot een gebruiker, website, apparaat of organisatie. Een X.509-certificaat bevat informatie over de eigenaar van het certificaat en over het certificaat zelf. Enkele van de gegevens zijn:
-
Versie
Het versieveld geeft de iteratie aan van de X.509-standaard die is gebruikt om het certificaat te maken. Elke versie kan nieuwe functies, velden of beveiligingsverbeteringen introduceren. Nieuwere versies kunnen bijvoorbeeld krachtigere cryptografische algoritmen ondersteunen of verbeterde mechanismen bieden voor het intrekken en beheren van certificaten.
-
Serienummer
Dit serienummer dient als unieke identificatie voor het certificaat binnen het domein van de uitgevende certificeringsinstantie (CA). Het is cruciaal om onderscheid te maken tussen verschillende certificaten die door dezelfde certificeringsinstantie zijn uitgegeven, en om duplicatie of verwarring te voorkomen. Het serienummer is doorgaans een niet-negatief geheel getal dat oploopt met elk nieuw certificaat dat door de CA wordt uitgegeven.
-
Handtekeningalgoritme
Het handtekeningalgoritme specificeert het cryptografische algoritme en de parameters die de CA gebruikt om de digitale handtekening over de inhoud van het certificaat te genereren. Veelvoorkomende handtekeningalgoritmen zijn: RSA, DSA en ECDSA, die elk een ander niveau van beveiliging en efficiëntie bieden. De keuze van het algoritme hangt af van factoren zoals sleutelgrootte, rekenkracht en cryptografische sterkte.
-
Naam uitgever:
Dit veld identificeert de entiteit (meestal een CA) die het certificaat uitgeeft en ondertekent. De DN (Distinguished Name) van de uitgever bevat informatie zoals de naam van de organisatie, het land en mogelijk de organisatie-eenheid. Het verifiëren van de identiteit van de uitgever is essentieel om vertrouwen in de certificaatketen te creëren en te garanderen dat het certificaat niet frauduleus is uitgegeven.
-
Geldigheidsperiode
De geldigheidsperiode specificeert het tijdsbestek waarin het certificaat als geldig en betrouwbaar wordt beschouwd voor cryptografische bewerkingen. Deze bestaat uit twee componenten: de notBefore-datum, die de vroegst mogelijke datum en tijd aangeeft waarop het certificaat geldig wordt, en de notAfter-datum, die de vervaldatum en -tijd aangeeft. Een goed beheer van de geldigheidsperiode helpt het risico op verlopen of gecompromitteerde certificaten te beperken.
-
Onderwerp
De onderwerpnaam identificeert de entiteit (bijv. persoon, organisatie, apparaat) waaraan het certificaat is uitgegeven. Deze bevat doorgaans informatie zoals de algemene naam (CN), wat vaak de domeinnaam is voor SSL/TLS-certificaten, evenals aanvullende kenmerken zoals organisatie (O), organisatie-eenheid (OU), locatie (L), staat (ST) en land (C). Nauwkeurige en actuele onderwerpinformatie is cruciaal voor de correcte identificatie van certificaathouders.
-
public Key
De openbare sleutel in het certificaat wordt gebruikt voor cryptografische bewerkingen zoals encryptie, digitale handtekeningen en sleuteluitwisseling. Deze is wiskundig gerelateerd aan de bijbehorende privésleutel, die veilig bewaard wordt door de certificaathouder. De openbare sleutel stelt anderen in staat handtekeningen te verifiëren of berichten te versleutelen die voor de certificaathouder bestemd zijn, waardoor veilige communicatie en gegevensintegriteit worden gegarandeerd.
-
Optionele uitbreidingen
Uitbreidingen bieden extra metadata of functionaliteit naast de basiscertificaatvelden die zijn gedefinieerd in de X.509-standaard. Ze maken aanpassing en specialisatie van certificaten mogelijk om te voldoen aan specifieke vereisten of use cases. Zo specificeren sleutelgebruikuitbreidingen de beoogde doelen van de openbare sleutel, terwijl SAN-uitbreidingen (Subject Alternative Name) meerdere identiteiten (bijv. domeinnamen) ondersteunen die aan de certificaathouder zijn gekoppeld. Uitbreidingen verbeteren de interoperabiliteit, beveiliging en bruikbaarheid van X.509-certificaten in diverse omgevingen en toepassingen.
