Die Richtung ist klar: Ohne ein von Grund auf Sicherheit getrimmtes IoT-Produkt können Anbieter nicht in den Markt eintreten. Die Herausforderung für Hersteller, die das Internet der Dinge (IoT) für ihre Systeme nutzen möchten, ist die komplexe Umsetzung effektiver und relevanter Sicherheitsmechanismen. In diesen Systemen ist eine Authentifizierung und Verschlüsselung unerlässlich. Die Umsetzung ist jedoch nicht immer ganz einfach.

Secure Element

Bild 1: Ein Secure Element wirkt wie ein Tresor, der vertrauliche Informationen schützt. Er ist ein Begleitbaustein eines Mikrocontrollers. Microchip

Es gibt mehrere Komponenten (Software und Hardware), die nötig sind, um eine sichere Grundlage für ein Embedded-System zu schaffen. Eine Schwachstelle in einer der Komponenten kann leicht dazu führen, dass Hacker die Hardware kompromittieren und mit Malware versehen, die sie dann dazu nutzen, das Netzwerk eines Betreibers anzugreifen oder vertrauliche Daten an Cyberkriminelle weiterzuleiten. Hinzu kommt, dass viele Entwicklungsteams vielleicht zum ersten Mal mit den Herausforderungen in Berührung kommen, die sich durch Sicherheitsbedenken ergeben.

Eine eigene Identität für jedes Bauteil

Eck-Daten

Immer mehr Geräte und Systeme sind inzwischen mit dem Internet vernetzt. Um diese Embedded-Systeme vor Hackerangriffen zu schützen, steht Sicherheit ganz oben auf der Prioritäten-Liste. Dies kann einerseits über öffentliche und private Schlüssel erfolgen oder zusätzlich mit Zertifikaten. Auch die Trust-Plattformen von Microchip können dabei helfen, die Sicherheitsanforderungen besser zu erfüllen. Diese Plattform bietet eine Reihe von Konfigurationen, Quellcode, Hardware- und Software-Tools, mit denen Nutzer auf einfache Weise verschiedene Anwendungsfälle in einem Workflow implementieren können.

Eine der Hauptanforderungen für effektive Sicherheit ist, dass jedes bereitgestellte Bauteil eine eigene eindeutige Identität hat. Ein häufiger Fehler den Hacker nutzen, ist, dass Geräte ein gemeinsames Kennwort oder gemeinsame Login-Informationen für Service- und Wartungstechniker aufweisen. Die Details dieser Login-Daten sind oft leicht zu erraten – und selbst wenn sie es nicht sind, kann ein Hacker diese sehr einfach ermitteln. Mit diesem Login kann der Hacker dann nicht nur auf ein Gerät, sondern auf die gesamte Einrichtung/Flotte zugreifen. Cyberkriminelle konnten über einfache automatisierte Skripte Botnetze erstellen – Armeen identischer Computer, um diese für Denial-of-Service-Angriffe zu verwenden. Die Skripte identifizierten und loggten sich in jedes Gerät eines bestimmten Typs ein, das über eine Internetverbindung verfügte.

Mit einer eindeutigen Identität ist es möglich, jedem System seine eigenen Sicherheitszugangsdaten zuzuweisen und die Wahrscheinlichkeit, dass Hacker auf einfache Weise Botnetze erstellen, verringert sich erheblich. Nur wenn ein autorisierter Nutzer die richtigen Anmeldeinformationen für ein bestimmtes Gerät besitzt, sollte ihm der Zugang möglich sein. Dieses erhöhte Schutzniveau hat jedoch Auswirkungen auf das Design, die Entwicklung und das Service-Management.

Effektive Sicherheit so umzusetzen, dass sie die Entwicklung erleichtert und nicht behindert, erfordert wohlüberlegte Entscheidungen. Die erste Wahl betrifft die Hardware-Basis, die zum Schutz der Integrität des Zielgeräts/-systems zum Einsatz kommt. Diese Basis stellt sicher, dass es unmöglich ist, ohne Berechtigung auf die Core-Firmware des Geräts zuzugreifen und dessen Funktionen zu untergraben, womit das Gerät das Netzwerk angreifen könnte. Hat ein Hacker beispielsweise die Zugriffsberechtigung für ein Gerät ergattert, muss es unmöglich sein, ein anderes Gerät so umzuwandeln, dass es dieselben Berechtigungen akzeptiert, um zum Beispiel ein Botnetz zu bilden. Dadurch sind Identität und Integrität eng miteinander verbunden.

Die Public-Key-Infrastruktur (PKI) bietet die Möglichkeit, eine eindeutige vertrauenswürdige Identität nicht nur innerhalb des Geräts selbst, sondern netzwerkweit aufzubauen und nachzuweisen. PKI basiert auf dem Konzept der asymmetrischen Verschlüsselung – einer Technik, die zwei numerische Schlüssel mathematisch miteinander verknüpft. Einer davon ist ein öffentlicher Schlüssel, der normalerweise beim Überprüfen von Nachrichten Anwendung findet. Wie der Name schon sagt, lässt sich dieser Schlüssel weit verbreiten, ohne die Sicherheit zu gefährden – und er bietet eine einfache Möglichkeit, sichere Nachrichten an ein Gerät zu senden, vorausgesetzt, der Nutzer weiß, welchen öffentlichen Schlüssel er verwenden soll. Das Gerät selbst benötigt den privaten Schlüssel, der es ihm erlaubt, gesendete Nachrichten zu signieren, die der entsprechende öffentliche Schlüssel dann überprüft.

Ausgehend von den grundlegenden PKI-Operationen lassen sich strukturiertere Authentifizierungsmodelle erstellen, zum Beispiel digitale Zertifikate, die die Identität eines Geräts belegen. Um ein digitales Zertifikat zu erstellen, signiert ein Gerät eine Nachricht und erstellt mit dem privaten Schlüssel eine Signatur. Den entsprechenden öffentlichen Schlüssel nutzt der Empfänger, um die Gültigkeit der Signatur zu bestimmen.

Hoher Schutz für private Schlüssel

Entwicklungsablauf mit der Trust Platform von Microchip.

Bild 2: Entwicklungsablauf mit der Trust Platform von Microchip. Microchip

Der private Schlüssel benötigt eindeutig einen starken Schutz. Es reicht nicht aus, einfach einen Schlüssel in den nichtflüchtigen Speicher eines Geräts zu programmieren, da dieser dann leicht zugänglich ist. Es ist unbedingt zu vermeiden, den privaten Schlüssel jemals offenzulegen. Im Falle einer Offenlegung ist es Hackern möglich, eigene Klone zu erstellen. Diese können sich dann als authentisches Gerät ausgeben, es manipulieren und so die Sicherheit vernetzter Anwendungen gefährden, die von den vom Gerät gesendeten Daten abhängen.

Ein Problem für ein herkömmliches Design auf Basis eines Mikrocontrollers ist, dass jede auf dem Prozessorkern ausgeführte Verschlüsselungssoftware Zugriff auf den privaten Schlüssel benötigt, um die erforderlichen Berechnungen durchzuführen, vorausgesetzt, der Schlüssel befindet sich in der MCU. Die wesentliche Anforderung an die Hardware ist daher ein Secure Element, das diese Verschlüsselungsvorgänge in einer eigenständigen geschützten Hardware zusammen mit einem sicheren Speicher für die privaten Schlüssel zusammenfasst. Da der Schlüssel und die Verschlüsselungsfunktionen innerhalb derselben physischen Sicherheitsgrenze gespeichert sind, ist es nicht erforderlich, vertrauliche Daten über den internen Systembus zu senden (Bild 1).

Wenn das System sicher kommunizieren oder seine Identität nachweisen muss, fordert es stattdessen das Secure Element auf, auf eine willkürliche Kontrollanfrage (Random Challenge) zu reagieren. Die Antwort darauf ist ein Code, der sich arithmetisch aus dem zufälligen Teil der Anfrage und dem relevanten privaten Schlüssel ableiten lässt, der im Secure Element gespeichert ist. Mit anderen Worten: der private Schlüssel signiert die Random Challenge. Auf diese Weise kann das Secure Element nachweisen, dass es das entsprechende Geheimnis birgt, muss aber den sensiblen privaten Schlüssel selbst nicht offenlegen.

Das Secure Element kann das Gerät auch vor gefälschtem Code schützen, den ein Hacker ausführen und verwenden könnte, um das System zu gefährden. Der Schutzmechanismus, der erforderlich ist, um dies zu verhindern, ist eine Codeüberprüfung, die Fachleute auch als gesichertes Booten oder Laufzeit-Codeüberprüfung bezeichnen. In diesem Fall ist die an das Secure Element gesendete Abfrage eine Signatur, die sich aus dem im Gerät gespeicherten signierten Boot-Image abrufen lässt. Aktualisierungen des Codes müssen OEMs mit ihren privaten Schlüsseln signieren. Durch gesicherte Boot- und Laufzeitüberprüfungsverfahren kann das System vom Hersteller bereitgestellte Over-the-Air-Updates unterstützen, ohne das Risiko einzugehen, dass Dritte Updates über eine Man-in-the-Middle-Attacke oder einen ähnlichen Ansatz ausführen.

Dieser Schlüssel, der die Codesignatur überprüft, ist ein vertraulicher Berechtigungsnachweis, der in einem geschützten und unveränderlichen Speicherbereich abgelegt sein sollte. Besteht die Möglichkeit den Schlüssel zu ändern, würde das System einfach nicht funktionieren. Lässt sich das Schlüsselpaar ändern, ist der Code ebenfalls manipulierbar.

Ein Beispiel für wirksamen Schutz ist das Secure Element ATECC608A von Microchip. Über eine Standard-I²C- oder Einzeldraht-Kommunikationsverbindung kann es in jedem Mikrocontroller-basierten System zum Einsatz kommen. Der Baustein kombiniert einen nichtflüchtigen Speicher mit mehreren Kryptobeschleunigern, die Algorithmen unterstützen, die auf elliptischen Kurven basieren, beispielsweise in einem sicheren IC. Der Baustein offenbart niemals private Schlüssel über die Kommunikationsverbindung und verfügt über eine Reihe von Funktionen zur Manipulationssicherung, die es praktisch unmöglich machen, den Inhalt des Bausteins zu ermitteln.

Zertifikate für erweiterten Schutz

Ablauf des Bestell-/Lieferflusses der Trust Platform von Microchip.

Bild 3: Ablauf des Bestell-/Lieferflusses der Trust Platform von Microchip. Microchip

Obwohl ein an einen Mikrocontroller gekoppeltes Secure Element eine solide Basis für die Entwicklung vernetzter Embedded-Systeme ist, die hohe Sicherheit gewährleisten sollen, ist diese Kombination nur ein Teil der Gesamtlösung. Es gibt viele Anwendungsfälle, bei denen sich komplexe Protokolle in Embedded-Software aus den Kernfunktionen eines Secure Element erstellen lassen. So muss zum Beispiel ein IoT-Gerät neben dem sicheren Booten auch in der Lage sein, mit entfernten Hosts über verschlüsselte Protokolle wie TLS zu kommunizieren. Bei Bedarf sind Zertifikate zu generieren, aus denen hervorgeht, dass das Gerät nicht kompromittiert ist, sobald es eine Verbindung zu einem neuen Gerät herstellen soll. Möchte der Hersteller oder Servicebetreiber ein Code-Update senden, ist die Signatur der Firmware zu überprüfen, bevor es zur Aktualisierung des Flash-Speichers und dem Neustart des Systems kommt.

Eine weitere Anforderung kann die Fähigkeit sein, Systemzubehör oder Verbrauchsmaterial wie Druckerpatronen zu erkennen und festzustellen, ob sie echt sind. Diese Funktion führen Protokolle aus, die denen ähneln, die beim Erstellen des Code-Verifizierungsbeispiels zum Einsatz kommen – jedoch mit einigen Unterschieden. So kann jede Peripherie über ein eigenes Secure Element verfügen, welches überprüft, ob das Host-System, an das es angeschlossen ist, selbst authentisch ist.

Obwohl die Prinzipien hinter den Protokollen, die diese Funktionen umsetzen, relativ einfach sind, kann die Umsetzung schwierig sein. Die Fähigkeit, Probleme zu debuggen, ist durch die Notwendigkeit eingeschränkt, dass das System die sicheren Protokolle befolgt.

Trust-Plattformen

Während der Entwicklung wird häufig davon ausgegangen, dass Entwickler durch Drücken der Reset-Taste oder Löschen des Speicherinhalts auf ein nicht reagierendes System zugreifen können. Debug-Modi gewähren Entwicklern meist einen privilegierten Zugriff auf das System. Wenn die Entwickler jedoch höhere Sicherheitsstandards für Systeme einführen, die mit dem Internet verbunden sind, gelten einige dieser Annahmen nicht mehr. Ist die Software nicht richtig implementiert, kann dies dazu führen, dass der Prototyp nicht mehr erreichbar ist. Die schwierigsten Phasen bei der Entwicklung sicherer Systeme sind das Debuggen der Core-Protokolle. Es ist einfach, Fehler in den Code einzufügen, der zum Verarbeiten von Passwörtern oder Sicherheitszertifikaten dient, was dazu führt, dass das System nicht auf gültige Anforderungen reagieren kann. Wenn es möglich wäre, das System zurückzusetzen, um Zugang zu erhalten, würde dies Hackern eine leicht ausnutzbare Hintertür in das System bieten. Daher führt eine sicherheitsgerichtete Entwicklung zu Hürden im Entwicklungsprozess. Diese sind schwer zu bewältigen, wenn das Team keine Erfahrung mit den erforderlichen Techniken hat.

Ein Vorteil von Systemen, die auf einer PKI-Infrastruktur basieren, ist jedoch, dass Anwendungen auf Core-Protokollen aufbauen können, und Anwendungsfälle, wie die Verifikation signierter ausführbarer Dateien und das Erstellen von Zertifikaten sich in vielen Projekten wiederverwenden lassen. Dies hat zur Schaffung der „Trust Platform“ von Microchip geführt. Diese Plattform bietet eine Reihe von Konfigurationen, Quellcode, Hardware- und Software-Tools, mit denen Nutzer auf einfache Weise verschiedene Anwendungsfälle in einem Workflow implementieren können. Dies führt den Nutzer von der Konzeptphase bis zur Umsetzung auf Hardware-Basis, die ein Secure Element wie den ATECC608A beinhaltet.

Die Trust Platform gliedert sich in drei Hauptangebote. Das einfachste ist Trust&Go, das eine Reihe fester Funktionen bereitstellt, zum Beispiel den Zugriff eines Geräts auf Cloud-Dienste, die auf AWS, Google Cloud, Microsoft Azure oder einer privaten Cloud gehostet sind. Eine weitere von Trust&Go unterstützte Konfiguration ist eine vollständige sichere Authentifizierungslösung für Geräte, die eine Verbindung zu einem drahtlosen LoRa-WAN-Netzwerk herstellen müssen.

Trust-Flex bietet eine zusätzliche Anpassungsebene mit Unterstützung für eine Vielzahl von Operationen vom sicheren Booten bis zur Zertifikaterstellung. Die dritte Option, Trust-Custom, bietet die Möglichkeit, das Erstellen und die Integration von Secure Elements in das gewünschte Sicherheitsmodell zu optimieren (Bild 2).

Bereitstellung der Schlüssel

Trust Platform von Microchip

Bild 4: Über die Trust Platform haben Anwender Zugriff auf anpassbare Sicherheitsmechanismen mit einem deutlich geringen Entwicklungs- und Bereitstellungsrisiko als bei bestehenden Lösungen. Microchip

Ein wichtiger Bestandteil der Trust Platform ist die Art und Weise, wie die Bereitstellung des sicheren Schlüssels bei Anwendungen mit geringen Stückzahlen erfolgt. Mit Trust&Go können Nutzer Secure Elements bereits ab 10 Einheiten pro Bestellung kaufen und erhalten die gesamte Unterstützung der Trust-Platform-Infrastruktur, einschließlich Bereitstellung. Für Trust-Flex beträgt die Mindestbestellmenge einschließlich Bereitstellung nur 2000 Einheiten, bietet dem Nutzer jedoch noch mehr Kontrolle über Zertifikate, Schlüssel und Anwendungen, wie es von maßgeschneiderten sicheren Supply-Chain-Lösungen zu erwarten ist.

Über Microchips Trust Platform haben Anwender Zugriff auf anpassbare Sicherheitsmechanismen mit einem wesentlich geringeren Entwicklungs- und Bereitstellungsrisiko als bei bestehenden Lösungen. Die Kombination aus Tools, Quellcode und Lieferinfrastruktur bietet Entwicklern von Embedded-Systemen Zugriff auf ein vollständiges, sicher bereitgestelltes System, das vom Konzept bis zur Umsetzung funktioniert und den Entwicklungsprozess von Monaten auf Tage verkürzen kann (Bild 3).