Patroon voor public key infrastructure

Uit NORA Online
Naar navigatie springen Naar zoeken springen


Onderdeel van
Thema's
Contact
Guus van den Berg
Guus.vandenberg@cip-overheid.nl
Status
Dit thema wordt momenteel opnieuw bekeken door de Expertgroep Beveiliging

Criteria

Integriteit, Vertrouwelijkheid

Context

Bij elektronische communicatie rekenen de gebruikers er op dat deze dezelfde- of een hogere betrouwbaarheid biedt als hetgeen men gewend was bij postverkeer, namelijk: bezorging op het juiste adres inclusief handhaving van het briefgeheim.

Omgeving van een PKI

Probleem

De belangrijkste problemen die voor een betrouwbare elektronische communicatie opgelost moeten worden zijn:

  1. Identiteit: Hoe kun je vaststellen met wie je communiceert en hoe weet de ontvanger zeker dat jij de verzender bent en niet iemand anders?
  2. Vertrouwelijkheid: Hoe zorg je ervoor, dat de inhoud onleesbaar is voor derden?
  3. Integriteit: Waarmee kan worden aangetoond dat gegevens tijdens transport (niet) zijn gewijzigd?
  4. Onweerlegbaarheid: Waarmee wordt voorkomen dat een ontvangen bericht kan worden ontkend?
  5. Sleuteldistributie en beheer: Bij grote aantallen gebruikers van symmetrische versleuteling neemt de beheerlast exponentieel toe. Een dilemma bij encryptie is tevens dat er eerst geheime sleutels uitgewisseld moeten worden alvorens veilige communicatie mogelijk is. De vraag die voorligt is: hoe kan in het publieke domein en bij grootschalige bedrijfstoepassingen sleuteldistributie en beheer haalbaar worden ingevuld?

Oplossing

Een Public Key Infrastructure (PKI) is een set van technische en organisatorische voorzieningen, die een oplossing biedt voor bovengenoemde probleemstelling. PKI berust op asymmetrische versleuteling en elektronische certificaten. Bij asymmetrische versleuteling worden twee encryptiesleutels toegepast: één publieke sleutel en één geheime private sleutel. Deze sleutels hebben een unieke wiskundige relatie met elkaar, wat betekent dat de data die versleuteld is met de publieke sleutel van de zender, alleen ontsleuteld kan worden met de private sleutel van een ontvanger en niet met de publieke sleutel zelf! Omgekeerd wordt het versleutelen van een Hash met behulp van de private sleutel van de zender en ontsleuteling daarvan met de publieke sleutel van de ontvanger gebruikt bij ‘het zetten’ van een elektronische handtekening. De persoon of instelling, die de aldus versleutelde data wil verzenden of ontvangen, kan zijn publieke sleutel op elke gewenste manier versturen of bekend maken, dus ook op zijn eigen website! Om publieke sleutels (en de geldigheid daarvan) voor een ieder toegankelijk en vindbaar te maken op het internet, zijn er ‘public key servers’ ingericht waarop men een publieke sleutel kan plaatsen. De sleutel kan dan gevonden worden op persoon en op e-mailadres, maar biedt geen garantie dat het e-mail adres bij de persoon of instelling hoort, die staat aangegeven op de server. Dit probleem wordt opgelost middels het gebruik van certificaten. Van hetzelfde sleutelpaar wordt nu de publieke sleutel opgenomen in een zogeheten Public Key Certificaat. De uitgifte en beheer rond deze certificaten wordt op een geformaliseerde wijze uitgevoerd, zodat de status van het certificaat en de eigenaar gegarandeerd is. Daarmee kunnen de sleutels in combinatie met de betreffende certificaten gebruikt worden voor authenticatie en het versturen van geheime (sleutel-) informatie over een niet vertrouwd netwerk. Certificaten worden door een (derde) partij uitgegeven, die zowel door zender als ontvanger vertrouwd wordt; een Certificate Service Provider (CSP). De CSP garandeert de echtheid en de oorsprong van de certificaten en moet zelf ook aan kwaliteitseisen voldoen: ETSI of OPTA voor PKIoverheid. Certificaten kunnen in allerlei vormen worden uitgegeven. De bijbehorende private sleutels moeten beschermd zijn tegen dupliceren en worden bij voorkeur uitgegeven en opgeslagen op afzonderlijk te beveiligen objecten als smartcards, usb-tokens, en Hardware Security Modules (HSM). Er zijn verschillende soorten van PKI in gebruik en daaraan gekoppeld bestaan verschillende soorten van uitgifte processen van certificaten door CSP’s:

  1. Binnen een organisatie: hier worden certificaten uitgegeven door een “eigen” CSP
  2. Binnen het publieke domein: uitgifte processen moeten hierbij voldoen aan wet- en regelgeving voor elektronische handtekeningen. In Nederland zijn normen vastgelegd voor PKIoverheid certificaten. Verschillende organisaties zijn gecertificeerd voor het uitgeven van PKIoverheid certificaten.
