Azure IoT Edge-beveiligingsbeheer

Van toepassing op:IoT Edge 1.4 checkmark IoT Edge 1.4

Belangrijk

IoT Edge 1.4 is de ondersteunde release. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

Azure IoT Edge-beveiligingsbeheer is een goed gebonden beveiligingskern voor het beveiligen van het IoT Edge-apparaat en alle bijbehorende onderdelen door de beveiligde siliciumhardware te abstraheren. De beveiligingsmanager is het centrale punt voor beveiligingbeveiligingsbeveiliging en biedt technologieintegratiepunt aan originele fabrikanten van apparatuur (OEM).

De beveiligingsbeheerder abstraheert de beveiligde siliciumhardware op een IoT Edge-apparaat en biedt een uitbreidbaar framework voor aanvullende beveiligingsservices.

Het IoT Edge-beveiligingsbeheer is erop gericht de integriteit van het IoT Edge-apparaat en alle inherente softwarebewerkingen te verdedigen. De beveiligingsbeheerder gaat over van de onderliggende hardwarebasis van vertrouwenshardware (indien beschikbaar) om de IoT Edge-runtime te bootstrapen en lopende bewerkingen te bewaken. De IoT Edge-beveiligingsmanager is software die samen met beveiligde siliciumhardware (indien beschikbaar) werkt om de hoogst mogelijke beveiligingsgaranties te leveren.

Daarnaast biedt ioT Edge-beveiligingsbeheer een veilig framework voor beveiligingsservice-extensies via modules op hostniveau. Deze services omvatten beveiligingsbewaking en updates waarvoor agents op het apparaat met uitgebreide toegang tot bepaalde onderdelen van het apparaat zijn vereist. Het uitbreidbaarheidsframework zorgt ervoor dat dergelijke integraties consistent voldoen aan de algehele systeembeveiliging.

De verantwoordelijkheden van ioT Edge-beveiligingsbeheer omvatten, maar zijn niet beperkt tot:

  • Bootstrap van het Azure IoT Edge-apparaat.
  • Toegang tot de hardwarehoofdmap van het apparaat beheren via notarisservices.
  • Bewaak de integriteit van IoT Edge-bewerkingen tijdens runtime.
  • Richt de apparaat-id in en beheer waar van toepassing de overgang van vertrouwen.
  • Zorg voor een veilige werking van clientagents voor services, waaronder Device Update voor IoT Hub en Microsoft Defender for IoT.

Het IoT Edge-beveiligingsbeheer bestaat uit drie onderdelen:

  • De Runtime van de IoT Edge-module
  • HSM-abstracties (Hardware Security Module) via standaardimplementaties zoals PKCS#11 en TPM (Trusted Platform Module)
  • Een hardware silicon root van vertrouwen of HSM (optioneel, maar sterk aanbevolen)

Wijzigingen in versie 1.2 en hoger

In versie 1.0 en 1.1 van IoT Edge was een onderdeel genaamd de beveiligingsdemon verantwoordelijk voor de logische beveiligingsbewerkingen van de beveiligingsmanager. In de update naar versie 1.2 zijn verschillende belangrijke verantwoordelijkheden gedelegeerd aan het azure IoT Identity Service-beveiligingssubsysteem . Zodra deze beveiligingstaken zijn verwijderd uit de beveiligingsdemon, is de naam ervan niet meer logisch. Om het werk dat dit onderdeel uitvoert in versie 1.2 en hoger beter weer te geven, hebben we de naam ervan gewijzigd in de moduleruntime.

De Runtime van de IoT Edge-module

De Runtime van de IoT Edge-module delegeert vertrouwen van het Azure IoT Identity Service-beveiligingssubsysteem om de Runtime-omgeving van de IoT Edge-container te beveiligen. Eén service, nu gedelegeerd aan Azure IoT Identity Service, is de automatische certificaatinschrijvings- en verlengingsservice via een EST-server. Als u wilt zien hoe dit werkt en een EST-voorbeeldserver maakt die is gemaakt voor een IoT Edge-apparaat, probeert u de zelfstudie Inschrijving configureren via Secure Transport Server voor Azure IoT Edge .

De moduleruntime is verantwoordelijk voor de logische beveiligingsbewerkingen van de beveiligingsbeheerder. Het vertegenwoordigt een aanzienlijk deel van de vertrouwde rekenbasis van het IoT Edge-apparaat. De moduleruntime maakt gebruik van beveiligingsservices van de IoT Identity Service, die op zijn beurt wordt beveiligd door de keuze van de hardwarebeveiligingsmodule (HSM) van de apparaatfabrikant. We raden u ten zeerste aan HSM's te gebruiken voor apparaatbeveiliging.

Ontwerpbeginselen

IoT Edge volgt twee kernprincipes: operationele integriteit maximaliseren en bloat en verloop minimaliseren.

