Enhetsidentitet och -säkerhet

Du kan distribuera och hantera flera enheter åt gången. Enhetshantering baseras på möjligheten att identifiera och komma åt varje enhet individuellt vid behov. För att du ska kunna göra detta får varje Azure Sphere-enhet ett unikt internt enhets-ID som finns kvar via alla uppdateringar av enheten, inklusive återställningsåtgärder.

I digitala system kan dock enhetens ID enkelt förfalskas, förfalskas eller missbrukas. Därför bör du bara tillåta enheter vars identiteter kan verifieras och valideras för åtkomst till dina mycket värdefulla data och ansluta till dina tjänster.

Azure Sphere tillhandahåller en process för att aktivera en enhet för att identifiera sig (autentisering) och för bekräftelse av enhetens identitet (attestation). Autentiserings- och beteckningsprocessen som används av Azure Sphere Security Service använder för kända nycklar, säker kommunikation och specialiserad maskinvara för att bekräfta en enhets identitet. Om enhetsautentisering och attestation lyckas utfärdas ett certifikat till enheten. Ett giltigt certifikat anger att:

  • Enhetens identitet har verifierats.
  • Du kan lita på enheten.

Med Azure Sphere är enhetscertifikaten först kopplade till ett certifikat på katalognivå (vilket gör det enkelt för en organisation att bara lita på enheter från sina egna kataloger) och sedan till ett Microsoft-certifikat, vilket återspeglar att Microsoft har verifierat att den här maskinvaran är en verifierad instans av ett certifierat Azure Sphere-chip som kör ett skyddat Microsoft-operativsystem.

Följande begrepp kan hjälpa dig att använda enhetsidentitet på de säkraste och effektivaste sätten:

  • Förtroende är tillfälligt
    Förtroende för ett system kan gå förlorat och det kan återfås. En princip för att implementera Nolltillit arkitektur i ett IoT-system är att uttryckligen verifiera. Det innebär att varje gång du interagerar med en enhet, avgör du uttryckligen enhetens äkthet och bevisar att datatransaktionen är tillförlitlig. Azure Sphere-enheter utför automatiskt en autentiserings- och befallningsprocess var 24:e timme med Azure Sphere-molnsäkerhetstjänster. En indikation på att en enhets identitet har verifierats är förekomsten av ett kryptografiskt signerat certifikat, som är rotat i Microsoft Azure Sphere Cloud Security Service.

  • Identity = identifiers + attestation
    Identifierare kan kopieras och dupliceras. En enhet kan därför inte bara identifieras av dess identifierare. En enhets identitet (eller en användares identitet) måste anses vara en kombination av både en identifierare och ett intyg om att en sådan identifierare är giltig inom ett visst sammanhang. Du bör inte tilldela identifierare till enheter och använda dem oberoende av beteckningsprocessen. Om möjligt kan du kombinera identifierare med tecken på attestation vid varje lager av interaktion inom dina system.

  • Identifierare + förtroendecertifikat
    En identifierare bör inte betraktas som mer än en referens. Ensam bör det inte antas ange något om tillförlitligheten för objektet som den refererar till. Du kan till exempel använda en identifierare för att prenumerera på MQTT-meddelanden, använda en identifierare för att gruppera betrodda data i en portal och använda identifierare för att dirigera trafik och data i ett system. Men när det gäller förtroende, snarare än att lita på identifieraren, litar du på ett kryptografiskt signerat och kedjat certifikat. Certifikat är särskilt bra för lösenordsfria dataflöden mellan systemkomponenter och är bevis på identifiering som har testats och visat sig vara tillförlitlig inom ett visst sammanhang.

När du använder Azure IoT Hub, och konfigureras enligt dokumenterade rekommendationer, är dessa begrepp redan införlivade, vilket förenklar distributionen av ett skyddat och motståndskraftigt system.

Du måste också använda de här begreppen när du ansluter till icke-Azure-slutpunkter eller tjänster som du direkt styr. Om du till exempel använder MQTT kan en enhet inkludera sin egen identitet som en del av det MQTT-ämne som den publicerar till. Men innan du accepterar en ämnesuppdatering från enheten måste MQTT-servern verifiera att certifikatet som enheten tillhandahåller autentiserar den för publicering i det här specifika avsnittet.

Azure Sphere-enhetscertifikat och enhets-ID-åtkomst

  • Om du vill komma åt ett enhetscertifikat i programmet använder du funktionen DeviceAuth_GetCertificatePath .

  • Om du vill komma åt enhetens unika enhets-ID parsar du ämnet från certifikatet som tillhandahålls av funktionen DeviceAuth_GetCertificatePath() med hjälp av funktionen wolfSSL_X509_get_subject_name .

Kodavsnittet Hämta Azure Sphere Device ID visar hur du hämtar Azure Sphere Device ID i ett program på hög nivå. Enhets-ID returneras som en teckenbuffert på 128 tecken. Det här kodavsnittet bestämmer wolfSSL för att öppna en session med certifikatet, hämta kontexten och certifikatet, tolka ämnes-ID för certifikatet som är enhets-ID för Azure Sphere-enheter och returnera det som en char pekare.