Azure IoT Edge Security Manager

Gäller för:IoT Edge 1.4 checkmark IoT Edge 1.4

Viktigt!

IoT Edge 1.4 är den version som stöds. Om du har en tidigare version läser du Uppdatera IoT Edge.

Azure IoT Edge-säkerhetshanteraren är en välbegränsad säkerhetskärna för att skydda IoT Edge-enheten och alla dess komponenter genom att abstrahera den säkra kiselmaskinvaran. Säkerhetschefen är brännpunkten för säkerhetshärdning och tillhandahåller teknikintegreringspunkt till oem-tillverkare (Original Equipment Manufacturers).

Säkerhetshanteraren abstraherar den säkra kiselmaskinvaran på en IoT Edge-enhet och tillhandahåller ett utökningsramverk för ytterligare säkerhetstjänster.

IoT Edge-säkerhetshanteraren strävar efter att försvara integriteten för IoT Edge-enheten och alla inbyggda programvaruåtgärder. Säkerhetshanteraren övergår förtroendet från den underliggande maskinvaruroten för betrodd maskinvara (om tillgängligt) för att starta IoT Edge-körningen och övervaka pågående åtgärder. IoT Edge-säkerhetshanteraren är programvara som fungerar tillsammans med säker kiselmaskinvara (där det är tillgängligt) för att ge högsta möjliga säkerhetsgarantier.

Dessutom tillhandahåller IoT Edge-säkerhetshanteraren ett säkert ramverk för säkerhetstjänsttillägg via moduler på värdnivå. Dessa tjänster omfattar säkerhetsövervakning och uppdateringar som kräver agenter på enheten med privilegierad åtkomst till vissa komponenter på enheten. Utökningsramverket säkerställer att sådana integreringar konsekvent upprätthåller den övergripande systemsäkerheten.

IoT Edge-säkerhetshanterarens ansvarsområden omfattar, men är inte begränsade till:

  • Bootstrap för Azure IoT Edge-enheten.
  • Kontrollera åtkomsten till enhetens maskinvarurot för förtroende via notarietjänster.
  • Övervaka integriteten för IoT Edge-åtgärder vid körning.
  • Etablera enhetsidentiteten och hantera övergången av förtroende i tillämpliga fall.
  • Se till att klientagenter fungerar säkert för tjänster, inklusive Enhetsuppdatering för IoT Hub och Microsoft Defender för IoT.

IoT Edge-säkerhetshanteraren består av tre komponenter:

  • IoT Edge-modulens körning
  • HSM-abstraktioner (Hardware Security Module) via standardimplementeringar som PKCS#11 och Trusted Platform Module (TPM)
  • En kiselrot för maskinvara eller HSM (valfritt, men rekommenderas starkt)

Ändringar i version 1.2 och senare

I versionerna 1.0 och 1.1 av IoT Edge var en komponent som kallas säkerhetsdaemon ansvarig för säkerhetshanterarens logiska säkerhetsåtgärder. I uppdateringen till version 1.2 delegerades flera viktiga ansvarsområden till säkerhetsundersystemet Azure IoT Identity Service . När dessa säkerhetsbaserade uppgifter har tagits bort från säkerhetsdaemonen var namnet inte längre meningsfullt. För att bättre återspegla det arbete som den här komponenten utför i version 1.2 och senare bytte vi namn på den till modulkörningen.

IoT Edge-modulens körning

IoT Edge-modulens körning delegerar förtroende från säkerhetsundersystemet Azure IoT Identity Service för att skydda IoT Edge-containerkörningsmiljön. En tjänst, som nu delegeras till Azure IoT Identity Service, är den automatiserade certifikatregistrerings- och förnyelsetjänsten via en EST-server. Om du vill se hur detta fungerar och skapa en EST-exempelserver som skapats för en IoT Edge-enhet kan du prova självstudien Konfigurera registrering över säker transportserver för Azure IoT Edge .

Modulkörningen ansvarar för säkerhetshanterarens logiska säkerhetsåtgärder. Den representerar en betydande del av den betrodda beräkningsbasen för IoT Edge-enheten. Modulkörningen använder säkerhetstjänster från IoT Identity Service, som i sin tur härdas av enhetstillverkarens val av maskinvarusäkerhetsmodul (HSM). Vi rekommenderar starkt att du använder HSM:er för enhetshärdning.

