Schützen Ihrer IoT-Bereitstellung (Internet der Dinge)Secure your Internet of Things (IoT) deployment

Dieser Artikel bietet weitere Details zum Schützen Ihrer auf Azure IoT basierenden IoT-Infrastruktur (Internet of Things, Internet der Dinge).This article provides the next level of detail for securing the Azure IoT-based Internet of Things (IoT) infrastructure. Geboten werden Links zu Details auf Implementierungsebene für die Konfiguration und Bereitstellung der einzelnen Komponenten.It links to implementation level details for configuring and deploying each component. Darüber hinaus finden Sie Vergleiche, um aus verschiedenen konkurrierenden Methoden die gewünschte zu wählen.It also provides comparisons and choices between various competing methods.

Der Schutz der Azure IoT-Bereitstellung kann in die folgenden drei Bereiche unterteilt werden:Securing the Azure IoT deployment can be divided into the following three security areas:

  • Gerätesicherheit: Schützen des IoT-Geräts während seiner Bereitstellung in der Praxis.Device Security: Securing the IoT device while it is deployed in the wild.

  • Verbindungssicherheit: Sicherstellen, dass alle Daten, die zwischen IoT-Gerät und IoT Hub übertragen werden, vertraulich und fälschungssicher sind.Connection Security: Ensuring all data transmitted between the IoT device and IoT Hub is confidential and tamper-proof.

  • Cloudsicherheit: Bieten einer Methode zum Schützen von Daten während der Übertragung und Speicherung in der Cloud.Cloud Security: Providing a means to secure data while it moves through, and is stored in the cloud.

Drei Sicherheitsbereiche

Sichere Gerätebereitstellung und -authentifizierungSecure device provisioning and authentication

Die IoT Solution Accelerators schützen IoT-Geräte mithilfe der beiden folgenden Methoden:The IoT solution accelerators secure IoT devices using the following two methods:

  • Durch Bereitstellen eines eindeutigen Identitätsschlüssels (Sicherheitstokens) für jedes Gerät, der vom Gerät für die Kommunikation mit dem IoT Hub verwendet werden kann.By providing a unique identity key (security tokens) for each device, which can be used by the device to communicate with the IoT Hub.

  • Durch Verwenden eines X.509-Zertifikats und privaten Schlüssels auf dem Gerät als Mittel zur Authentifizierung des Geräts bei IoT Hub.By using an on-device X.509 certificate and private key as a means to authenticate the device to the IoT Hub. Diese Authentifizierungsmethode stellt sicher, dass der private Schlüssel auf dem Gerät außerhalb des Geräts stets unbekannt ist, was für mehr Sicherheit sorgt.This authentication method ensures that the private key on the device is not known outside the device at any time, providing a higher level of security.

Die Sicherheitstokenmethode ermöglicht, dass das Gerät bei jedem Aufruf des IoT Hubs authentifiziert wird, indem dem Aufruf der symmetrische Schlüssel zugeordnet wird.The security token method provides authentication for each call made by the device to IoT Hub by associating the symmetric key to each call. Die X.509-basierte Authentifizierung ermöglicht die Authentifizierung eines IoT-Geräts auf physischer Ebene im Rahmen des TLS-Verbindungsaufbaus.X.509-based authentication allows authentication of an IoT device at the physical layer as part of the TLS connection establishment. Die auf Sicherheitstoken basierende Methode kann ohne X.509-Authentifizierung genutzt werden, dies ist allerdings weniger sicher.The security-token-based method can be used without the X.509 authentication, which is a less secure pattern. Die Wahl zwischen den beiden Methoden wird in erster Linie davon bestimmt, wie sicher die Geräteauthentifizierung erfolgen muss und ob ein sicherer Speicher auf dem Gerät vorhanden ist (in dem der private Schlüssel geschützt gespeichert wird).The choice between the two methods is primarily dictated by how secure the device authentication needs to be, and availability of secure storage on the device (to store the private key securely).

IoT Hub-SicherheitstokenIoT Hub security tokens

