ARM TechCon 2017 Endlich Standards für die IoT-Sicherheit?

Eine Billion vernetzte Geräte im IoT bis 2035 ist die Vision von ARM. Es gibt unzählige proprietäre und z.T. rudimentäre Ansätze für Security in einer vernetzten Welt. Dank weitreichender Unterstützung hat eine neue Sicherheitsarchitektur von ARM die Chance, ein Standard für IoT-Geräte zu werden.

Die auf seiner Entwicklerkonferenz TechCon 2017 vorgestellte sogenannte Plattform Security Architecture (PSA) zielt einfach gesagt darauf ab, ein sicheres Hardware-Software-Framework für Geräte zu schaffen, die auf ARM-CPUs basieren. Dank seiner Position im Embedded-Markt, einer Art Spinne im Ecosystem-Netz, wird PSA weitreichend unterstützt, angefangen bei Prozessorherstellern wie ST Microelectronics und NXP über Software- und Sicherheitsentwickler bis hin zu Systemherstellern und Cloud-Dienstanbietern wie Microsoft und Google. Damit hat ARM unabhängig von der Technologie, die wir in der Folge besprechen werden, die größte Hürde bereits gemeistert: Eine wirklich weite Unterstützung vom Sensor-Knoten bis zur Cloud.

Angelehnt an Trusted Computing

Wie wir später sehen werden, lehnt sich die PSA deutlich an das Trusted-Computing-Konzept (TC) der Trusted Computing Group (TCG) in der PC-Welt an. Dies beginnt bereits auf der untersten Ebene der Plattform und dort bereits zu Beginn des Bootvorgangs eines solchen Systems. Dem Trusted-Platform-Modul (TPM) als zertifiziertem Hardware-Sicherheitsbaustein eines vertrauenswürdigen Herstellers wird dabei a priori vertraut. Von dieser untersten Schicht wird beim Systemstart eine ununterbrochene Sicherheitskette (»Chain of Trust«) bis zu den Applikationen hochgezogen. Sobald jeweils die untere Ebene über eine stabile Sicherheitsreferenz verfügt, kann sich die nächste Ebene darauf abstützen. Jede dieser Domänen baut auf der vorhergehenden auf und erwartet damit, dass im Gesamtsystem jede Transaktion, interne Verbindung und Geräteanbindung vertrauenswürdig, zuverlässig, sicher und geschützt ist. Das TPM als Hardware-Sicherheits-Referenz stellt dabei die Wurzel (»Root of Trust«, RoT) der gesamten Sicherheitskette dar. 

Zu Beginn wird bereits überprüft, ob sich die Signatur - und damit die Konstellation - der Plattformkomponenten verändert hat, ob also eine der Komponenten verändert, entfernt oder ersetzt wurde. Ähnliche Überprüfungsmechanismen mit Hilfe des TPM verifizieren dann nacheinander zum Beispiel die Korrektheit des BIOS, des Bootblocks und des Bootens selbst, sowie die jeweils nächsthöheren Schichten beim Starten des Betriebssystems. Während des ganzen Startvorgangs, aber auch später, ist damit der Sicherheits- und Vertrauenszustand des Systems – allerdings nur mit Einwilligung des Plattform-Besitzers – über den TPM abfragbar. Damit kann aber auch eine kompromittierte Plattform sicher von anderen identifiziert werden und der Datenaustausch auf das angemessene Maß eingeschränkt werden. 

PSA und seine Komponenten

Die PSA umfasst zumeist eine Reihe von Designrichtlinien und -spezifikationen. Konkret besteht das PSA-Paket aus drei Komponenten. Die erste beinhaltet diverse Sicherheitsanalysen und Bedrohungsmodelle, die ARM selbst durch die Analyse unterschiedlichster IoT-Produkte entwickelt hat. Die zweite Komponente definiert PSA-Hardware- und Software-Architekturen, einschließlich einer Trusted-Base-Systemarchitektur für ARMv8-M-CPUs (TBSA-M, derzeit also für Cortex-M23/33 [1]) und eines Firmware-Frameworks (PSA-FF), das auf TBSA-M-konformen Designs basiert. Die dritte Komponente – hier handelt es sich nicht um reine Paperware - ist eine sogenannte Trusted Firmware-M (TF-M), welche die Implementierung von PSA-Firmware-Anforderungen in Mikrocontrollern auf Cortex-M-Basis erleichtern soll. Diese Referenzfirmware wird ab dem 1. Quartal 2018 Open-Source-Code zur Verfügung stehen. TF-M zielt wie auch TBSA-M auf Chips ab, die auf ARMv8-M-CPUs aufsetzen. 

