3.1.2.3. Public Key Infrastructure (PKI)
Om versleutelde berichten tussen afzender en ontvanger uit te wisselen en te lezen moeten beide partijen in het bezit zijn van een sleutelpaar. Een sleutelpaar bestaat uit een private (geheime) sleutel en een publieke (openbare) sleutel. De private sleutel moet de eigenaar goed beveiligen en is ook alleen bekend bij de eigenaar. De publieke sleutel mag aan iedereen worden bezorgd.
Publieke sleutels hebben één nadeel: de ontvanger kan moeilijk controleren of de publieke sleutel afkomstig is van de ‘echte’ zender. Het zou namelijk ook van iemand kunnen zijn, die zich voordoet als de zender (dit noemt men spoofing). In zo'n geval helpt een digitaal certificaat. Een digitaal certificaat kan worden vergeleken met een paspoort of een identiteitskaart. Ze worden gebruikt als officiële legitimatie, om aan te tonen dat je bent wie je zegt dat je bent.
De geloofskracht van een certificaat hangt af van de partij of organisatie die het certificaat uitgeeft en de bijhorende controles die hieraan voorafgaan. Zo is het mogelijk om zelf een certificaat uit te geven, maar dan is de geloofwaardigheid eerder klein. Aan de andere kant kan een certificaat uitgegeven door een overheid als betrouwbaar worden beschouwd. In de praktijk zijn er heel wat organisaties die certificaten uitgeven en beheren: dit zijn commerciële organisaties én overheidsorganisaties.
Daarmee kan de echtheid van een entiteit en de relatie met zijn/haar publieke sleutel worden aangetoond.
Samengevat: welke beveiligingsdienst wordt wanneer toegepast?
Vertrouwelijkheid | Encryptie |
Integriteit | Encryptie (hash) en digitale handtekening |
Onweerlegbaarheid | Digitale handtekening met certificaat |
Authenticatie | Digitale handtekening met certificaat |
Een andere toepassing van cryptografie is het gebruik van websites. Organisaties stellen steeds meer diensten en informatie beschikbaar via internet. Het is belangrijk dat de gebruiker zeker weet dat de website waarop hij/zij gegevens invult daadwerkelijk van de organisatie is en of de communicatie met de website voldoende beveiligd is. Hiervoor zijn (Secure Sockets Layer- of) SSL-certificaten de oplossing. Een certificaat voegt een uniek zegel toe aan een website. Dit zegel is op websites beschikbaar voor controle van de echtheid en beveiliging van de website en garandeert op die manier de integriteit van die website.
De kracht van het certificaat
Een certificaat bevat volgende gegevens:
Geregistreerde naam van de eigenaar: de certificaathouder;
Publieke sleutel van de eigenaar;
Geldigheidsperiode van het certificaat;
Identiteit van de uitgever van het certificaat: de certificaatautoriteit (CA);
Locatie van de Certificate Revocation List (bij de uitgever van het certificaat); en
Samenvatting van bovenstaande gegevens, aangemaakt door een ‘hash’-functie, en vervolgens vercijferd met de geheime sleutel van de CA. Dit is de digitale handtekening en dient om de geldigheid en authenticiteit van bovenstaande gegevens te waarborgen.
Om bruikbaar te zijn in de meeste toepassingen, worden digitale certificaten opgemaakt volgens een algemeen erkende standaard, zijnde X.509. Eén van de kenmerken van deze standaard is dat zij de mogelijkheid biedt van eenvoudige tot uitgebreide identiteitscontrole van de certificaathouder. Eén van de meest voorkomende types certificaten zijn SSL-certificaten voor de beveiliging van websites (HyperText Transfer Protocol Secure of HTTPS) en software om de identiteit van de organisatie die de website of software beheert, aan te tonen.
De kracht van zo’n certificaat naar betrouwbaarheid toe zit in twee criteria:
Hoe betrouwbaar is de uitgever van het certificaat?
Hoe goed is de identiteit van de eigenaar van het sleutelpaar geverifieerd?
Voor het eerste punt, de uitgever van het certificaat, is het belangrijk om het certificaat zelf te verifiëren:
Is het certificaat niet uitgegeven door de eigenaar zelf (dan is er immers geen enkele controle op de identiteit van de eigenaar gebeurd)?
Is het certificaat nog geldig en niet gecompromitteerd (validiteit en revocatie)?
Is het certificaat uitgegeven door een betrouwbare partij?
Voor het tweede punt, de controle van de identiteit van de certificaathouder, zijn er drie opties bij het aankopen van een X.509-certificaat:
Domeinvalidatie: certificaten met domeinvalidatie bevatten geen bedrijfsgegevens. Er wordt alleen gecontroleerd of de aanvrager controle heeft over het domein waarvoor het certificaat wordt aangevraagd. Het certificaat wordt door alle browsers vertrouwd en zorgt voor een veilige verbinding d.m.v. encryptie. Bij SSL-certificaten met domeinvalidatie toont de browser een sloticoontje, bv.:
Organisatievalidatie (OV): De certificaten met organisatievalidatie bevatten bedrijfsgegevens. De bezoekers van een website kunnen met deze bedrijfsgegevens controleren of ze op de website van het juiste bedrijf zijn. De bedrijfsgegevens worden in het OV-certificaat opgenomen, maar komen niet prominent in beeld zoals dat bij (Extended Validation of) EV-certificaten het geval is. Ook hier toont de browser een slot-icoontje én zijn de bedrijfsgegevens in het certificaat opgenomen, maar ze komen niet prominent in beeld op de browser, bv.:
Uiterlijk zie je geen verschil met domeinvalidatie, maar het certificaat geeft wel meer details vrij.
Uitgebreide validatie (EV: Extended Validation): Naast de domeinvalidatie waarbij de aanvrager laat zien controle te hebben over het domein waarvoor het certificaat wordt aangevraagd, worden ook de bedrijfsgegevens gecontroleerd. Er wordt hiervoor naar een openbaar register gekeken, en er kan ter verificatie naar de organisatie worden gebeld. Soms is het noodzakelijk dat er bijkomende documenten worden ondertekend. Een website die gebruik maakt van EV SSLcertificaten vertoont een groene balk met het slot-icoontje, bv.:
Buiten de groene kleur en het slot-icoontje toont de browser ook de identificatie van de organisatie wanneer op het slot-icoontje geklikt wordt. Dit soort validatie wordt typisch gebruikt door financiële instellingen en webshops.
Specifiek voor de beveiliging van websites, zijn er – naast de drie validatievarianten – ook nog eens drie verschillende types SSL-certificaten:
Enkel-domein: dit type certificaten beschermt één enkel domeinnaam, bv. ‘www.eendomein.com’;
Multi-domein: hiermee is het mogelijk meerdere domeinnamen binnen één SSL-certificaat; en
Wildcard-certificaten: met een wildcard-certificaat worden alle subdomeinen van één domein beveiligd. Wildcard-certificaten zijn enkel beschikbaar bij domein- en organisatievalidatie, bij uitgebreide validatie (EV-certificaten) moet elk subdomein een eigen certificaat krijgen en kan men dus geen wildcard-certificaten toepassen.
PKI en CA
Een Public Key Infrastructure (PKI) is een set van technische en organisatorische voorzieningen, die een oplossing biedt voor het probleem van koppeling van een eigenaar (persoon of organisatie) aan zijn/haar crypto-sleutelpaar door middel van het digitale certificaat. De uitgifte en het beheer rond deze certificaten wordt op een geformaliseerde wijze uitgevoerd, zodat de status van het certificaat en de eigenaar gegarandeerd is. Daarmee kunnen publieke sleutels in combinatie met de betreffende certificaten gebruikt worden voor authenticatie en het versturen van geheime (sleutel)informatie over een niet vertrouwd netwerk.
Een PKI is dus een uitbreiding op de asymmetrische encryptietechniek die ervoor zorgt dat authenticatie en onweerlegbaarheid aantoonbaar wordt.
Certificaten worden door een (derde) partij uitgegeven, die zowel door zender als ontvanger vertrouwd wordt: een Certificate Service Provider (CSP). De CSP beheert de PKI-omgeving en garandeert de echtheid en de oorsprong van de certificaten. Een CSP moet zelf ook aan kwaliteitseisen voldoen. Certificaten kunnen in allerlei vormen worden uitgegeven. De bijbehorende private sleutels moeten beschermd zijn tegen niet-bevoegde toegang en worden bij voorkeur uitgegeven en opgeslagen op afzonderlijk te beveiligen objecten als smartcards, USB-tokens, en Hardware Security Modules (HSM).
De componenten van een CSP worden toegelicht in bijlage 2.
Er zijn verschillende soorten van PKI in gebruik en daaraan gekoppeld bestaan verschillende soorten van uitgifte processen van certificaten door CSP’s:
Binnen een organisatie: hier worden certificaten uitgegeven door een eigen CSP;
Binnen het publieke domein: uitgifteprocessen moeten hierbij voldoen aan de wet eIDAS en elektronische archivering1;
Web van vertrouwen (web of trust): in dit model wordt de controle van de identiteit uitgevoerd door de certificaathouders (de eigenaars van de certificaten). Ze staan zelf in voor de authenticiteit van de identiteit van de andere certificaathouders. Voorbeelden hiervan zijn Thawte, CAcert en PGP.
Om een digitaal certificaat te verkrijgen van een CSP, moeten een aantal technische stappen doorlopen worden. Dit wordt uitgelegd in bijlage 3.