IoT Hub verwendet Sicherheitstoken zum Authentifizieren von Geräten und Diensten, um das Senden von Schlüsseln über das Netzwerk zu vermeiden.IoT Hub uses security tokens to authenticate devices and services to avoid sending keys on the network. Darüber hinaus sind Sicherheitstoken im Hinblick auf Gültigkeitszeitraum und Bereich beschränkt.Additionally, security tokens are limited in time validity and scope. Azure IoT SDKs generieren Token automatisch, ohne dass eine spezielle Konfiguration erforderlich ist.Azure IoT SDKs automatically generate tokens without requiring any special configuration. In einigen Szenarien muss der Benutzer Sicherheitstoken jedoch direkt generieren und verwenden.Some scenarios, however, require the user to generate and use security tokens directly. Zu diesen Szenarien gehören die direkte Verwendung von MQTT, AMQP oder HTTP und die Implementierung des Tokendienstmusters.These scenarios include the direct use of the MQTT, AMQP, or HTTP surfaces, or the implementation of the token service pattern.

Weitere Informationen zur Struktur des Sicherheitstokens und seiner Verwendung finden Sie in den folgenden Artikeln:More details on the structure of the security token and its usage can be found in the following articles:

Jeder IoT Hub verfügt über eine Identitätsregistrierung, die Sie zum Erstellen von gerätebasierten Ressourcen im Dienst verwenden können. Hierzu zählt beispielsweise eine Warteschlange mit gesendeten C2D-Nachrichten. Außerdem wird der Zugriff auf geräteseitige Endpunkte ermöglicht.Each IoT Hub has an identity registry that can be used to create per-device resources in the service, such as a queue that contains in-flight cloud-to-device messages, and to allow access to the device-facing endpoints. Die IoT Hub-Identitätsregistrierung ermöglicht die sichere Speicherung von Geräteidentitäten und Sicherheitsschlüsseln für eine Lösung.The IoT Hub identity registry provides secure storage of device identities and security keys for a solution. Geräteidentitäten können einzeln oder in Gruppen einer Zulassungsliste oder Blockierungsliste hinzugefügt werden, um die vollständige Kontrolle über den Gerätezugriff zu haben.Individual or groups of device identities can be added to an allow list, or a block list, enabling complete control over device access. Die folgenden Artikel enthalten weitere Informationen zur Struktur der Identitätsregistrierung und zu unterstützten Vorgängen.The following articles provide more details on the structure of the identity registry and supported operations.

IoT Hub unterstützt Protokolle wie MQTT, AMQP und HTTP.IoT Hub supports protocols such as MQTT, AMQP, and HTTP. Jedes dieser Protokolle verwendet Sicherheitstoken des IoT-Geräts für IoT Hub unterschiedlich:Each of these protocols uses security tokens from the IoT device to IoT Hub differently:

  • AMQP: SASL PLAIN- und AMQP Claims-basierte Sicherheit ({policyName}@sas.root.{iothubName} bei Token auf Ebene des IoT-Hubs, {deviceId} bei auf Geräte bezogenen Token).AMQP: SASL PLAIN and AMQP Claims-based security ({policyName}@sas.root.{iothubName} with IoT hub-level tokens; {deviceId} with device-scoped tokens).

  • MQTT: Das CONNECT-Paket verwendet {deviceId} als {ClientId}, {IoThubhostname}/{deviceId} im Feld Benutzername und ein SAS-Token im Feld Kennwort.MQTT: CONNECT packet uses {deviceId} as the {ClientId}, {IoThubhostname}/{deviceId} in the Username field and an SAS token in the Password field.

  • HTTP: Ein gültiges Token befindet sich im Autorisierungsheader der Anforderung.HTTP: Valid token is in the authorization request header.

Mithilfe der Identitätsregistrierung von IoT Hub können Sie Sicherheitsanmeldeinformationen und die Zugriffssteuerung gerätebezogen konfigurieren.IoT Hub identity registry can be used to configure per-device security credentials and access control. Auch wenn eine IoT-Lösung bereits erheblichen Anteil an einer benutzerdefinierten Geräteidentitätsregistrierung bzw. einem Authentifizierungsschema hat, können Sie diese in eine vorhandene Infrastruktur in IoT Hub integrieren, indem ein Tokendienst erstellt wird.However, if an IoT solution already has a significant investment in a custom device identity registry and/or authentication scheme, it can be integrated into an existing infrastructure with IoT Hub by creating a token service.

Auf X.509-Zertifikat basierende GeräteauthentifizierungX.509 certificate-based device authentication

