Certificaten voor het aansluiten op de Berichtenbox

Gepubliceerd: Categorie: Oracle

Je kent het waarschijnlijk wel: de Berichtenbox van MijnOverheid. Dit is een portaal voor digitale post van de overheid richting de burgers. Steeds meer partijen maken hier nu gebruik van. Maar hoe gaat dat: een organisatie aansluiten op de Berichtenbox? In dit artikel ontdek je meer. Hierbij treden we in detail over het aanvragen van digitale certificaten.

Steeds meer partijen maken gebruik van de Berichtenbox. Het meest bekend is wellicht de Belastingdienst, maar ook partijen zoals de RDW, gemeenten, SVB en het UWV maken er nu al gebruik van. Daarnaast zullen ook andere instellingen (zoals pensioenfondsen) gaan werken met de Berichtenbox. Achter het webportaal, met de welbekende inbox voor de burger, staat een hele infrastructuur waarmee instanties en bedrijven in staat worden gesteld berichten aan te bieden aan de Berichtenbox. Deze infrastructuur wordt ontwikkeld en beheerd door Logius.

“Logius is de dienst digitale overheid en onderdeel van het ministerie van Binnenlandse Zaken en Koninkrijksrelaties. De diensten en standaarden van Logius zijn voor de gehele overheid ontwikkeld. Logius is verantwoordelijk voor het beheer, de doorontwikkeling en de overheidsbrede toepassingen van deze diensten en standaarden. Bij oplossingen ziet u welke diensten of standaarden Logius biedt voor uw digitale vraagstukken.” [1]

Wie is wie?

Om in de digitale wereld zeker te weten met wie we communiceren wordt er gebruik gemaakt van een Public Key Infrastructure (PKI). “Een public key infrastructure (PKI) is een systeem waarmee uitgiften en beheer van digitale certificaten kan worden gerealiseerd.” [4] Met behulp van digitale certificaten kun je berichten verzenden, waarmee de ontvanger kan controleren wie het bericht heeft verzonden.

Een PKI bestaat onder andere uit een Certificate Authority (CA). Dit is de partij die digitale certificaten uitgeeft, ondertekent en registreert. Zo’n CA acteert als Trusted Third Party (TTP) tussen zender en ontvanger van berichten. Als beide zender en ontvanger deze CA accepteren als autoriteit, dan zullen certificaten ondertekend door deze CA geaccepteerd worden als authentiek.

Het is ook mogelijk om een hiërarchie aan te houden in een PKI. Zo heb je een Root CA, en daaronder enkele andere Certificate Services Providers (CSPs). Deze CSPs kunnen dan zelf certificaten uitgeven onder de hiërarchie van de Root CA.

PKIOverheid

Er bestaan verschillende Public Key Infrastructures, elk met hun eigen Root CA. Denk bijvoorbeeld aan: Verisign, GeoTrust, QuoVadis en Entrust. De bekende Root CAs zijn al van tevoren in alle webbrowsers geïnstalleerd. Webbrowserleveranciers geven hiermee aan dat certificaten, ondertekend door deze partijen, vertrouwd kunnen worden.

Ga je naar een website waar SSL gebruikt wordt op basis van een certificaat getekend door één van deze Root CAs, dan verschijnt er bijvoorbeeld een slotje ter indicatie dat de connectie beveiligd is en dat je communiceert met een partij met een valide en vertrouwd certificaat (zie figuur 1).

Figuur 1: browser geeft aan dat deze website geverifieerd is door Entrust, een groen slotje geeft ook aan dat de browser dit certificaat vertrouwt

Omdat de Nederlandse overheid niet afhankelijk wil zijn van (buitenlandse) commerciële partijen is er gekozen voor een eigen Public Key Infrastructure: PKIOverheid.