Die PSA-Spezifikationen erfordern unter anderem, dass alle Geräte eine eindeutige und unveränderliche ID in ihrem Silizium haben müssen, zum Beispiel durch Integration eines einmalig programmierbaren (OTP) ROM. Weitere PSA-Anforderungen betreffen eine vertrauenswürdige Boot-Sequenz sowie eine zertifikatbasierte Authentifizierung anstelle von einfach zu hackenden Passwörtern für die Kommunikation mit cloud-basierten Diensten.

Bei IoT-vernetzten Geräten ist das Aktualisieren der Software bei neuen Bedrohungen von entscheidender Bedeutung. Deshalb enthalten die PSA-Spezifikationen Mechanismen zur Implementierung von sicheren Over-the-Air-Updates (OTA). Obwohl diese Elemente dabei helfen, die internen Funktionen des Prozessors zu schützen, fehlt die Luftschnittstelle. Für sichere drahtlose Verbindungen müssen Mechanismen wie das TLS-Protokoll (Transport Layer Security) verwendet werden, das die Kommunikationsverbindung zwischen Client und Server verschlüsselt und den Schlüsselaustausch für authentische Identitäten verwendet. Aus diesem Grund kaufte ARM im Jahr 2015 die niederländische Firma Offspark, welche die sogenannte PolarSSL-Embedded TLS-Bibliothek vertrieb. ARMs IoT-Betriebssystem mbed OS integriert jetzt PolarSSL unter der Marke mbed TLS. 

mbed TLS bedient sichere Luftschnittstelle 

Die SSL-Kernbibliothek ist in der Programmiersprache C geschrieben und implementiert das SSL-Modul, die grundlegenden kryptografischen Funktionen und bietet verschiedene Dienstprogrammfunktionen. Im Gegensatz zu OpenSSL und anderen Implementierungen von TLS ist mbed TLS so konzipiert, dass es auf kleine Embedded-Geräte passt, wobei der minimale vollständige TLS-Stack weniger als 60 KB an Speicher und weniger als 64 KB RAM benötigt. Es ist auch sehr modular: Jede Komponente, wie eine kryptographische Funktion, kann unabhängig vom Rest des Frameworks verwendet werden. Versionen sind auch für Microsoft Windows und Linux verfügbar. Da mbed TLS in der Programmiersprache C ohne externe Abhängigkeiten geschrieben ist, funktioniert es ohne Probleme auf den meisten Betriebssystemen und Architekturen. In späteren Versionen kamen zum Kern noch Abstraktionsschichten für die Speicherzuweisung und das Threading zum Kern hinzu, um eine bessere Integration mit vorhandenen eingebetteten Betriebssystemen zu unterstützen. 

PSA ist betriebssystemunabhängig, dazu soll es Implementierungen für alle Cortex-M-basierten Geräte in mbed geben, einschließlich der Unterstützung für ARMv7-M- und ARMv6-M-CPUs der vorherigen Generation. Die Liste der Unternehmen, die sich bereits zu PSA committed haben, ist lang. Sie umfasst Mikrocontroller-Hersteller wie Renesas, ST Microelectronics, NXP, Microchip, Silicon Labs und Nuvoton, zu den Software-Herstellern gehören IAR, Green Hills, Mentor und Micrium. Dazu kommen Anbieter von Sicherheitssoftware wie Symantec und Telekommunikationsunternehmen wie ARMs-Inhaber Softbank, Cloud-Anbieter wie Alibaba (China) sowie Google (Cloud Platform) und Microsoft (Azure).

Zwei neue IP-Produkte

Mit keiner der bislang erwähnten Komponenten könnte ARM Geld verdienen. Um die Einführung von PSA-konformen Designs zu beschleunigen und zu vereinfachen, bietet das Unternehmen daher auch zwei separat lizenzierte IP-Produkte an. Eines davon ist das sogenannte CryptoIsland-300, eine Zusammenführung von sicherheitsrelevanten Funktionen für eine vereinfachte Integration einer RoT in ihre Produkte. 