Die Verwendung eines gerätebasierten X.509-Zertifikats und des zugehörigen Paares aus privatem und öffentlichem Schlüssel ermöglicht eine zusätzliche Authentifizierung auf physischer Ebene.The use of a device-based X.509 certificate and its associated private and public key pair allows additional authentication at the physical layer. Der private Schlüssel wird sicher auf dem Gerät gespeichert und ist außerhalb des Geräts nicht ermittelbar.The private key is stored securely in the device and is not discoverable outside the device. Das X.509-Zertifikat enthält Informationen zum Gerät, z.B. die Geräte-ID und andere organisatorische Details.The X.509 certificate contains information about the device, such as device ID, and other organizational details. Eine Signatur des Zertifikats wird mithilfe des privaten Schlüssels generiert.A signature of the certificate is generated by using the private key.

Allgemeiner Ablauf der Gerätebereitstellung:High-level device provisioning flow:

  • Zuordnen eines Bezeichners zu einem physischen Gerät: Eine Geräte-Identität und/oder ein X.509-Zertifikat wird dem Gerät während der Fertigung oder Inbetriebnahme zugeordnet.Associate an identifier to a physical device – device identity and/or X.509 certificate associated to the device during device manufacturing or commissioning.

  • Erstellen eines entsprechenden Eintrags für die Identität in IoT Hub: Die Geräte-Identität und zugehörige Informationen zum Gerät werden der IoT Hub-Identitätsregistrierung hinzugefügt.Create a corresponding identity entry in IoT Hub – device identity and associated device information in the IoT Hub identity registry.

  • Sicheres Speichern des X.509-Zertifikatfingerabdrucks in der IoT Hub-Identitätsregistrierung.Securely store X.509 certificate thumbprint in IoT Hub identity registry.

Stammzertifikat auf dem GerätRoot certificate on device

Beim Herstellen einer sicheren TLS-Verbindung mit IoT Hub authentifiziert sich das IoT-Gerät beim IoT Hub mithilfe eines Stammzertifikats, das Teil des Geräte-SDK ist.While establishing a secure TLS connection with IoT Hub, the IoT device authenticates IoT Hub using a root certificate that is part of the device SDK. Beim SDK für C-Clients befindet sich das Zertifikat im Ordner „\c\certs“ unter dem Stammverzeichnis des Repositorys.For the C client SDK, the certificate is located under the folder "\c\certs" under the root of the repo. Obwohl diese Stammzertifikate langlebig sind, können sie dennoch abgelaufen oder widerrufen worden sein.Though these root certificates are long-lived, they still may expire or be revoked. Wenn es keine Möglichkeit gibt, das Zertifikat auf dem Gerät zu aktualisieren, kann sich das Gerät ggf. in der Folge nicht mit dem IoT Hub (oder einem anderen Clouddienst) verbinden.If there is no way of updating the certificate on the device, the device may not be able to subsequently connect to the IoT Hub (or any other cloud service). Durch eine Möglichkeit zum Aktualisieren des Stammzertifikats, nachdem das IoT-Gerät bereitgestellt wurde, wird dieses Risiko effektiv verringert.Having a means to update the root certificate once the IoT device is deployed effectively mitigates this risk.

Schützen der VerbindungSecuring the connection

Die Internetverbindung zwischen IoT-Gerät und IoT Hub wird standardmäßig mit TLS (Transport Layer Security) geschützt.Internet connection between the IoT device and IoT Hub is secured using the Transport Layer Security (TLS) standard. Azure IoT unterstützt TLS 1.2, TLS 1.1 und TLS 1.0 in der angegebenen Reihenfolge.Azure IoT supports TLS 1.2, TLS 1.1, and TLS 1.0, in this order. Unterstützung für TLS 1.0 wird nur zum Zweck der Abwärtskompatibilität geboten.Support for TLS 1.0 is provided for backward compatibility only. Über die TLS-Unterstützung in IoT Hub können Sie herausfinden, wie Sie Ihren Hub für die Verwendung von TLS 1.2 konfigurieren, da diese Version die höchste Sicherheit bietet.Check TLS support in IoT Hub to see how to configure your hub to use TLS 1.2, as it provides the most security.

Schützen der CloudSecuring the cloud