Designprinciper

IoT Edge följer två grundläggande principer: maximera driftintegriteten och minimera uppblåsthet och omsättning.

Maximera driftintegriteten

Körningen av IoT Edge-modulen fungerar med högsta möjliga integritet inom försvarskapaciteten för en viss rot av betrodd maskinvara. Med rätt integrering mäter roten av betrodd maskinvara och övervakar säkerhetsdaemon statiskt och vid körning för att motstå manipulering.

Skadlig fysisk åtkomst till enheter är alltid ett hot i IoT. Maskinvaruroten för förtroende spelar en viktig roll när det gäller att försvara IoT Edge-enhetens integritet. Maskinvaruroten för förtroende finns i två sorter:

  • Skydda element för skydd av känslig information som hemligheter och kryptografiska nycklar.
  • Skydda enklaver för skydd av hemligheter som nycklar och känsliga arbetsbelastningar som konfidentiella maskininlärningsmodeller och mätningsåtgärder.

Det finns två typer av körningsmiljöer för att använda maskinvaruroten för förtroende:

  • Den standard- eller omfattande körningsmiljö (REE) som förlitar sig på användningen av säkra element för att skydda känslig information.
  • Den betrodda körningsmiljön (TEE) som förlitar sig på användningen av säker enklavteknik för att skydda känslig information och erbjuda skydd för programvarukörning.

För enheter som använder säkra enklaver som maskinvarurot för förtroende bör känslig logik i IoT Edge-modulens körning finnas i enklaven. Icke-känsliga delar av modulkörningen kan ligga utanför TEE. I samtliga fall rekommenderar vi starkt att originaldesigntillverkare (ODM) och oem-tillverkare (originalutrustning) utökar förtroendet från sin HSM för att mäta och försvara integriteten hos IoT Edge-modulens körning vid start och körning.

Minimera uppblåsthet och omsättning

En annan grundläggande princip för IoT Edge-modulens körning är att minimera omsättning. För den högsta förtroendenivån kan IoT Edge-modulkörningen nära kopplas till enhetens maskinvarurot för förtroende och fungera som intern kod. I dessa fall är det vanligt att uppdatera IoT Edge-programvaran via maskinvaruroten för förtroendes säkra uppdateringsvägar i stället för operativsystemets uppdateringsmekanismer, vilket kan vara en utmaning. Säkerhetsförnyelse rekommenderas för IoT-enheter, men överdrivna uppdateringskrav eller stora uppdateringsnyttolaster kan utöka hotytan på många sätt. Du kan till exempel vara frestad att hoppa över vissa uppdateringar för att maximera enhetens tillgänglighet. Därför är utformningen av IoT Edge-modulkörningen kortfattad för att hålla den välisolerade betrodda beräkningsbasen liten för att uppmuntra frekventa uppdateringar.

Arkitektur

Körningen av IoT Edge-modulen drar nytta av alla tillgängliga maskinvaruroten med förtroendeteknik för säkerhetshärdning. Det möjliggör också split-world-drift mellan en standard-/omfattande körningsmiljö (REE) och en betrodd körningsmiljö (TEE) när maskinvarutekniker erbjuder betrodda körningsmiljöer. Med rollspecifika gränssnitt kan de viktigaste komponenterna i IoT Edge säkerställa IoT Edge-enhetens integritet och dess åtgärder.

Azure IoT Edge module runtime architecture

Molngränssnitt

Molngränssnittet ger åtkomst till molntjänster som kompletterar enhetssäkerheten. Det här gränssnittet ger till exempel åtkomst till Enhetsetableringstjänsten för livscykelhantering för enhetsidentitet.

API för hantering

Hanterings-API:et anropas av IoT Edge-agenten när du skapar/startar/stoppar/tar bort en IoT Edge-modul. Modulkörningen lagrar "registreringar" för alla aktiva moduler. Dessa registreringar mappar en moduls identitet till vissa egenskaper för modulen. De här modulegenskaperna inkluderar till exempel processidentifieraren (pid) för processen som körs i containern och hashen för dockercontainerns innehåll.

Dessa egenskaper används av arbetsbelastnings-API:et (beskrivs nedan) för att verifiera att anroparen har behörighet för en åtgärd.

