X.509-certificaatattestatie

Dit artikel bevat een overzicht van de DPS-concepten (Device Provisioning Service) die betrokken zijn bij het inrichten van apparaten met behulp van X.509-certificaatverklaring. Dit artikel is relevant voor alle persona's die betrokken zijn bij het voorbereiden van een apparaat voor implementatie.

X.509-certificaten kunnen worden opgeslagen in een HSM voor hardwarebeveiligingsmodule.

Tip

We raden u ten zeerste aan om een HSM met apparaten te gebruiken om geheimen, zoals het X.509-certificaat, veilig op te slaan op uw apparaten in productie.

X.509-certificaten

Het gebruik van X.509-certificaten als attestation-mechanisme is een uitstekende manier om productie te schalen en het inrichten van apparaten te vereenvoudigen. X.509-certificaten worden doorgaans gerangschikt in een certificaatketen van vertrouwen waarin elk certificaat in de keten wordt ondertekend door de persoonlijke sleutel van het volgende hogere certificaat, enzovoort, waardoor een zelfondertekend basiscertificaat wordt beëindigd. Met deze regeling wordt een gedelegeerde vertrouwensketen tot stand gebracht van het basiscertificaat dat is gegenereerd door een vertrouwde basiscertificeringsinstantie (CA) tot en met elke tussenliggende CA naar het end-entity 'leaf'-certificaat dat op een apparaat is geïnstalleerd. Zie Apparaatverificatie met X.509 CA-certificaten voor meer informatie.

De certificaatketen vertegenwoordigt vaak een logische of fysieke hiërarchie die is gekoppeld aan apparaten. Een fabrikant kan bijvoorbeeld:

  • een zelfondertekend basis-CA-certificaat uitgeven
  • het basiscertificaat gebruiken om een uniek tussenliggend CA-certificaat te genereren voor elke fabriek
  • het certificaat van elke fabriek gebruiken om een uniek tussenliggend CA-certificaat te genereren voor elke productielijn in de fabriek
  • en ten slotte het productielijncertificaat gebruiken om een uniek apparaatcertificaat (eindentiteitscertificaat) te genereren voor elk apparaat dat op de lijn is vervaardigd.

Zie Conceptueel begrip van X.509 CA-certificaten in de IoT-branche voor meer informatie.

Basiscertificaat

Een basiscertificaat is een zelfondertekend X.509-certificaat dat een certificeringsinstantie (CA) vertegenwoordigt. Het is het eindpunt of het vertrouwensanker van de certificaatketen. Basiscertificaten kunnen zelf worden uitgegeven door een organisatie of worden aangeschaft bij een basiscertificeringsinstantie. Zie X.509 CA-certificaten ophalen voor meer informatie. Het basiscertificaat kan ook worden aangeduid als een basis-CA-certificaat.

Tussenliggend certificaat

Een tussenliggend certificaat is een X.509-certificaat dat is ondertekend door het basiscertificaat (of door een ander tussencertificaat met het basiscertificaat in de keten). Het laatste tussenliggende certificaat in een keten wordt gebruikt om het leaf-certificaat te ondertekenen. Een tussenliggend certificaat kan ook worden aangeduid als een tussenliggend CA-certificaat.

Waarom zijn tussenliggende certificaten nuttig?

Tussenliggende certificaten worden op verschillende manieren gebruikt. Tussenliggende certificaten kunnen bijvoorbeeld worden gebruikt om apparaten te groeperen op productlijnen, klanten die apparaten kopen, bedrijfsafdelingen of factory's.

Stel dat Contoso een grote onderneming is met een eigen PKI (Public Key Infrastructure) met behulp van het basiscertificaat met de naam ContosoRootCert. Elke dochteronderneming van Contoso heeft een eigen tussenliggend certificaat dat is ondertekend door ContosoRootCert. Elke dochteronderneming gebruikt vervolgens hun tussenliggende certificaat om hun bladcertificaten voor elk apparaat te ondertekenen. In dit scenario kan Contoso één DPS-exemplaar gebruiken waarbij ContosoRootCert een geverifieerd certificaat is. Ze kunnen een inschrijvingsgroep hebben voor elke dochteronderneming. Op deze manier hoeft elke afzonderlijke dochteronderneming zich geen zorgen te maken over het verifiëren van certificaten.

End-entity 'leaf'-certificaat

Het certificaat van het blad, of het certificaat van de eindentiteit, identificeert de certificaathouder. Het heeft het basiscertificaat in de certificaatketen en nul of meer tussenliggende certificaten. Het leaf-certificaat wordt niet gebruikt om andere certificaten te ondertekenen. Het apparaat wordt uniek geïdentificeerd voor de inrichtingsservice en wordt soms het apparaatcertificaat genoemd. Tijdens de verificatie gebruikt het apparaat de persoonlijke sleutel die aan dit certificaat is gekoppeld om te reageren op een bewijs van bezit van de service.

Bladcertificaten die worden gebruikt met vermeldingen van afzonderlijke inschrijvings- of inschrijvingsgroepen, moeten de algemene naam van het onderwerp (CN) hebben ingesteld op de registratie-id. De registratie-id identificeert de apparaatregistratie met DPS en moet uniek zijn voor het DPS-exemplaar (ID-bereik) waar het apparaat zich registreert. De registratie-id is een niet-hoofdlettergevoelige tekenreeks van alfanumerieke tekens plus de speciale tekens: '-', '.', '_', . ':' Het laatste teken moet alfanumeriek of streepje ('-') zijn. DPS ondersteunt registratie-id's van maximaal 128 tekens; De maximale lengte van de algemene naam van het onderwerp in een X.509-certificaat is echter 64 tekens. De registratie-id is daarom beperkt tot 64 tekens bij het gebruik van X.509-certificaten.

Voor inschrijvingsgroepen stelt de algemene naam van het onderwerp (CN) ook de apparaat-id in die is geregistreerd bij IoT Hub. De apparaat-id wordt weergegeven in de registratierecords voor het geverifieerde apparaat in de registratiegroep. Voor afzonderlijke inschrijvingen kan de apparaat-id worden ingesteld in de inschrijvingsvermelding. Als deze niet is ingesteld in de inschrijvingsvermelding, wordt de algemene naam van het onderwerp (CN) gebruikt.

Zie Apparaten verifiëren die zijn ondertekend met X.509 CA-certificaten voor meer informatie.

Apparaattoegang tot de inrichtingsservice beheren met X.509-certificaten

De inrichtingsservice bevat twee inschrijvingstypen die u kunt gebruiken om apparaattoegang te beheren met het X.509 Attestation-mechanisme:

  • Afzonderlijke inschrijvingsvermeldingen worden geconfigureerd met het apparaatcertificaat dat is gekoppeld aan een specifiek apparaat. Deze vermeldingen bepalen inschrijvingen voor specifieke apparaten.
  • Vermeldingen voor inschrijvingsgroepen zijn gekoppeld aan een specifiek tussenliggend of basis-CA-certificaat. Deze vermeldingen beheren inschrijvingen voor alle apparaten met dat tussenliggende of basiscertificaat in hun certificaatketen.

Een certificaat kan worden opgegeven in slechts één inschrijvingsvermelding in uw DPS-exemplaar.

Wederzijdse TLS-ondersteuning

Wanneer DPS-inschrijvingen zijn geconfigureerd voor X.509-attestation, wordt wederzijdse TLS (mTLS) ondersteund door DPS.

Vereisten voor DPS-apparaatketen

Wanneer een apparaat probeert te registreren via DPS met behulp van een inschrijvingsgroep, moet het apparaat de certificaatketen van het bladcertificaat naar een geverifieerd certificaat verzenden. Anders mislukt de verificatie.

Als bijvoorbeeld alleen het basiscertificaat wordt geverifieerd en er een tussencertificaat naar de inschrijvingsgroep wordt geüpload, moet het apparaat de certificaatketen van het certificaat helemaal naar het geverifieerde basiscertificaat presenteren. Deze certificaatketen bevat tussenliggende certificaten. Verificatie mislukt als DPS de certificaatketen niet kan doorkruisen naar een geverifieerd certificaat.