Basiselementen van een public key infrastructure

Objecten van beschouwing in een PKI zijn:

  • Gebruikers die onderling veilige transacties willen uitvoeren. De relatie tussen de gebruikers kunnen van allerlei typen zijn (leverancier – afnemer, werkgever – werknemer, organisatie – overheid, enz.). Om dit te kunnen doen moeten de partijen vertrouwen op de Registration Authority (RA) en de Certificate Authority (CA). Deze twee organisaties behoren bij een PKI. De mate van zekerheid, dat het sleutelbeheer, de authenticatie en de vertrouwelijkheid geregeld zijn hangt rechtstreeks af van de kwaliteit van deze instellingen.
  • Registration Authority (RA) is een instelling waar gebruikers aanvragen kunnen indienen voor het verkrijgen van een certificaat (certificate request). Voor een hoog kwaliteitsniveaucertificaat is de kwaliteit van de verificatie van de identiteit van de gebruiker belangrijk.
  • Certificate Authority (CA) is de derde vertrouwde partij. Het is de CSP, die certificaten uitgeeft op basis van de door de CA zelf goedgekeurde certificate requests. Deze requests worden ontvangen door één of meerdere RA servers. De CA beheert de uitgegeven certificaten, publiceert ze en bewaart de certificaten in de Certificate repository. Tevens publiceert de CA een lijst van ingetrokken certificaten; de Certificate Revocation List (CRL). Op de Online Certificate Status Protocol server (OCSP) kan online worden bevraagd of een certificaat geldig is.
  • Sleutelpaar. Een paar asymmetrische sleutels, waartussen een bepaalde relatie bestaat. Een sleutel is de private sleutel van de gebruiker. Deze moet de gebruiker geheim houden. De andere sleutel is de publieke sleutel van de gebruiker, deze moet juist openbaar beschikbaar zijn.
  • Certificaat. Een elektronisch object, het bevat de identiteit van de certificaathouder, de publieke sleutel en een verwijzing naar de verantwoordelijke CA.
  • Certificaat status server. Een server van de CA, die via het internet bereikbaar is. Deze stelt informatie over de inhoud van de CRL en over de verstrekte certificaten beschikbaar. Een eindgebruiker kan daarmee via zijn browser op Internet controleren of zijn relaties beschikken over geldige certificaten en wat de publieke sleutels daarvan zijn. Een voorbeeld is de OCSP server.