Hanterings-API:et är ett privilegierat API som endast kan anropas från IoT Edge-agenten. Eftersom IoT Edge-modulen kör bootstraps och startar IoT Edge-agenten verifierar den att IoT Edge-agenten inte har manipulerats. Sedan kan den skapa en implicit registrering för IoT Edge-agenten. Samma attesteringsprocess som arbetsbelastnings-API:et använder begränsar också åtkomsten till hanterings-API:et till endast IoT Edge-agenten.

Container-API

Container-API:et interagerar med containersystemet som används för modulhantering, till exempel Moby eller Docker.

API för arbetsbelastning

Arbetsbelastnings-API:et är tillgängligt för alla moduler. Den innehåller identitetsbevis, antingen som en HSM-rotad signerad token eller ett X509-certifikat, och motsvarande förtroendepaket till en modul. Förtroendepaketet innehåller CA-certifikat för alla andra servrar som modulerna ska lita på.

IoT Edge-modulens körning använder en attesteringsprocess för att skydda detta API. När en modul anropar det här API:et försöker modulkörningen hitta en registrering för identiteten. Om det lyckas använder den egenskaperna för registreringen för att mäta modulen. Om resultatet av mätningsprocessen matchar registreringen genereras ett nytt identitetsbevis. Motsvarande CA-certifikat (förtroendepaket) returneras till modulen. Modulen använder det här certifikatet för att ansluta till IoT Hub, andra moduler eller starta en server. När den signerade token eller certifikatet snart upphör att gälla är det modulens ansvar att begära ett nytt certifikat.

Integrering och underhåll

Microsoft har huvudkodbasen för IoT Edge-modulkörningenoch Azure IoT-identitetstjänsten på GitHub.

När du läser IoT Edge-kodbasen bör du komma ihåg att modulkörningen utvecklades från säkerhetsdaemonen. Kodbasen kan fortfarande innehålla referenser till säkerhetsdaemonen.

Installation och uppdateringar

Installation och uppdateringar av IoT Edge-modulens körning hanteras via operativsystemets pakethanteringssystem. IoT Edge-enheter med maskinvarurot av förtroende bör ge ytterligare härdning till integriteten för modulkörningen genom att hantera dess livscykel via hanteringssystemen för säker start och uppdateringar. Enhetsskapare bör utforska dessa vägar baserat på deras respektive enhetsfunktioner.

Versionshantering

IoT Edge-körningen spårar och rapporterar versionen av IoT Edge-modulens körning. Versionen rapporteras som attributet runtime.platform.version för den rapporterade egenskapen för IoT Edge-agentmodulen.

Modul för maskinvarusäkerhet

IoT Edge-säkerhetshanteraren implementerar de betrodda plattformsmodulerna och PKCS#11-gränssnittsstandarderna för integrering av maskinvarusäkerhetsmoduler (HSM). Med dessa standarder kan praktiskt taget alla HSM, inklusive de med egna gränssnitt, integreras. Vi rekommenderar starkt att du använder HSM:er för säkerhetshärdning.

Skydda kiselroten för betrodd maskinvara

Säker kisel krävs för att förankra förtroendet i IoT Edge-enhetens maskinvara. Säker kisel finns i olika varianter som TPM (Trusted Platform Module), embedded Secure Element (eSE), Arm TrustZone, Intel SGX och anpassade tekniker för säker kisel. Användning av säker kiselrot av förtroende på enheter rekommenderas med tanke på hoten som är associerade med fysisk tillgänglighet för IoT-enheter.

IoT Edge-säkerhetshanteraren syftar till att identifiera och isolera de komponenter som skyddar säkerheten och integriteten för Azure IoT Edge-plattformen för anpassad härdning. Tredje part, till exempel enhetstillverkare, bör använda anpassade säkerhetsfunktioner som är tillgängliga med deras enhetsmaskinvara.

Lär dig hur du härdar Azure IoT-säkerhetshanteraren med TPM (Trusted Platform Module) med hjälp av programvara eller virtuella TPM:er:

Skapa och etablera en IoT Edge-enhet med en virtuell TPM på Linux eller Linux i Windows.

Nästa steg

Mer information om hur du skyddar dina IoT Edge-enheter finns i följande blogginlägg: