Zum Hauptinhalt springenZum Seitenfuß springen

 |  Blog

Sichere Provisionierung von IoT-Geräten

Wer kennt das nicht: Nach dem Kauf eines neuen Gerätes muss dieses erst aufwendig eingerichtet und in der Cloud registriert werden. Was bei der Einrichtung eines einzelnen Gerätes noch erträglich ist, wird spätestens bei der Einrichtung vieler Geräte oder ganzer Sensornetzwerke zum Albtraum. Hier sind effiziente Verfahren nötig, die ohne ein Begleitpaket an Zugangsdaten und Geräteaktivierungscodes auskommen.

Insbesondere bei der Provisionierung von IoT-Geräten gilt: Sicherheit und Usability müssen keine Gegensätze sein. Dieser Artikel soll aufzeigen, wie dies gelingen kann und welche typischen Probleme bei der Provisionierung gelöst werden müssen.

Provisionierung: Was ist das eigentlich genau?

Provisionierung bezeichnet im Kontext des IoT die initiale Einrichtung eines Gerätes. Geräteseitig umfasst dies in der Regel die Netzwerkkonfiguration und die Einrichtung der Upstreamverbindung. Dies kann beispielsweise eine Verbindung zur Cloud oder zu einem Edge-System sein. Auf der Cloud- bzw. Edge-Seite werden dann in der Regel beim ersten Verbindungsaufbau die benötigten Ressourcen für das Gerät eingerichtet (Just-in-Time Provisioning). Das Gerät erhält Zugriff auf den Kommunikationsendpunkt und wird dem Nutzer bzw. Mandanten zugeordnet, damit dieser es verwalten und überwachen kann.

 

 

Je nach Lösungskonzept werden bei der Provisionierung noch weitere Schritte durchgeführt. So kann es zum Beispiel sinnvoll sein, zusätzliche Kontextinformationen zu übertragen, mit denen das Gerät einem bestimmten Gebäude oder einer Anlage zugeordnet werden kann. Außerdem ist es möglich, bei der Provisionierung bestimmte Softwarekomponenten nachzuladen, die für das Setup des Kunden benötigt werden oder vom Kunden als Zusatzfeatures gebucht wurden.

Ziel ist es, den Provisionierungsprozess für den Nutzer so einfach wie möglich zu gestalten. Deshalb sollte er so weit wie möglich automatisiert werden.

Was macht ein sicheres Provisionierungsverfahren aus?

Bei der Auswahl eines Provisionierungsverfahrens ist es wichtig, dass dieses sowohl alle notwendigen Informationen möglichst nutzerfreundlich ermittelt als auch möglichst sicher ist. Doch welche Kriterien muss ein sicheres Provisionierungsverfahren erfüllen?

1. Nachweis der Geräteidentität (Proof-of-Identity)

Grundlage aller Provisionierungsverfahren ist, dass jedes Gerät eine eindeutige und kryptografisch gesicherte Geräteidentität besitzt. Diese wird für die spätere Authentifizierung beim Upstreamsystem benötigt. Dazu braucht das Gerät eine eindeutige ID, die an einen kryptografischen Nachweis wie zum Beispiel einem Gerätezertifikat gekoppelt ist. 
Je nach Provisionierungsverfahren wird die Geräteidentität vom Hersteller vorprovisioniert, während der Provisionierung automatisch generiert oder vom Nutzer manuell vergeben. Die Generierung der Geräteidentität während der Provisionierung ermöglicht auch die Anbindung von Legacy-Hardware oder offenen Systemen ohne eine durch den Hersteller vergebene Identität.


2. Nachweis des Gerätebesitzes (Proof-of-Possession)

Ist das Upstreamsystem ein Mandantensystem, muss das Gerät bei der Provisionierung dem korrekten Mandanten zugewiesen werden. Eine Möglichkeit ist, dass der Gerätebesitzer dem Hersteller bereits bekannt ist. Dies kommt insbesondere im B2B-Umfeld vor, wenn der Bestellvorgang in einem ERP-System erfasst wurde oder das Upstreamsystem kein Mandantensystem ist, sondern für einen bestimmten Kunden entwickelt wurde. 
Ist der Endverbleib des Gerätes unklar oder erfolgt die Provisionierung über einen unsicheren Kanal, sollte der Nutzer nachweisen, dass er tatsächlich im Besitz des Gerätes ist und eine Provisionierung durchführen möchte. Dies kann zum Beispiel durch Drücken einer Taste am Gerät, durch Übertragung eines Pairing-Codes über einen sicheren Alternativkanal oder durch ein Benutzer-Login auf dem Gerät erfolgen.
 

3. Aufbau der Kommunikationsbeziehung

Um die Kommunikation mit dem Upstreamsystem zu ermöglichen, wird während der Provisionierung der entsprechende Kommunikationsendpunkt auf dem Gerät konfiguriert.
Bei Cloudsystemen ist dies entweder ein fester Kommunikationsendpunkt oder es wird ein Provisionierungsdienst genutzt. Letzterer hat wiederum einen dem Gerät bekannten festen Kommunikationsendpunkt und teilt dem Gerät während der Provisionierung den tatsächlichen Kommunikationsendpunkt mit. Die Nutzung eines separaten Provisionierungsdienstes erlaubt es beispielsweise, alle Geräte eines Mandanten einem bestimmten Kommunikationsendpunkt zuzuweisen oder regional unterschiedliche Endpunkte zu verwenden, um die Latenz zu reduzieren.
Bei Edgesystemen haben die Kommunikationspartner oft keine festen Adressen. Hier können Mechanismen wie mDNS oder Gerätescans eingesetzt werden, um den jeweiligen Kommunikationspartner zu finden. So kann der Nutzer den Kommunikationspartner aus einer Liste auswählen, anstatt die Endpunktadressen manuell eingeben zu müssen.
 

4. Aufbau einer Vertrauensbeziehung

Bevor Gerät und Upstreamgerät uneingeschränkt miteinander kommunizieren können, muss eine Vertrauensbeziehung zwischen den beiden Kommunikationspartnern aufgebaut werden. 
Bei vielen Provisionierungsverfahren geschieht dies bereits implizit. Beispielsweise wird dies bei der Verwendung von TLS und Gerätezertifikaten in der Regel durch die Signatur der Zertifikate mit einer für die jeweilige Seite vertrauenswürdigen CA sichergestellt. Als zusätzlichen Sicherheitsmechanismus verwenden einige Systeme noch einen Staging-Bereich, in dem neu angemeldete Gerät aufgelistet werden und dann vom Nutzer bestätigt werden müssen.
Bei Edgesystemen und bei Systemen ohne vorprovisionierte Geräteidentität, ist dagegen oft eine explizite oder implizite Nutzerbestätigung notwendig. Explizit kann dies beispielsweise durch einen Pairing-Prozess erfolgen. Eine implizite Variante besteht darin, die Auswahl des Gerätes als Kommunikationspartner durch den Nutzer als Vertrauensentscheidung zu werten. Häufig wird hier auch das Trust-on-First-Use-Verfahren eingesetzt.

Bei der Auswahl eines geeignete Provisionierungsverfahrens sollte darauf geachtet werden, dass die Komplexität des Provisionierungsverfahrens für den Nutzer verborgen bleibt. Das gewählte Verfahren sollte leicht verständlich und auf den Anwendungsfall zugeschnitten sein. Es lohnt sich hierfür ein individuelles Konzept zu erstellen, das die technischen Gegebenheiten und Nutzergewohnheiten des jeweiligen Anwendungsfalls entsprechend berücksichtigt. Im nächsten Techshorty werden einige ausgewählte Provisionierungskonzepte beispielhaft vorgestellt.

Wir helfen Ihnen bei der Auswahl eines geeigneten Provisionierungsverfahrens und unterstützen Sie auch bei der Durchführung. Kontaktieren Sie uns ganz einfach.

Über den Autor

 

Daniel Wiese ist technischer Informatiker und Linux Enthusiast. Im Rahmen des Competence Center IoT & Edge beschäftigt er sich mit der Entwicklung und dem Aufbau von Industrial IoT Systemen. Als Experte für Cybersecurity unterstützt er unsere Kunden und Projektteams. 

Erstellt von