ARM baute CryptoIsland-300 vollständig aus bereits vorhandenen Hardware-Komponenten auf, die Kunden sonst separat lizenzieren würden. Dazu gehören eine sichere CPU (eine ARMv6-M-CPU analog zu einem Cortex-M0), ein CryptoCell-312-Block sowie Filter, Interconnects, Postfächer, Stromversorgung und weitere Funktionen (Bild 1). CryptoIsland erledigt typische RoT-Aufgaben ähnlich wie ein TPM in der PC-Welt, dazu gehören zum Beispiel sicheres Booten, sichere Speicherung von Daten, Software-Authentifizierung und der Schutz von Kryptografie-Schlüsseln.


Das zweite neue IP-Produkt heißt SDC-600, das ein Sicherheitsleck in Prozessoren durch Hinzufügen einer Authentifizierungsebene zum JTAG-Debug-Port beseitigt. Hersteller verwenden den JTAG-Port zum Testen während des Designs und der Produktion. Wenn diese Ports nicht deaktiviert sind, können sie von Hackern als Eintrittspunkte für Malware, zum Umgehen von sicheren Anmeldeverfahren oder zum Auslesen vertraulicher Informationen verwendet werden.

Die Aggregation sensibler Funktionen in einer verschlüsselten Instanz schafft eine Trennung zwischen kritischen Subsystemen und der Host-CPU und reduziert die Angriffsmöglichkeiten auf einen Prozessor. PSA ist wie schon erwähnt prinzipiell architekturunabhängig, die Kombination von CryptoIsland-Hardware und der TF-M-Architektur zielt zunächst aber klar auf ARMv8-M-CPUs ab. Für andere Implementierungen definiert die PSA sichere Ausführungsgrenzen zwischen verschiedenen CPU-Funktionen.

Wie Bild 2 zeigt, trennt das PSA-Firmware-Framework die Operationen eines Prozessors in sichere und nicht-sichere Ausführungsumgebungen. Die nicht-sichere Umgebung umfasst den Betriebssystemkern und die Bibliotheken zusammen mit der nicht-sicheren Anwendungsfirmware. Mit ARMv8-M-CPUs können Entwickler die separaten sicheren und nicht-sicheren Domänen mithilfe von TrustZone implementieren [2]. Da ARM TF-M jedoch als Open-Source-Firmware anbietet, können Entwickler die für ihre Entwürfe erforderlichen Teile verwenden oder ändern. CryptoIslands reduzieren die Anzahl der Prozessor-Ressourcen, die die beiden Domänen gemeinsam nutzen, und bietet damit zusätzlich zur TrustZone-Architektur nochmals zusätzliche Sicherheit.

In der sicheren Verarbeitungsumgebung (SPE) steuert die PSA-Firmware die sicheren Partitionen, die Blöcke von ausführbarem Code für sensible Prozesse umfassen, die eine oder mehrere sichere Funktionen verwenden. Der Secure-Partition-Manager stellt der SPE die Start-, Isolations- und Interprozesskommunikationsdienste (IPC) bereit. Die IPC-Dienste rufen über APIs sichere Funktionen auf.

ARM liefert CryptoIsland-IP im Quellcode aus. Die grundlegende Technologie für CryptoCell kaufte sich ARM im Jahr 2015 mit der Firma Sansa Security ein, welche seinerzeit Sicherheits-Cores, einen Software-Stack, der auf Client-Geräten läuft, und eine Server-Komponente für IoT-Cloud-Services entwickelte. Die CryptoCell-312 unterstützt asymmetrische/symmetrische Kryptographie, Geräte-Lebenszyklus-Verwaltung, Schlüsselbereitstellung, Hardware-RoT, Software-Image-Validierung (lokal und Update) und einen Zufallszahlengenerator (TRNG).

In der PSA-Architektur sind vertrauenswürdige Funktionen solche, die Dienste wie sicheres Booten, Schlüsselverwaltung, sicheren Speicher und Zugriff auf die Verschlüsselungs-Engine bereitstellen. CryptoIsland integriert und steuert die Funktionen, die vertrauenswürdigen Partitionen Dienste zur Verfügung stellen, und erstellt eine zusätzliche Hardware-Grenze, um sensible Prozessoroperationen zu schützen.

Obwohl ARM die PSA für seine ARMv8-M-CPUs optimiert hat, soll die Architektur auch für Cortex-A- und Cortex-R-CPUs kommen. Die PSA funktioniert am besten mit TrustZone-ausgestatteten CPUs, aber CryptoIslands ermöglicht sichere Implementierungen auch mit ARMv6-M-basierten Cortex-M0+ und ARMv7-M-basierten Cortex-M4. Wie Bild 3 zeigt, laufen die nicht sicheren Anwendungen und das Betriebssystem in nicht mit TrustZone ausgestatteten Designs wie gewohnt auf der Haupt-CPU, CryptoIsland erstellt in diesen Fällen eine separate SPE, die alle sicherheitsrelevanten Aufgaben erledigt.

Endlich ein ganzheitlicher Ansatz 

Wenn man heute Hard- und Softwareanbieter zum Thema IoT-Security befragt, wird keiner von ihnen erzählen, man habe nichts. Bei genauer Betrachtung erweisen sich allerdings viele Ansätze als proprietär und/oder nicht ganzheitlich, wenn es um Sicherheit auf Systemebene vom Sensor bis zur Cloud geht. 

ARMs Platform Security Architecture bietet einen umfassenden Ansatz zum Aufbau sicherer IoT-Chips. Sie vereint Hardware- und Firmware-Komponenten in einer Lösung, die alle Kernfunktionen von MCUs schützen soll. Man muss eingestehen, dass ARM seine sicherheitsrelevanten Akquisitionen intelligent einsetzt und sie ebenso intelligent mit seinem umfangreichen IP-Angebot verknüpft, um eine beeindruckende Plattform aufzubauen. Und das ist ja nur der Anfang:

Im Juli 2017 kaufte ARM die Firma Simulity Labs, ein Entwickler von Embedded-SIM-Karten (eSIM)-Software, es ist davon auszugehen, dieses Know-How bald in der Trusted-Firmware-M-Technologie zu finden.

Gerne würde ich Ihnen an dieser Stelle auch konkurrierende Angebote anderer Hersteller vorstellen und diese mit der PSA vergleichen. Es gibt nur ein Problem: Es gibt schlichtweg keine. Am ehesten ist noch Synopsys zu nennen, das Antitamper-Funktionen in seine ARC-CPUs integrierte und das DesignWare tRoot H5-Hardware-Sicherheitsmodul anbietet, das als RoT-IP die gleichen Funktionen wie CryptoIsland beinhaltet, einschließlich Authentifizierung, dedizierter sicherer CPU, Verschlüsselungs-Beschleuniger und sicheres Booten/Debugging/Speichern. Synopsys fehlt jedoch eine Client-to-Cloud-Plattform, wie sie ARM mit der Kombination PSA/mbed-TLS erzielt.

Die PSA und CryptoIsland machen es den Anwendern nicht nur wirklich einfacher, sichere IoT-Anwendungen zu entwickeln, sondern haben vor allen Dingen dank der breiten Unterstützung in der Branche das Zeug zum Standard. Dies bedeutet nun wieder, es werden mehr Designs auf Cortex-M-CPUs erfolgen, was dann ARMs Lizenzeinnahmen weiter erhöhen wird. Das dahinterliegende Konzept ist nicht neu und aus der PC-Branche schon lange bekannt, aber auch beim iPhone hatte Apple ja das Rad nicht neu erfunden, sondern einfach bereits existierende Komponenten zu einem seinerzeit einzigartigen Benutzererlebnis kombiniert. Der Erfolg dieses Modells ist bekannt. Nur am Rande sei notiert, dass die ARM9-CPU für Apples erstes iPhone von ARMs Mitarbeiter Nr. 16 entwickelt wurde: dem heutigen CEO Simon Segars.

Referenzen 

Riemenschneider, F.: ARMv8-M bringt Security in Controller. DESIGN&ELEKTRONIK 2016, Ausgabe 1, S. 23 ff.

Riemenschneider, F.: Die ersten ARMv8-M-CPUs: Cortex-M22/M33. MEDIZIN+ELEKTRONIK 2017, Ausgabe 2, S. 45 ff.