Operationele integriteit maximaliseren

De Runtime van de IoT Edge-module werkt met de hoogste integriteit binnen de verdedigingsmogelijkheid van een bepaalde basis van vertrouwenshardware. Met de juiste integratie wordt de basis van vertrouwde hardwaremetingen en bewaakt de beveiligingsdaemon statisch en tijdens runtime om manipulatie te weerstaan.

Schadelijke fysieke toegang tot apparaten is altijd een bedreiging in IoT. Hardwarehoofdmap van vertrouwen speelt een belangrijke rol bij het verdedigen van de integriteit van het IoT Edge-apparaat. Hardwarewortel van vertrouwen komt in twee soorten:

  • Beveilig elementen voor de beveiliging van gevoelige informatie, zoals geheimen en cryptografische sleutels.
  • Beveilig enclaves voor de beveiliging van geheimen, zoals sleutels en gevoelige workloads, zoals vertrouwelijke machine learning-modellen en meterbewerkingen.

Er bestaan twee soorten uitvoeringsomgevingen voor het gebruik van hardwarehoofdmap van vertrouwen:

  • De standaard- of uitgebreide uitvoeringsomgeving (REE) die afhankelijk is van het gebruik van beveiligde elementen om gevoelige informatie te beschermen.
  • De vertrouwde uitvoeringsomgeving (TEE) die afhankelijk is van het gebruik van beveiligde enclave-technologie om gevoelige informatie te beschermen en bescherming te bieden voor software-uitvoering.

Voor apparaten die beveiligde enclaves gebruiken als hardwarehoofdmap van vertrouwen, moet gevoelige logica binnen de Runtime van de IoT Edge-module zich in de enclave bevinden. Niet-gevoelige delen van de moduleruntime kunnen zich buiten de TEE bevinden. In alle gevallen raden we ten zeerste aan dat oorspronkelijke ontwerpfabrikanten (ODM) en oem's (original equipment manufacturers) de vertrouwensrelatie van hun HSM uitbreiden om de integriteit van de IoT Edge-moduleruntime tijdens opstarten en runtime te meten en te verdedigen.

Bloat en verloop minimaliseren

Een ander kernprincipe voor de Runtime van de IoT Edge-module is het minimaliseren van het verloop. Voor het hoogste vertrouwensniveau kan de Runtime van de IoT Edge-module nauw worden gekoppeld aan de hardwarehoofdmap van het apparaat en werken als systeemeigen code. In deze gevallen is het gebruikelijk om de IoT Edge-software bij te werken via de hardwarehoofdmap van de beveiligde updatepaden van het vertrouwen in plaats van de updatemechanismen van het besturingssysteem, wat lastig kan zijn. Beveiligingsvernieuwing wordt aanbevolen voor IoT-apparaten, maar overmatige updatevereisten of grote updatepayloads kunnen het bedreigingsoppervlak op veel manieren uitbreiden. U bent bijvoorbeeld geneigd om bepaalde updates over te slaan om de beschikbaarheid van apparaten te maximaliseren. Daarom is het ontwerp van de Runtime van de IoT Edge-module beknopt om de goed geïsoleerde vertrouwde rekenbasis klein te houden om frequente updates aan te moedigen.

Architectuur

De Runtime van de IoT Edge-module maakt gebruik van elke beschikbare hardwarehoofdmap van vertrouwenstechnologie voor beveiligingbeveiliging. Het maakt ook split-world-bewerking mogelijk tussen een standaard/uitgebreide uitvoeringsomgeving (REE) en een VERTROUWDE uitvoeringsomgeving (TEE) wanneer hardwaretechnologieën vertrouwde uitvoeringsomgevingen bieden. Met rolspecifieke interfaces kunnen de belangrijkste onderdelen van IoT Edge de integriteit van het IoT Edge-apparaat en de bijbehorende bewerkingen garanderen.

Azure IoT Edge module runtime architecture

Cloudinterface

De cloudinterface biedt toegang tot cloudservices die een aanvulling vormen op de beveiliging van apparaten. Met deze interface hebt u bijvoorbeeld toegang tot Device Provisioning Service voor levenscyclusbeheer voor apparaatidentiteiten.

Beheer-API

De beheer-API wordt aangeroepen door de IoT Edge-agent bij het maken/starten/stoppen/verwijderen van een IoT Edge-module. In de moduleruntime worden 'registraties' opgeslagen voor alle actieve modules. Deze registraties wijzen de identiteit van een module toe aan bepaalde eigenschappen van de module. Deze module-eigenschappen bevatten bijvoorbeeld de proces-id (pid) van het proces dat wordt uitgevoerd in de container en de hash van de inhoud van de docker-container.

Deze eigenschappen worden gebruikt door de workload-API (hieronder beschreven) om te controleren of de aanroeper is geautoriseerd voor een actie.