Vier stappen voor verkrijgen van PKI certificaten

  • Stap 1: Per stap worden steeds twee varianten uitgelegd: bij variant (A) genereert de houder van het certificaat de encryptiesleutels zelf, bij variant (B) doet de Certificate Authority dat.
    • (A) De client genereert zelf het sleutelpaar. Daarna vraagt hij een certificaat aan bij de RA. De client geeft daarbij de publieke sleutel van zijn sleutelpaar mee.
    • (B) De client vraagt een certificaat aan bij de RA zonder zelf de sleutel gegenereerd te hebben.
  • Stap 2: De RA doet de verificatie van de aanvrager van het certificaat. De nauwkeurigheid van de verificatie is een belangrijk kwaliteitsaspect van het certificaat. Dit kan variëren van geen verificatie tot een grondige controle van de persoonsgegevens en face-to-face of zelfs een notariële verificatie. Daarna bestelt de RA het certificaat bij de CA. Als de RA-functie geautomatiseerd verloopt , dan worden correct ingevulde aanvragen direct doorgestuurd naar de CA.
  • Stap 3:
    • (A) De CA maakt na goedkeuring het certificaat aan en zet deze in een lokale repository. De CA beoordeelt de authenticiteit van aanvragen, maakt na goedkeuring nieuwe certificaten aan en zet deze in een (lokale) repository.
    • (B) De CA genereert een sleutelpaar en gebruikt de nieuwe publieke sleutel om een certificaat aan te maken. Deze wordt in een lokale repository gezet. De private sleutel wordt op een zodanige wijze bewaard, dat ook niemand bij de CA kennis kan nemen van de waarde van de sleutel.
  • Stap 4: De CA zorgt voor de publicatie van een up-to-date Certificate Revocation List (CRL), waarop alle ingetrokken certificaten staan vermeld. De CRL wordt gepubliceerd op de OCSP server, die computers antwoord geeft over de geldigheidsstatus van een certificaat.
    • (A) De CA stuurt een bevestiging naar de client. De client is verantwoordelijk voor de beveiligingsmaatregelen rond het gebruik van de private sleutel.
    • (B) De Client ontvangt van de CA de private sleutel op een beveiligde wijze. De client is verantwoordelijk voor een beveiligde opslag van deze sleutel. De client is ook verantwoordelijk voor de beveiligingsmaatregelen rond het gebruik van de private sleutel.
Het verkrijgen van public key certificaten

Het gebruik van PKI certificaten

Voorbeeld van het gebruik van Public Key Certificaten: Elektronische handtekening ter authenticatie van de afzender en versleuteling van het bericht. Dit proces kan geheel geautomatiseerd worden uitgevoerd.

  1. Gebruiker (Client) controleert de geldigheid van het certificaat van de relatie en haalt daar de publieke sleutel op.
  2. Gebruiker stuurt een bericht naar de Relatie. Hij gebruikt zijn private sleutel voor een digitale handtekening. Hij versleutelt het bericht met behulp van de publieke sleutel van de partner.
  3. Relatie gebruikt zijn private sleutel om het bericht te ontsleutelen. Relatie controleert de geldigheid van het certificaat van de Client en haalt diens publieke sleutel op via het netwerk of vanuit het certificaat van de relatie. Hij gebruikt de publieke sleutel voor de authenticatie van de afzender.

Het bericht is nu geverifieerd op integriteit.

Het gebruik van public key certificaten

Voorbeelden

  • Aanleveren notariële akten bij Kadaster

Implicaties

De toepassing van PKI impliceert dat zender en ontvanger beschikken over cryptografische middelen voor toepassing van sleutels, die gegenereerd zijn uit certificaten, die verbonden zijn aan één en hetzelfde rootcertificaat. Evenals in de situatie waarbij systemen of organisaties als zender of ontvanger worden beschouwd, zal binnen die organisaties functiescheiding nodig zijn tussen degene die namens de organisatie beslissingsbevoegd is om certificaten aan te vragen, het beheer (incl. uitvoering) van het aanvraagproces van certificaten en het implementeren en gebruiken van certificaten.

Gerelateerde patronen

Patroon voor elektronische handtekening, dat PKI gebruikt voor identificatie en authenticatie en onweerlegbaarheid van berichtuitwisseling.

Standaarden

  • X.509
  • RFC3647, RFC4210, RFC5280, RFC2559, RFC2585, RFC2560,
  • ETSI TS 102042,
  • ETSI TS 101456,
  • Programma van eisen van PKIoverheid