De Nederlandse overheid is zelf verantwoordelijk voor het stamcertificaat op de Root CA. Het daadwerkelijk uitgeven van certificaten is uitbesteed aan commerciële CAs, die optreden als Certificate Service Providers (CSP). De overheid geeft daarmee zelf geen eindgebruikerscertificaten uit, maar alleen certificaten aan de CSPs. Het mogen uitgeven van PKIOverheid certificaten is gebonden aan strenge eisen die nageleefd moeten worden door de CSPs. Bedrijven die een PKIOverheid certificaat willen aanschaffen dienen zich onder andere fysiek te identificeren als medewerker van dat bedrijf [6].

Figuur 2: RootCA met daaronder 2 CSPs die de certificaten daadwerkelijk uitgeven [7]

Certificate Service Providers voor PKIoverheid

Voor het aanvragen van een PKIoverheid-certificaat kun je terecht bij de volgende leveranciers:

  • Digidentity
  • ESG
  • KPN
  • QuoVadi

Bij deze partijen kun je als bedrijf PKIOverheid certificaten aanschaffen. Zij waarborgen dat degene die de certificaten aanvraagt ook daadwerkelijk werkzaam is bij het bedrijf, en dat identiteitspapieren, bevoegdheden en andere administratie afgehandeld is [3].

Een overzicht van alle certificaten en CSPs die opereren onder de PKIOverheid: https://cert.pkioverheid.nl

Certificaatstructuur

Om enige context te scheppen beschrijven we in het kort de versimpelde structuur van een certificaat.

1.      Issuer: wie heeft dit certificaat uitgegeven? Dit is normaliter een CA.

2.      Subject: over wie gaat dit certificaat (wie wordt hier gecertificeerd)? Zie figuur 3 voor een voorbeeld. Bekende attributen in het Subject zijn:

  • C: CountryName
  • S: StateOrProvinceName
  • L: Locality
  • OU: OrganizationalUnit
  • O: Organization
  • CN: CommonName

3.      Subject Public Key

4.      Digitale handtekening van de Issuer (CA): een hash van o.a. bovenstaande certificaatgegevens die daarna versleuteld wordt m.b.v. de private key van de CA.

De digitale handtekening van de Issuer zorgt ervoor dat iedereen die deze Issuer (CA) vertrouwt, dit certificaat als echt beschouwt.

De Subject Public Key is hiermee geaccepteerd als de partij beschreven in de Subject-attributen. Alle berichten die door deze Subject gehashed worden met hun private key, kunnen op basis van de Subject Public Key in dit certificaat gevalideerd worden.

Figuur 3: voorbeeld subjectinformatie bij een certificaat

Certificaten aanvragen en creëren

Het aanmaken van certificaten is technisch eigenlijk heel simpel. Met behulp van gratis tools (zoals OpenSSL) is het relatief eenvoudig om je eigen certificaten te maken en te ondertekenen.  

Voor het aanmaken van een zelfgetekend certificaat kun je het volgende commando gebruiken:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

  • X509 is het type certificaat dat je aanmaakt
  •  Zelfgetekend certificaat komt in bestand: certificate.crt
  • Private key komt in bestand: privateKey.key
  • Private key is een RSA key met 2048 bits
  • ‘Nodes’ zorgt ervoor dat er geen wachtwoord nodig is om de privateKey.key file te lezen 

Via de commandline worden er nog enkele gegevens gevraagd door OpenSSL, voor bijvoorbeeld het vullen van bedrijfsnaam, land, organisatie e.d.

Door het zelf te ondertekenen wordt het certificaat uiteraard nog niet vertrouwd door anderen. Dit vergt een ondertekening door een algemeen vertrouwde Certificate Authority (CA). Het ondertekend krijgen door een CA van jouw ‘certificaat’ doe je via het indienen van een Certificate Signing Request (CSR). Op basis hiervan kan een CA jouw certificaat ondertekenen met behulp van hun private key. Daarmee bevestigen ze digitaal dat jouw certificaat door hen uitgegeven is.