De beheer-API is een bevoegde API die alleen kan worden aangeroepen vanuit de IoT Edge-agent. Sinds de Runtime van de IoT Edge-module wordt opgestart en de IoT Edge-agent wordt gestart, wordt gecontroleerd of de IoT Edge-agent niet is geknoeid. Vervolgens kan er een impliciete registratie worden gemaakt voor de IoT Edge-agent. Hetzelfde attestation-proces dat door de workload-API wordt gebruikt, beperkt ook de toegang tot de beheer-API tot alleen de IoT Edge-agent.

Container-API

De container-API communiceert met het containersysteem dat wordt gebruikt voor modulebeheer, zoals Moby of Docker.

Workload-API

De workload-API is toegankelijk voor alle modules. Het biedt een bewijs van identiteit, ofwel als een met HSM geroot token of een X509-certificaat, en de bijbehorende vertrouwensbundel naar een module. De vertrouwensbundel bevat CA-certificaten voor alle andere servers die door de modules moeten worden vertrouwd.

De IoT Edge-moduleruntime maakt gebruik van een attestation-proces om deze API te beveiligen. Wanneer een module deze API aanroept, probeert de moduleruntime een registratie voor de identiteit te vinden. Als dit lukt, worden de eigenschappen van de registratie gebruikt om de module te meten. Als het resultaat van het meetproces overeenkomt met de registratie, wordt er een nieuw bewijs van identiteit gegenereerd. De bijbehorende CA-certificaten (vertrouwensbundel) worden geretourneerd naar de module. In de module wordt dit certificaat gebruikt om verbinding te maken met IoT Hub, andere modules of een server te starten. Wanneer het ondertekende token of certificaat bijna verloopt, is het de verantwoordelijkheid van de module om een nieuw certificaat aan te vragen.

Integratie en onderhoud

Microsoft onderhoudt de hoofdcodebasis voor de Runtime van de IoT Edge-module en de Azure IoT-identiteitsservice op GitHub.

Wanneer u de IoT Edge-codebase leest, moet u er rekening mee houden dat de moduleruntime is ontwikkeld van de beveiligingsdaemon. De codebasis kan nog steeds verwijzingen naar de beveiligingsdaemon bevatten.

Installatie en updates

Installatie en updates van de Runtime van de IoT Edge-module worden beheerd via het pakketbeheersysteem van het besturingssysteem. IoT Edge-apparaten met een vertrouwenshoofdmap van hardware moeten extra beveiliging bieden voor de integriteit van de moduleruntime door de levenscyclus ervan te beheren via de beveiligde beheersystemen voor opstarten en updates. Apparaatmakers moeten deze mogelijkheden verkennen op basis van hun respectieve apparaatmogelijkheden.

Versiebeheer

De IoT Edge-runtime houdt de versie van de IoT Edge-moduleruntime bij en rapporteert deze. De versie wordt gerapporteerd als het kenmerk runtime.platform.version van de gerapporteerde eigenschap van de IoT Edge-agentmodule.

Hardwarebeveiligingsmodule

De IoT Edge-beveiligingsbeheerder implementeert de Trusted Platform Module en PKCS#11-interfacestandaarden voor het integreren van HSM's (Hardware Security Modules). Met deze standaarden kan vrijwel elke HSM, met inbegrip van HSM's met eigen interfaces, worden geïntegreerd. We raden u ten zeerste aan HSM's te gebruiken voor beveiligingsbeveiliging.

Veilige siliciumhoofdmap van vertrouwenshardware

Veilig silicium is nodig om vertrouwen in de Hardware van het IoT Edge-apparaat te verankeren. Veilig silicium is beschikbaar in verschillende soorten waaronder Trusted Platform Module (TPM), embedded Secure Element (eSE), Arm TrustZone, Intel SGX en aangepaste veilige siliciumtechnologieën. Het gebruik van een veilige siliciumhoofdmap van vertrouwen in apparaten wordt aanbevolen gezien de bedreigingen die zijn gekoppeld aan fysieke toegankelijkheid van IoT-apparaten.

Het IoT Edge-beveiligingsbeheer is gericht op het identificeren en isoleren van de onderdelen die de beveiliging en integriteit van het Azure IoT Edge-platform verdedigen voor aangepaste beveiliging. Derden, zoals apparaatmakers, moeten gebruikmaken van aangepaste beveiligingsfuncties die beschikbaar zijn voor hun apparaathardware.

Meer informatie over het beveiligen van Azure IoT-beveiligingsbeheer met tpm (Trusted Platform Module) met behulp van software of virtuele TPM's:

Een IoT Edge-apparaat maken en inrichten met een virtuele TPM in Linux of Linux in Windows.

Volgende stappen

Lees de volgende blogberichten voor meer informatie over het beveiligen van uw IoT Edge-apparaten: