Absicherung von eingebetteten Systemen mit dem PSoC 64
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2022-07-27
Die Zahl der Produkte, die mit dem Internet verbunden sind, nimmt exponentiell zu. Viele Produktteams stehen vor dem Problem, dass die Entwickler von eingebetteter Software nicht über ausreichende Erfahrungen im Bereich Sicherheit verfügen. Mangelnde Erfahrung kann zu übersehenen Sicherheitsanforderungen, Sicherheitslücken und schlechter Umsetzung führen. Das Ergebnis sind vernetzte Systeme, die nur unzureichend geschützt sind und ein leichtes Ziel für den Diebstahl von geistigem Eigentum sowie von Geräte- und Benutzerdaten darstellen.
Entwicklern von mikrocontrollerbasierten Systemen stehen mehrere Lösungen zur Verfügung, mit denen sich Sicherheitsimplementierungen vereinfachen lassen und die ihnen die Werkzeuge für eine erfolgreiche Umsetzung an die Hand geben. So können beispielsweise Single-Core-Mikrocontroller TrustZone von Arm nutzen, die Teil der Armv8-M-Architektur (und darüber hinaus) ist. Es gibt auch Lösungen mit Multicore-Mikrocontrollern.
Dieser Artikel zeigt, wie Entwickler Multicore-Prozessoren zur Sicherung ihrer eingebetteten Lösungen einsetzen können. Insbesondere werden der sichere Mikrocontroller PSoC 64 von Cypress und die Tools, die er zur Implementierung einer sicheren Lösung bietet, untersucht.
Grundlagen der eingebetteten Sicherheit
Eine der wichtigsten Grundlagen für die Entwicklung eines sicheren Produkts ist die Nutzung der hardwarebasierten Isolierung. Diese Isolierung kann in vielen Formen erfolgen, z. B. als isolierte Ausführungsumgebung oder als isolierter Speicher auf der Grundlage einer Speicherschutzeinheit (MPU). Auf höchster Ebene muss ein Mikrocontroller in der Lage sein, seine Ausführungsumgebung in eine sichere Verarbeitungsumgebung (SPE) und eine ungesicherte Verarbeitungsumgebung (NSPE) zu unterteilen.
Eine SPE ist eine isolierte Ausführungsumgebung, deren Speicher, Komponenten und Anwendungscode von der NSPE getrennt sind. Die SPE kann man sich als Sicherheitsprozessor vorstellen. Die SPE führt sicheren Code und sichere Operationen aus, wie z. B. ein sicheres Betriebssystem und/oder ein Root-of-Trust (RoT). Die SPE wird auch vertrauenswürdige Dienste wie Kryptographie, sichere Speicherung, Prüfung und sichere Protokollierung ausführen. Eine begrenzte Anzahl von vertrauenswürdigen Anwendungen, die mit sicheren Abläufen zusammenhängen, werden in der SPE ausgeführt.
Die NSPE ihrerseits kann als funktionsreiche Ausführungsumgebung betrachtet werden, in der alles läuft, mit Ausnahme der sicheren Vorgänge. Das NSPE ist eigentlich das vertraute Programmiermodell, an das die meisten Embedded-Entwickler gewöhnt sind; es verfügt über ein RTOS und die meisten Komponenten der Anwendung.
Hardware-basierte Isolierung ist eines der wichtigsten Merkmale der Arm® Platform Security Architecture (PSA) für den Aufbau sicherer Systeme. Die verschiedenen Isolationsebenen, die wir gerade besprochen haben, sind in Abbildung 1 dargestellt, wobei der PSoC 64 als Beispiel dient. In diesem Beispiel bewirken die SPE und die NSPE (1) eine Hardware-Isolierung, indem sie die Laufzeitumgebungen auf getrennten Prozessoren laufen lassen. Zusätzlich zur Laufzeittrennung werden die RoT und die vertrauenswürdigen Dienste weiter isoliert (2). Schließlich wird jede vertrauenswürdige Anwendung in der SPE mit Hilfe von Tools wie vertrauenswürdigen Partitionen und MPUs isoliert (3).
Abbildung 1: Eine sichere Anwendung verwendet hardwarebasierte Isolierung, um Ausführungsumgebungen zu trennen. 1) NSPE und SPE sind isoliert 2) RoT und vertrauenswürdige Dienste sind isoliert 3) Vertrauenswürdige Anwendungen sind isoliert. (Bildquelle: Arm/Cypress)
Der PSoC 64 ist ein Dual-Core-Mikrocontroller, bei dem die NSPE auf einem Arm-Cortex®-M4-Prozessor und die SPE auf einem Arm-Cortex-M0+-Prozessor ausgeführt wird. Der Arm-Cortex-M0+ führt alle Sicherheitsfunktionen aus und kann mit dem Cortex-M4 über einen Inter-Prozessor-Kommunikationsbus (IPC) kommunizieren. Die Architektur beschränkt den Zugriff auf die SPE, die hardwaremäßig isoliert ist.
Für den Einstieg in die Nutzung des PSoC 64 sollten Entwickler das PSoC 64 Secure Boot Pioneer Kit ausprobieren.
Das PSoC 64 Secure Boot Pioneer Kit
Das PSoC 64 Secure Boot Pioneer Kit (Abbildung 2) enthält alles, was Entwickler benötigen, um mit der Sicherung ihrer Anwendungen zu beginnen. Zunächst verfügt es über ein PSoC-64-Modul, das den PSoC-64-Mikrocontroller, den externen Speicher und alle unterstützenden Schaltungen enthält (in rot dargestellt). Der externe Speicher kann zum Speichern von Anwendungscode oder zum Speichern neuer Firmware-Images für sichere Firmware-Over-The-Air(FOTA)-Updates verwendet werden.
Abbildung 2: Das PSoC 64 Secure Boot Pioneer Kit enthält alles, was Entwickler benötigen, um mit der Entwicklung sicherer IoT-Anwendungen zu beginnen. (Bildquelle: Cypress)
Außerdem verfügt es über ein Wi-Fi-Modul, mit dem Entwickler das Board mit einem Netzwerk verbinden können. Das Wi-Fi-Modul ist besonders nützlich für IoT-Anwendungen, bei denen das Board mit Cloud-Diensten wie AWS oder Azure verbunden werden soll. Das Entwicklungsboard unterstützt Amazon FreeRTOS, das wir im nächsten Abschnitt besprechen werden.
Schließlich unterstützt das Pioneer Kit eine breite Palette von Erweiterungsmöglichkeiten wie Stiftleisten, Arduino-Header und eine Reihe von Sensoren. Entwickler können den eingebauten berührungsempfindlichen Schieberegler und die berührungsempfindlichen Tasten, Drucktasten, Potentiometer und vieles mehr nutzen. Das Board ist außerdem so aufgebaut, dass es für nahezu jede Anwendung leicht angepasst werden kann.
Die PSoC 64 Secure Software Suite
Die Entwicklung einer sicheren eingebetteten Anwendung kann zeitaufwändig und schwierig sein. Entwickler sollten nach Lösungen suchen, die die Kosten und die Zeit bis zur Markteinführung senken und gleichzeitig die Sicherheit ihrer Anwendung gewährleisten. Zu diesem Zweck bietet der PSoC 64 eine breite Palette an Software, mit der Entwickler schnell eine sichere Anwendung erstellen können.
So bieten die CySecureTools Entwicklern ein Toolset zum Erstellen von Schlüsseln und Zertifikaten sowie Tools zum Signieren von Benutzeranwendungen und zur Bereitstellung von Cypress-Mikrocontrollern. Das Tool ermöglicht es Entwicklern, die Cypress RoT zu übertragen und dann ihre eigenen Sicherheitsmerkmale einzubringen. Informationen über die Einrichtung und Verwendung von CySecureTools finden Sie in der README-Datei des Github-Repositorys.
Ein nützliches Tool für IoT-Entwickler ist die Unterstützung für AWS mit FreeRTOS. Das Github-Repository enthält nützliche Beispiele für die Verwendung von FreeRTOS und AWS mit dem PSoC 64. Das erste Beispiel, das für Entwickler interessant sein könnte, ist die „Hello World“-Anwendung, die MQTT-Nachrichten vom PSoC 64 an die AWS-Cloud überträgt. Anhand dieses Beispiels kann der Entwickler den Bereitstellungsprozess, die Schlüsselgenerierung und die Bereitstellungsphasen durchlaufen. Am Ende des Beispiels haben die Entwickler ein sicheres eingebettetes Gerät, das mit AWS verbunden ist. Einzelheiten zu den ersten Schritten finden Sie in der Anleitung Getting Started with CY8CKIT-064S0S204343.
Sichere Anwendungen mit Trusted Firmware-M (TF-M)
Der PSoC 64 bietet Entwicklern ein sofort einsatzbereites Sicherheits-Framework, das leicht an die jeweilige Anwendung angepasst werden kann. Für Entwickler kann es nützlich sein, zu verstehen, was hinter den Kulissen der Software vor sich geht. Die PSoC-64-Firmware nutzt ein grundlegendes Open-Source-Sicherheits-Framework, das als Trusted Firmware-M (TF-M) bekannt ist.
TF-M ist eine Referenzimplementierung des Arm PSA IoT Security Framework. Es bietet Entwicklern nützliche Sicherheitstools wie Geräteprüfung, Firmware-Verifizierung, kryptografische Dienste, Verwaltung von Gerätegeheimnissen und sichere Partitionierung, um nur einige zu nennen. Cypress nutzte TF-M, um sein Sicherheits-Framework zu erstellen, das Entwickler dann in ihren Anwendungen verwenden können.
Entwickler können ihr Sicherheits-Framework anpassen, indem sie ihren eigenen Code hinzufügen, Sicherheitsprofile hinzufügen und vieles mehr. Es ist jedoch zu bedenken, dass die Wahrscheinlichkeit, dass eine Sicherheitslücke hinzugefügt wird, umso größer ist, je mehr die SPE-Software geändert wird. Die Entwickler müssen die Risiken, die mit Änderungen, Ergänzungen oder Subtraktionen der Basis-Firmware verbunden sind, sorgfältig abwägen.
Tipps und Tricks zur Sicherung eingebetteter Anwendungen
Entwickler, die ihre eingebetteten Anwendungen zum ersten Mal absichern wollen, haben viel zu beachten. Hier sind einige „Tipps und Tricks“, die die Entwicklung vereinfachen und beschleunigen können:
- Durchführung einer Bedrohungsmodell- und Sicherheitsanalyse (TMSA) zu einem frühen Zeitpunkt im Entwicklungszyklus.
- Verwenden Sie ein Entwicklungsboard, um das RoT des Geräts, den Secure Bootloader, den Prozess der Gerätebereitstellung und Firmware-Updates zu testen.
- Führen Sie die Sicherung nicht allein aus! Nutzen Sie vorhandene Open-Source- und Sicherheits-Firmware-Stacks zur Minimierung von Nacharbeiten.
- Denken Sie unbedingt an den Lebenszyklus des Geräts, einschließlich der Frage, wie es sicher außer Betrieb genommen werden soll.
- Erforschen Sie Tools wie die CySecureTools; solche Tools enthalten Sicherheitsvorlagen, Software und Beispiele.
- Wenn Sie das FreeRTOS-Github-Repository klonen, klonen Sie die letzte getaggte Version. Das Klonen der aktiven Hauptlinie führt oft dazu, dass man auf Inkompatibilitäten mit Werkzeugen und Fehler stößt, die noch bearbeitet werden.
- Beginnen Sie ein Projekt, indem Sie die Anleitung „Getting Started with the Cypress CY8CKIT-064S0S2-4343W“ durchgehen. Sie liefert alle notwendigen Informationen, um eine Basisanwendung zum Laufen zu bringen, die dann für spezifische Produktzwecke modifiziert werden kann.
Entwickler, die diese „Tipps und Tricks“ befolgen, werden feststellen, dass sie sich eine Menge Zeit und Ärger sparen können.
Fazit
Sicherheit muss nicht schwer sein. Entwickler von eingebetteten Systemen sollten sich auf die Alleinstellungsmerkmale ihrer Produkte konzentrieren. In den meisten Fällen ist das nicht die Sicherheit. In diesem Artikel wurde untersucht, wie der PSoC 64 Entwicklern helfen kann, ihre Anwendungen schnell abzusichern, indem er nicht nur eine hardwarebasierte Isolationsumgebung, sondern auch ein Framework von Software-Tools bereitstellt. Zusammen bieten die Hardware- und Softwarelösungen Entwicklern einen beschleunigten Sicherheitsentwicklungszyklus.
Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

