Secured-Multicore-Prozessoren und -Mikrocontroller wie der PSoC 64 von Infineon/Cypress können Embedded-Systemen Schutz vor Cyber-Gefahren bieten. Doch wie können Entwickler die Bausteine zur Sicherung ihrer Systeme konkret nutzen, und welche Werkzeuge stehen ihnen dafür bereit?
Die Zahl der Produkte, die mit dem Internet verbunden sind, nimmt exponentiell zu. Viele Produktteams stehen vor dem Problem, dass die Entwickler von Embedded-Software nicht über ausreichende Erfahrungen im Bereich Security verfügen. Mangelnde Erfahrung kann zu übersehenen Security-Anforderungen, 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 geistigen Eigentums sowie von Geräte- und Benutzerdaten darstellen.
Entwicklern von Systemen auf Mikrocontroller-Basis stehen mehrere Lösungen zur Verfügung, mit denen sich Security-Implementierungen vereinfachen lassen und die die dafür nötigen Werkzeuge enthalten. So können Singlecore-Mikrocontroller die Security-Technologie »TrustZone« von Arm nutzen, die ein Teil der Armv8-M-Architektur (und darüber hinaus) ist. Es gibt auch Lösungen mit Multicore-Mikrocontrollern.
Dieser Beitrag zeigt, wie Entwickler Multicore-Prozessoren zur Sicherung ihrer Embedded-Lösungen einsetzen können. Untersucht werden vor allem der Secured-Mikrocontroller PSoC 64, ursprünglich eine Entwicklung des von Infineon erworbenen Unternehmens Cypress, und die Tools, die er zur Implementierung einer sicheren Lösung bietet.
Grundlagen von Embedded Security
Eine der wichtigsten Grundlagen für die Entwicklung eines sicheren Produkts ist die Nutzung der Hardware-basierten Isolierung. Diese Isolierung kann in vielen Formen erfolgen, etwa als isolierte Ausführungsumgebung oder als isolierter Speicher auf der Grundlage einer MPU (Memory Protection Unit). Auf höchster Ebene muss ein Mikrocontroller in der Lage sein, seine Ausführungsumgebung in eine SPE (Secure Processing Environment) und eine NSPE (Non-Secure Processing Environment) 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. Sie führt sicheren Code und sichere Operationen aus, etwa ein sicheres Betriebssystem und/oder eine 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 lässt sich als funktionsreiche Ausführungsumgebung betrachten, in der alles läuft, mit Ausnahme der sicheren Vorgänge. Die NSPE ist eigentlich das vertraute Programmiermodell, das die meisten Embedded-Entwickler gewohnt sind; sie verfügt über ein RTOS und die meisten Komponenten der Anwendung.
Isolierung auf Hardware-Basis ist eines der wichtigsten Merkmale der Arm Platform Security Architecture (PSA) für den Aufbau sicherer Systeme. Die verschiedenen Isolationsebenen sind in Bild 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 Runtime-Umgebungen in getrennten Prozessoren laufen lassen. Zusätzlich zur Runtime-Trennung 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).
Der PSoC 64 ist ein Dualcore-Mikrocontroller, bei dem die NSPE in einem Arm-Cortex-M4-Prozessor und die SPE in 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-Processor Communication (IPC) Bus kommunizieren. Die Architektur beschränkt den Zugriff auf die SPE, die Hardware-mäß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 (Bild 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 Bild 2 rot dargestellt). Der externe Speicher lässt sich zum Speichern von Anwendungscode oder zum Speichern neuer Firmware-Images für sichere Firmware-Over-the-Air-Updates (FOTA) verwenden.
Außerdem verfügt das Pioneer Kit ü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 Board unterstützt Amazon FreeRTOS.
Und schließlich bietet 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, Potenziometer und vieles mehr nutzen. Das Board ist außerdem so aufgebaut, dass es für fast jede Anwendung leicht anzupassen ist.