Aanmaken van een standaard Certificaat Signing Request (CSR):
openssl req -nodes -sha256 -newkey rsa:2048 -keyout privateKey.key -out signingRequest.csr

  • De private key komt in bestand: privateKey.key
  • Het CSR komt in bestand signingRequest.csr
  • Er wordt een hash gebruikt van 256bits, om jouw CSR te ondertekenen
  • Private key is van type RSA 2048bits

Voor Logius dient er echter een certificaat op basis van een Overheids Identificatie Nummer (OIN) aangemaakt te worden. Voor niet-overheidsbedrijven kan het Handelsregisternummer (KvK) gebruikt worden. Er bestaat een register van OIN-nummer per instantie (https://register.digikoppeling.nl). Dit OIN dient opgenomen te worden in de CSR via het serialNumber-veld van het Subject [2].

Aanmaken van een Logius Certificaat Signing Request (CSR):
openssl req -nodes -sha256 -newkey rsa:2048 -keyout privateKey.key -out signingRequestLogius.csr -subj "/C=NL/ST=Zuid Holland/L=Rijswijk/O=IND/OU=SBR/CN=qualogy.com/serialNumber=00000003301512720000"

Waar bij het vorige request via prompts op de command line gevraagd werd naar de meest gebruikte Subject-velden, geven we nu alle gewenste Subject-velden direct op via parameter ‘subj’. Hier staat het gebruikte serialNumber achter, wat overeenkomt met het KvK-nummer van Qualogy met een bepaalde pre- en suffix. Wanneer het certificaat geleverd wordt door de CA zal je een certificerings-pad zien zoals in figuur 4.

Figuur 4: certificerings-pad van een certificaat uitgegeven onder PKIOverheid. Digidentity heeft als CA in de hiërarchie van PKIOverheid onze digitale identiteit bevestigd.

Cliëntcertificaat voor het leveranciersportaal

Als laatste gaan we in op het leveranciersportaal van Logius. In dit portaal is het mogelijk om naast configuratie ook monitoring uit te voeren op het gebruik van de Berichtenbox.

Om via de browser toegang te krijgen tot dit portaal is het vereist om een geldig clientcertificaat te installeren. Op basis van het PKIOverheid certificaat en de private key is het mogelijk om een PKCS archief te maken. Dit formaat is makkelijk te importeren in een browser als clientcertificaat. Voor het aanmaken van een PKCS archief kun je in OpenSSL het volgende commando gebruiken:

openssl pkcs12 -export -out clientCertificates.pfx -inkey privateKey.key -in certificateSigned.crt

  • Een PKCS12 archief wordt aangemaakt
  • Het archief wordt opgeslagen in clientCertificates.pfx
  • We gebruiken de eerder gecreëerde private key uit bestand privateKey.key.
  • We gebruiken het door de CA getekende certificaat uit bestand certificateSigned.crt

Referenties

[1] Over Logius, https://www.logius.nl/over-logius

[2] Overheidsidentificatienummer (OIN), Logius https://www.logius.nl/ondersteuning/overheidsidentificatienummer-oin

[3] PKI Overheid, https://www.logius.nl/ondersteuning/pkioverheid

[4] Public Key Infrastructure, https://nl.wikipedia.org/wiki/Public_key_infrastructure

[5] Digikoppeling, https://www.logius.nl/ondersteuning/digikoppeling

[6] PKIOverheid, https://nl.wikipedia.org/wiki/PKIoverheid

[7] PKI for Network Engineers (1/3): Theory, https://densemode.com/2016/07/26/pki-for-network-engineers-13-theory

Richard Velden
Over auteur Richard Velden

Oracle Fusion Middleware Developer at Qualogy. Specializes in integration and cloud development using Oracle technologies such as: SOA Suite, Service Bus, Integration and Process Cloud.

Meer posts van Richard Velden
Reacties
Reactie plaatsen