Denk bijvoorbeeld aan een bedrijf dat gebruikmaakt van de volgende apparaatketen voor een apparaat.

Example device certificate chain

In dit voorbeeld wordt alleen het basiscertificaat geverifieerd en wordt het tussenliggende2-certificaat geüpload in de inschrijvingsgroep.

Example root verified

Als het apparaat alleen de volgende apparaatketen verzendt tijdens het inrichten, mislukt de verificatie. Omdat DPS geen verificatie kan proberen, uitgaande van de geldigheid van een tussenliggend1 certificaat

Example failing certificate chain

Als het apparaat de volledige apparaatketen als volgt verzendt tijdens het inrichten, kan DPS de verificatie van het apparaat proberen.

Example device certificate chain

DPS-volgorde van bewerkingen met certificaten

Wanneer een apparaat verbinding maakt met de inrichtingsservice, begeleidt de service de certificaatketen vanaf het apparaatcertificaat (leaf) en zoekt deze naar een bijbehorende inschrijvingsvermelding. Hierbij wordt de eerste vermelding gebruikt die in de keten wordt gevonden om te bepalen of het apparaat moet worden ingericht. Als er een afzonderlijke inschrijving voor het apparaatcertificaat bestaat, past de inrichtingsservice die vermelding toe. Als er geen afzonderlijke inschrijving voor het apparaat is, zoekt de service naar een inschrijvingsgroep die overeenkomt met het eerste tussenliggende certificaat. Als er een wordt gevonden, wordt die vermelding toegepast; anders wordt er gezocht naar een inschrijvingsgroep voor het volgende tussenliggende certificaat, enzovoort naar de keten naar de hoofdmap.

De service past de eerste vermelding toe die wordt gevonden, zodat:

  • Als de eerste gevonden inschrijvingsvermelding is ingeschakeld, richt de service het apparaat in.
  • Als de eerste gevonden inschrijvingsvermelding is uitgeschakeld, wordt het apparaat niet ingericht door de service.
  • Als er geen inschrijvingsvermelding wordt gevonden voor een van de certificaten in de certificaatketen van het apparaat, wordt het apparaat niet ingericht door de service.

Houd er rekening mee dat elk certificaat in de certificaatketen van een apparaat kan worden opgegeven in een inschrijvingsvermelding, maar het kan worden opgegeven in slechts één vermelding in het DPS-exemplaar.

Dit mechanisme en de hiërarchische structuur van certificaatketens bieden krachtige flexibiliteit bij het beheren van de toegang voor afzonderlijke apparaten en voor groepen apparaten. Stel bijvoorbeeld vijf apparaten voor met de volgende certificaatketens:

  • Apparaat 1: basiscertificaat -> certificaat A -> apparaat 1-certificaat
  • Apparaat 2: basiscertificaat -> certificaat A -> apparaat 2-certificaat
  • Apparaat 3: basiscertificaat -> certificaat A -> apparaat 3-certificaat
  • Apparaat 4: basiscertificaat -> certificaat B -> apparaat 4-certificaat
  • Apparaat 5: basiscertificaat -> certificaat B -> apparaat 5-certificaat

In eerste instantie kunt u één groepsinschrijvingsvermelding voor het basiscertificaat maken om toegang voor alle vijf apparaten mogelijk te maken. Als certificaat B later wordt aangetast, kunt u een uitgeschakelde inschrijvingsgroepvermelding voor certificaat B maken om te voorkomen dat Apparaat 4 en Apparaat 5 worden ingeschreven. Als apparaat 3 later nog steeds wordt aangetast, kunt u een uitgeschakelde afzonderlijke inschrijvingsvermelding voor het certificaat maken. Hierdoor wordt de toegang voor apparaat 3 ingetrokken, maar kan Apparaat 1 en Apparaat 2 nog steeds worden ingeschreven.