Uw IoT-implementatie (Internet of Things) beveiligen
Dit artikel bevat het volgende detailniveau voor het beveiligen van de IoT-infrastructuur (Internet of Things) op basis van Azure IoT. Het bevat koppelingen naar details op implementatieniveau voor het configureren en implementeren van elk onderdeel. Het biedt ook vergelijkingen en keuzes tussen verschillende concurrerende methoden.
Het beveiligen van de Azure IoT-implementatie kan worden onderverdeeld in de volgende drie beveiligingsgebieden:
Apparaatbeveiliging: het IoT-apparaat beveiligen terwijl het in het wild wordt geïmplementeerd.
Verbindingsbeveiliging: ervoor zorgen dat alle gegevens die worden verzonden tussen het IoT-apparaat en IoT Hub vertrouwelijk en manipulatiebestendig zijn.
Cloudbeveiliging: het bieden van een manier om gegevens te beveiligen terwijl deze doorloopt en wordt opgeslagen in de cloud.

Apparaatinrichting en -verificatie beveiligen
IoT-oplossingen beveiligen IoT-apparaten met behulp van de volgende twee methoden:
Door een unieke identiteitssleutel (beveiligingstokens) op te geven voor elk apparaat, dat door het apparaat kan worden gebruikt om te communiceren met de IoT Hub.
Door een X.509-certificaat en een persoonlijke sleutel op het apparaat te gebruiken als middel om het apparaat te verifiëren bij de IoT Hub. Deze verificatiemethode zorgt ervoor dat de persoonlijke sleutel op het apparaat op elk moment niet bekend is buiten het apparaat, waardoor een hoger beveiligingsniveau wordt geboden.
De beveiligingstokenmethode biedt verificatie voor elke aanroep van het apparaat om te IoT Hub door de symmetrische sleutel aan elke aanroep te koppelen. Verificatie op basis van X.509 staat verificatie van een IoT-apparaat toe op de fysieke laag als onderdeel van de instelling van de TLS-verbinding. De methode op basis van beveiligingstokens kan worden gebruikt zonder de X.509-verificatie, wat een minder veilig patroon is. De keuze tussen de twee methoden wordt voornamelijk bepaald door hoe veilig de apparaatverificatie moet zijn en de beschikbaarheid van beveiligde opslag op het apparaat (om de persoonlijke sleutel veilig op te slaan).
beveiligingstokens IoT Hub
IoT Hub gebruikt beveiligingstokens om apparaten en services te verifiëren om te voorkomen dat sleutels in het netwerk worden verzonden. Bovendien zijn beveiligingstokens beperkt in de geldigheid en het bereik van de tijd. Azure IoT SDK's genereren automatisch tokens zonder speciale configuratie. Voor sommige scenario's moet de gebruiker echter rechtstreeks beveiligingstokens genereren en gebruiken. Deze scenario's omvatten het directe gebruik van de MQTT-, AMQP- of HTTP-oppervlakken, of de implementatie van het tokenservicepatroon.
Meer informatie over de structuur van het beveiligingstoken en het gebruik ervan vindt u in de volgende artikelen:
Elke IoT Hub heeft een identiteitsregister dat kan worden gebruikt om resources per apparaat in de service te maken, zoals een wachtrij met in-flight cloud-naar-apparaat-berichten en om toegang tot de apparaatgerichte eindpunten toe te staan. Het IoT Hub identiteitsregister biedt veilige opslag van apparaatidentiteiten en beveiligingssleutels voor een oplossing. Afzonderlijke of groepen apparaatidentiteiten kunnen worden toegevoegd aan een acceptatielijst of een bloklijst, waardoor volledige controle over apparaattoegang mogelijk is. De volgende artikelen bevatten meer informatie over de structuur van het identiteitsregister en ondersteunde bewerkingen.
IoT Hub ondersteunt protocollen zoals MQTT, AMQP en HTTP. Elk van deze protocollen maakt gebruik van beveiligingstokens van het IoT-apparaat om anders te IoT Hub:
AMQP: BEVEILIGING op basis van SASL PLAIN en AMQP-claims (
{policyName}@sas.root.{iothubName}met tokens op IoT-hubniveau;{deviceId}met tokens met apparaatbereik).MQTT: CONNECT-pakket gebruikt
{deviceId}als ,{IoThubhostname}/{deviceId}{ClientId}in het veld Gebruikersnaam en een SAS-token in het veld Wachtwoord.HTTP: Geldig token bevindt zich in de header van de autorisatieaanvraag.
IoT Hub identiteitsregister kan worden gebruikt om beveiligingsreferenties en toegangsbeheer per apparaat te configureren. Als een IoT-oplossing echter al een aanzienlijke investering heeft in een aangepast apparaatidentiteitsregister en/of verificatieschema, kan deze worden geïntegreerd in een bestaande infrastructuur met IoT Hub door een tokenservice te maken.
X.509-apparaatverificatie op basis van certificaten
Het gebruik van een X.509-certificaat op basis van een apparaat en het bijbehorende persoonlijke en openbare sleutelpaar staat extra verificatie toe op de fysieke laag. De persoonlijke sleutel wordt veilig opgeslagen op het apparaat en kan niet worden gedetecteerd buiten het apparaat. Het X.509-certificaat bevat informatie over het apparaat, zoals apparaat-id en andere organisatiegegevens. Er wordt een handtekening van het certificaat gegenereerd met behulp van de persoonlijke sleutel.
Stroom voor apparaatinrichting op hoog niveau:
Koppel een id aan een fysiek apparaat: apparaat-id en/of X.509-certificaat dat is gekoppeld aan het apparaat tijdens de productie of inbedrijfstelling van het apparaat.
Maak een bijbehorende id-vermelding in IoT Hub: apparaat-id en bijbehorende apparaatgegevens in het IoT Hub-identiteitsregister.
Sla de vingerafdruk van het X.509-certificaat veilig op in IoT Hub identiteitsregister.
Basiscertificaat op apparaat
Tijdens het tot stand brengen van een beveiligde TLS-verbinding met IoT Hub verifieert het IoT-apparaat IoT Hub met behulp van een basiscertificaat dat deel uitmaakt van de apparaat-SDK. Voor de C-client-SDK bevindt het certificaat zich onder de map \c\certs onder de hoofdmap van de opslagplaats. Hoewel deze basiscertificaten lang duren, kunnen ze nog steeds verlopen of worden ingetrokken. Als er geen manier is om het certificaat op het apparaat bij te werken, kan het apparaat mogelijk geen verbinding maken met de IoT Hub (of een andere cloudservice). Als u een methode hebt om het basiscertificaat bij te werken zodra het IoT-apparaat is geïmplementeerd, wordt dit risico effectief beperkt.
De verbinding beveiligen
De internetverbinding tussen het IoT-apparaat en IoT Hub wordt beveiligd met behulp van de TLS-standaard (Transport Layer Security). Azure IoT ondersteunt IN deze volgorde TLS 1.2, TLS 1.1 en TLS 1.0. Ondersteuning voor TLS 1.0 is alleen beschikbaar voor compatibiliteit met eerdere versies. Controleer tls-ondersteuning in IoT Hub om te zien hoe u uw hub configureert voor gebruik van TLS 1.2, omdat deze de meeste beveiliging biedt.
De cloud beveiligen
Azure IoT Hub kunt u het toegangsbeheerbeleid voor elke beveiligingssleutel definiëren. Er wordt gebruikgemaakt van de volgende set machtigingen om toegang te verlenen tot elk van de eindpunten van IoT Hub. Met behulp van bevoegdheden kunt u toegang tot een IoT Hub beperken op basis van de functionaliteit.
RegistryRead. Verleent leestoegang tot het identiteitsregister. Zie identiteitsregister voor meer informatie.
RegistryReadWrite. Verleent lees- en schrijftoegang tot het identiteitsregister. Zie identiteitsregister voor meer informatie.
ServiceConnect. Verleent toegang tot cloudservicegerichte communicatie- en bewakingseindpunten. Het verleent bijvoorbeeld machtigingen aan back-endcloudservices voor het ontvangen van apparaat-naar-cloud-berichten, het verzenden van cloud-naar-apparaat-berichten en het ophalen van de bijbehorende ontvangstbevestigingen.
DeviceConnect. Verleent toegang tot apparaatgerichte eindpunten. Het verleent bijvoorbeeld toestemming om apparaat-naar-cloud-berichten te verzenden en cloud-naar-apparaat-berichten te ontvangen. Deze machtiging wordt gebruikt door apparaten.
Er zijn twee manieren om DeviceConnect-machtigingen te verkrijgen met IoT Hub met beveiligingstokens: met behulp van een apparaat-id-sleutel of een gedeelde toegangssleutel. Bovendien is het belangrijk om te weten dat alle functionaliteit die toegankelijk is vanaf apparaten, standaard wordt weergegeven op eindpunten met voorvoegsel /devices/{deviceId}.
Services kunnen alleen beveiligingstokens genereren met behulp van beleid voor gedeelde toegang die de juiste machtigingen verlenen.
Azure IoT Hub en andere services die deel kunnen uitmaken van de oplossing, kunnen gebruikers beheren met behulp van de Azure Active Directory.
Gegevens die door Azure IoT Hub worden opgenomen, kunnen worden gebruikt door verschillende services, zoals Azure Stream Analytics en Azure Blob Storage. Met deze services is beheertoegang toegestaan. Meer informatie over deze services en beschikbare opties:
Azure Cosmos DB: een schaalbare, volledig geïndexeerde databaseservice voor semi-gestructureerde gegevens waarmee metagegevens worden beheerd voor de apparaten die u inricht, zoals kenmerken, configuratie en beveiligingseigenschappen. Azure Cosmos DB biedt krachtige en hoge doorvoerverwerking, schema-agnostische indexering van gegevens en een uitgebreide SQL queryinterface.
Azure Stream Analytics: realtime stroomverwerking in de cloud waarmee u snel een voordelige analyseoplossing kunt ontwikkelen en implementeren om realtime inzichten te ontdekken van apparaten, sensoren, infrastructuur en toepassingen. De gegevens van deze volledig beheerde service kunnen worden geschaald naar elk volume terwijl nog steeds hoge doorvoer, lage latentie en tolerantie worden bereikt.
Azure-app Services: een cloudplatform om krachtige web- en mobiele apps te bouwen die overal verbinding maken met gegevens; in de cloud of on-premises. Bouw aantrekkelijke mobiele apps voor iOS, Android en Windows. Integreer met uw SaaS-toepassingen (Software as a Service) en bedrijfstoepassingen met out-of-the-box-connectiviteit met tientallen cloudservices en bedrijfstoepassingen. Code in uw favoriete taal en IDE (.NET, Node.js, PHP, Python of Java) om sneller dan ooit web-apps en API's te bouwen.
Logic Apps: De logic apps-functie van Azure App Service helpt uw IoT-oplossing te integreren in uw bestaande line-of-business-systemen en werkstroomprocessen te automatiseren. Met Logic Apps kunnen ontwikkelaars werkstromen ontwerpen die beginnen met een trigger en vervolgens een reeks stappen uitvoeren: regels en acties die gebruikmaken van krachtige connectors om te integreren met uw bedrijfsprocessen. Logic Apps biedt kant-en-klare connectiviteit met een groot ecosysteem van SaaS-, cloud- en on-premises toepassingen.
Azure Blob Storage: betrouwbare, voordelige cloudopslag voor de gegevens die uw apparaten naar de cloud verzenden.
Conclusie
Dit artikel bevat een overzicht van details op implementatieniveau voor het ontwerpen en implementeren van een IoT-infrastructuur met behulp van Azure IoT. Het configureren van elk onderdeel dat moet worden beveiligd, is essentieel voor het beveiligen van de algehele IoT-infrastructuur. De ontwerpkeuzen die beschikbaar zijn in Azure IoT bieden een zekere mate van flexibiliteit en keuze; Elke keuze kan echter gevolgen hebben voor de beveiliging. Het wordt aanbevolen om elk van deze keuzes te evalueren via een risico-/kostenevaluatie.
Zie ook
Lees meer over IoT Hub beveiliging in toegang tot IoT Hub in de ontwikkelaarshandleiding voor IoT Hub.