Azure IoT Hub ermöglicht für jeden Sicherheitsschlüssel die Definition von Richtlinien für die Zugriffssteuerung.Azure IoT Hub allows definition of access control policies for each security key. IoT Hub verwendet den folgenden Satz von Berechtigungen, um Zugriff auf die Endpunkte jedes IoT Hubs zu gewähren.It uses the following set of permissions to grant access to each of IoT Hub's endpoints. Berechtigungen beschränken den Zugriff auf einen IoT Hub basierend auf der Funktionalität.Permissions limit the access to an IoT Hub based on functionality.

  • RegistryRead.RegistryRead. Diese Berechtigung gewährt Lesezugriff auf die Identitätsregistrierung.Grants read access to the identity registry. Weitere Informationen finden Sie unter Identitätsregistrierung.For more information, see identity registry.

  • RegistryReadWrite.RegistryReadWrite. Diese Berechtigung gewährt Lese- und Schreibzugriff auf die Identitätsregistrierung.Grants read and write access to the identity registry. Weitere Informationen finden Sie unter Identitätsregistrierung.For more information, see identity registry.

  • ServiceConnect.ServiceConnect. Diese Berechtigung gewährt Zugriff auf die clouddienstseitigen Endpunkte für Kommunikation und Überwachung.Grants access to cloud service-facing communication and monitoring endpoints. Beispielsweise wird Back-End-Clouddiensten die Berechtigung erteilt, D2C-Nachrichten zu empfangen, C2D-Nachrichten zu senden und die zugehörigen Übermittlungsbestätigungen zu empfangen.For example, it grants permission to back-end cloud services to receive device-to-cloud messages, send cloud-to-device messages, and retrieve the corresponding delivery acknowledgments.

  • DeviceConnect.DeviceConnect. Diese Berechtigung gewährt Zugriff auf die geräteseitigen Endpunkte.Grants access to device-facing endpoints. Beispielsweise wird die Berechtigung zum Senden von D2C-Nachrichten und das Empfangen von C2D-Nachrichten erteilt.For example, it grants permission to send device-to-cloud messages and receive cloud-to-device messages. Diese Berechtigung wird von Geräten verwendet.This permission is used by devices.

Es gibt zwei Methoden zum Abrufen von DeviceConnect-Berechtigungen mit IoT Hub mit Sicherheitstoken: Identitätsschlüssel für das Gerät oder Shared Access-Schlüssel.There are two ways to obtain DeviceConnect permissions with IoT Hub with security tokens: using a device identity key, or a shared access key. Darüber hinaus ist zu beachten, dass alle Funktionen, auf die auf Geräten zugegriffen werden kann, für Endpunkte mit dem Präfix /devices/{deviceId}absichtlich verfügbar gemacht werden.Moreover, it is important to note that all functionality accessible from devices is exposed by design on endpoints with prefix /devices/{deviceId}.

Dienstkomponenten können nur Sicherheitstoken mithilfe von SAS-Richtlinien generieren, die die entsprechenden Berechtigungen erteilen.Service components can only generate security tokens using shared access policies granting the appropriate permissions.

Azure IoT Hub und andere Dienste, die möglicherweise Teil der Lösung sind, erlauben die Verwaltung von Benutzern mithilfe von Azure Active Directory.Azure IoT Hub and other services that may be part of the solution allow management of users using the Azure Active Directory.

Von Azure IoT Hub erfasste Daten können von einer Vielzahl von Diensten wie Azure Stream Analytics und Azure Blob Storage genutzt werden.Data ingested by Azure IoT Hub can be consumed by a variety of services such as Azure Stream Analytics and Azure blob storage. Diese Dienste ermöglichen einen Verwaltungszugriff.These services allow management access. Hier finden Sie weitere Informationen zu diesen Diensten und verfügbaren Optionen:Read more about these services and available options:

  • Azure Cosmos DB: Ein skalierbarer, vollständig indizierter Datenbankdienst für semistrukturierte Daten, mit dem die Metadaten für die bereitgestellten Geräte verwaltet werden, z.B. Attribute, Konfiguration und Sicherheitseigenschaften.Azure Cosmos DB: A scalable, fully-indexed database service for semi-structured data that manages metadata for the devices you provision, such as attributes, configuration, and security properties. Azure Cosmos DB bietet eine Verarbeitung mit hoher Leistung und hohem Durchsatz, eine schemaagnostische Indizierung von Daten und eine umfassende SQL-Abfrageschnittstelle.Azure Cosmos DB offers high-performance and high-throughput processing, schema-agnostic indexing of data, and a rich SQL query interface.

  • Azure Stream Analytics: Datenstromverarbeitung in Echtzeit in der Cloud, mit der eine schnelle Entwicklung und Bereitstellung einer kostengünstigen Analyselösung ermöglicht wird, mit der Sie in Echtzeit basierend auf Geräte-, Sensor-, Infrastruktur- und Anwendungsdaten wichtige Einblicke erhalten.Azure Stream Analytics: Real-time stream processing in the cloud that enables you to rapidly develop and deploy a low-cost analytics solution to uncover real-time insights from devices, sensors, infrastructure, and applications. Die Daten aus diesem vollständig verwalteten Dienst können auf beliebige Volumina skaliert werden, während trotzdem ein hoher Durchsatz, eine geringe Latenz und Resilienz erzielt werden.The data from this fully-managed service can scale to any volume while still achieving high throughput, low latency, and resiliency.

  • Azure App Services: Cloudplattform für leistungsstarke mobile Apps und Web-Apps, für die eine Verbindung mit cloudbasierten oder lokalen Datenquellen hergestellt werden kann.Azure App Services: A cloud platform to build powerful web and mobile apps that connect to data anywhere; in the cloud or on-premises. Entwickeln Sie benutzerfreundliche mobile Apps für iOS, Android und Windows.Build engaging mobile apps for iOS, Android, and Windows. Profitieren Sie von einer Integration in Ihre SaaS- (Software as a Service) und Unternehmensanwendungen und vom standardmäßigen Zugriff auf Dutzende von cloudbasierten Diensten und Unternehmensanwendungen.Integrate with your Software as a Service (SaaS) and enterprise applications with out-of-the-box connectivity to dozens of cloud-based services and enterprise applications. Programmieren Sie in Ihrer bevorzugten Sprache und IDE, z.B. .NET, Node.js, PHP, Python oder Java, um schneller als je zuvor Web-Apps und APIs zu entwickeln.Code in your favorite language and IDE (.NET, Node.js, PHP, Python, or Java) to build web apps and APIs faster than ever.

  • Logic Apps: Das Logic Apps-Feature von Azure App Service dient als Hilfe bei der Integration Ihrer IoT-Lösung in Ihre vorhandenen branchenspezifischen Systeme und bei der Automatisierung von Workflowprozessen.Logic Apps: The Logic Apps feature of Azure App Service helps integrate your IoT solution to your existing line-of-business systems and automate workflow processes. Mit Logik-Apps können Entwickler Workflows entwerfen, die über einen Auslöser gestartet werden und dann eine Reihe von Schritten ausführen – Regeln und Aktionen, für die leistungsfähige Connectors zur Integration in Ihre Geschäftsprozesse eingesetzt werden.Logic Apps enables developers to design workflows that start from a trigger and then execute a series of steps—rules and actions that use powerful connectors to integrate with your business processes. Logik-Apps ermöglichen standardmäßig Verbindungen mit einem umfassenden Ökosystem von SaaS-, cloudbasierten und lokalen Anwendungen.Logic Apps offers out-of-the-box connectivity to a vast ecosystem of SaaS, cloud-based, and on-premises applications.

  • Azure Blob Storage: zuverlässiger, kostengünstiger Cloudspeicher für die Daten, die von Ihren Geräten an die Cloud gesendet werden.Azure Blob storage: Reliable, economical cloud storage for the data that your devices send to the cloud.

ZusammenfassungConclusion

Dieser Artikel bietet eine Übersicht über die Details auf Implementierungsebene zum Entwerfen und Bereitstellen einer IoT-Infrastruktur mithilfe von Azure IoT.This article provides overview of implementation level details for designing and deploying an IoT infrastructure using Azure IoT. Die sicherheitsorientierte Konfiguration aller Komponenten ist entscheidend für den Schutz der gesamten IoT-Infrastruktur.Configuring each component to be secure is key in securing the overall IoT infrastructure. Die in Azure IoT verfügbaren Entwurfsoptionen bieten ein Maß an Flexibilität und Auswahlmöglichkeiten, von denen jede allerdings bestimmte Auswirkungen auf die Sicherheit hat.The design choices available in Azure IoT provide some level of flexibility and choice; however, each choice may have security implications. Es wird empfohlen, jede dieser Optionen hinsichtlich Risiken und Kosten zu bewerten.It is recommended that each of these choices be evaluated through a risk/cost assessment.

Weitere InformationenSee also

Im IoT Hub-Entwicklerhandbuch finden Sie unter Verwalten des Zugriffs auf IoT Hub weitere Informationen zur Sicherheit von IoT Hub.Read about IoT Hub security in Control access to IoT Hub in the IoT Hub developer guide.