Embedded Security: Auf die Prozessoren kommt es an

| Autor / Redakteur: Amrit Mundra * / Michael Eckstein

Sicherer Anschluss: 
Im Betrieb muss der Debug-Port deaktiviert werden oder darf nur über zertifizierte Kryptografieschlüssel zugänglich sein.
Sicherer Anschluss: 
Im Betrieb muss der Debug-Port deaktiviert werden oder darf nur über zertifizierte Kryptografieschlüssel zugänglich sein. (Bild: Texas Instruments)

Mit der rasanten Verbreitung vernetzter Embedded-Systeme wächst auch die Zahl möglicher Angriffspunkte für Cyberattacken. Die Sicherheit von Embedded-Prozessoren ist daher entscheidend.

Daten haben sich zu einem wichtigen wirtschaftlichen und politischen Gut entwickelt. Die Folge: Jedes Bit und jedes Byte ist ein potenzielles Angriffsziel. Gleichzeitig steigt die Komplexität von Software- und Hardwaresystemen. Sie sind stärker vernetzt und häufiger voneinander abhängig. Milliarden oder gar Billionen von Codezeilen und zahllose miteinander zusammenhängende Hardwaremodule, Subsysteme und Partitionen, alle auf winzigen Siliziumchips zusammengepfercht, sind der Traum eines jeden Hackers. Kurzum: Die Zahl der Schwachstellen nimmt zu – und gleichzeitig auch die Möglichkeiten, diese auszunutzen.

Hacker entwickeln ihre Fähigkeiten kontinuierlich weiter. Immer neue Meldungen über Sicherheitslücken auch in eingebetteten Systemen zeugen davon. In Gefahr sind ganz unterschiedliche Geräte wie Satellitenkommunikations-Systeme, Mobilfunk-Basisstationen, Laserdrucker im privaten und gewerblichen Bereich, das intelligente Stromnetz, medizinische Geräte wie etwa Defibrillatoren sowie unzählige weitere Systeme. Die Forderung nach Sicherheit in Embedded-Multicore-System-on-Chips (SoC) wird deshalb immer lauter. Embedded Geräte wie Herzschrittmacher, Smartphones und Steuergeräte in Fahrzeugen verwenden mehrere Bauelemente, darunter auch eingebettete SoCs, zum Schutz grundlegender Funktionen. Secure Boot lässt sich als eine grundlegende Sicherheitsebene für eingebettete Prozessoren implementieren. Die Idee ist, dass ein System vom Moment des Einschaltens an geschützt ist. Ohne Secure Boot dagegen klafft im System eine Sicherheitslücke zwischen dem Moment des Einschaltens und dem Nutzen der Anwendung.

Eingebettete Sicherheit beginnt bei der Hardware

Eingebettete Sicherheit beginnt bei der Hardware. Durch ein Koppeln der Sicherheits-Features von Software und Hardware entsteht eine Schutzschicht, die sicherer ist, als es mit Software oder Hardware allein möglich wäre. Vom Anbieter einer Plattform zur Verfügung gestellte Tools können das Entwickeln von Sicherheits-Subsystemen rationalisieren und sicherstellen, dass die resultierende Architektur den Anforderungen der Entwickler gerecht wird. Zum Beispiel ist es mit hardwarebasierten Security-Beschleunigern möglich, die durch ein Sicherheits-Subsystem entstehenden Performance-Einbußen zu kompensieren. Fest steht, dass die Stärke einer Security-Architektur von ihrem Fundament abhängt. Dabei sind drei Aspekte dieses Fundaments von essenzieller Bedeutung, nämlich ein sicherer Boot-Prozess, hardwarebasierte Device-IDs/Schlüssel und die Kryptografie-Beschleunigung.

Die in Bild 1 gezeigte Security-Pyramide illustriert die verschiedenen Ebenen und entsprechenden Bestandteile eines umfassenden Security-Subsystems für einen eingebetteten Multicore-Prozessor als SoC. Ein sicherer Boot-Prozess schafft eine Vertrauensbasis (Root of Trust) für das eingebettete System. Selbst beim Initiieren des Boot-Vorgangs aus einem externen Flash-Speicher verifiziert ein sicherer Boot-Prozess die Integrität der Boot-Firmware mithilfe beliebig vieler Mechanismen, zu denen unter anderem eingebettete Kryptografieschlüssel gehören. Eine sichere Boot-Ebene schützt das System vor der Übernahme durch Malware, einem möglichen Klonen des im System vorhandenen geistigen Eigentums (Intellectual Property, IP), einer ungewollten Ausführung unerwünschter Applikationen sowie weiteren Sicherheitsrisiken.

Security-Pyramide: Bereits das Booten muss sicher sein

Sicheres Booten hilft auch beim Einrichten einer zusätzlichen Schutzebene. Dazu wird das IP verschlüsselt und auf sichere Weise kopiert, um die internen Speicher zu schützen. Die Fähigkeit zur Verschlüsselung bietet außerdem zusätzlichen Schutz für die Codebasis, da das Durchführen von Directed-Exploration-Attacken unterbunden wird. Die Kryptografieverarbeitung, zu der das Erzeugen, Verifizieren und Zertifizieren verschiedenster öffentlicher und privater Schlüssel gehört, kann die Rechenressourcen und den Durchsatz eines eingebetteten Systems erheblich beanspruchen. Einige SoCs sind deshalb mit hardwarebasierten Beschleunigern oder Coprozessoren ausgestattet, mit denen sich die Codier- und Decodierprozesse erheblich beschleunigen.

Es gibt außerdem softwarebasierte Beschleunigung, jedoch bietet diese Möglichkeit nicht die gleiche Sicherheit wie die hardwarebasierte Kryptografiebeschleunigung. Beispiele für gängige Kryptografiefunktionen sind AES (Advanced Encryption Standard), 3DES (Triple Data Encryption Algorithm), SHA (Secure Hash Algorithm), RSA (Rivest Shamir Adleman) und ECC (Elliptic Curve Cryptography). Während der Systementwicklung ist die Möglichkeit eines Zugriffs auf die eingebetteten Multicore-Prozessoren nötig, um die Firmware und die Software zu debuggen und etwaige Hardwareprobleme zu beheben. In den meisten Fällen wird dieser Zugang über den JTAG-Port (Joint Test Action Group) eingerichtet. Im Betrieb muss der Debug-Port entweder mit einer Absicherung versehen werden, oder er darf nur über zertifizierte Kryptografieschlüssel zugänglich sein, da er anderenfalls ein bequemes Einfallstor für Hacker sein könnte.

Die Laufzeit-Sicherheitsebene schließt mehrere spezifische Fähigkeiten ein, die alle entscheidend daran beteiligt sind, das System nach dem Bootvorgang und der Ausführung des Betriebssystems zu schützen. Ein wichtiger Aspekt der Sicherheit zur Laufzeit besteht in der Überwachung sämtlicher Facetten des Systems, um festzustellen, ob eine Attacke erfolgt ist oder versucht wurde. Sicherheit über eine vertrauenswürdige Verarbeitungsumgebung (Trusted Execution Environment, TEE) befähigt ein System, sowohl sichere als auch nicht-sichere Applikationen gleichzeitig zu hosten und innerhalb des Systems eine Partitionierung zu wahren, die das Durchsickern von Daten verhindert. Im Prinzip richtet eine TEE in einem Multicore-System eine abgesicherte Partition ein, die ausschließlich der Ausführung zertifizierter, sicherer Firmware, Software und Applikationen sowie der Speicherung zertifizierter Daten vorbehalten ist. Das Abschotten der TEE von den anderen Teilen des Multicore- oder Multiprocessing-Systems verhindert, dass verdächtiger Code oder zweifelhafte Applikationen und Daten, die in das System gelangen, schädliche Auswirkungen auf missionskritische Software, Daten oder anderes IP haben.

Externen Speicher und Kommunikation absichern

Der Systemspeicher muss Kryptografieschlüssel und Security-Daten Schutz vor unerwünschtem Zugriff bieten. Dafür eignen sich unterschiedliche Mechanismen, etwa verschlüsselte Key BLOBs (Binary Large OBjects), ein Manipulationsschutz, der nur von einem Master entriegelt werden kann, ein privater Schlüssel-Bus zwischen dem nichtflüchtigen Speicher und den Kryptografie-Engines und mehr. Beim Hinzufügen einer weiteren Applikation oder eines Subsystems ist es meist notwendig, mehr Speicher auf dem System zu implementieren. Dieser liegt außerhalb des Hauptprozessors und erfordert daher das Anbinden über einen Speicherbus. Die im externen Speicher abgelegten Daten müssen zudem vor Manipulation oder Austausch geschützt werden. Schließlich sollen dort ausschließlich vertrauenswürdige Daten oder Applikationscode liegen.

Zum Schutz des externen Speicherinhalts stehen verschiedene Methoden zur Wahl, etwa das abgesicherte Execute-in-Place direkt aus dem externen Speicher. Dabei erfolgt das Ausführen direkt, ohne die Daten zuvor in den prozessorinternen Speicher zu laden. Eine weitere Möglichkeit ist das Decrypt-on-the-Fly-Verfahren, das die Vertraulichkeit wahren und gleichzeitig das Verarbeiten auf dem Hauptprozessor ermöglichen kann. Hacker sind überaus versiert im Abfangen drahtloser und leitungsgebundener Netzwerk-Kommunikation. Dazu benutzen sie zum Teil bekannte Sicherheitslücken einiger Kommunikationsprotokolle aus.

Das ausschließliche Verwenden von hochgradig sicheren Kommunikationsprotokollen bedingt häufig etliche Verarbeitungszyklen für das Ver- und Entschlüsseln des Kommunikations-Streams sowie zum Verifizieren der Authentizität des Senders oder Empfängers. Möglicherweise müssen die Designer den Durchsatz und die Sicherheit der Kommunikation gegeneinander abwägen. Einige eingebettete Prozessoren umgehen dieses Dilemma durch das Einbinden hardwarebasierter Beschleuniger für die Kryptografie-Algorithmen, die im Zusammenhang mit den standardmäßigen Kommunikationsprotokollen verwendet werden.

Raffinierte Hacker-Organisationen bauen Chips aus Systemen und Silizium-Dies aus Chipgehäusen aus. Dann manipulieren sie die Bauelemente mithilfe von Laserstrahlen, Versorgungsspannungen außerhalb der Spezifikationen und anderen Mitteln. Ziel ist es, die Reaktion des Bausteins auf externe Ansteuerungssignale zu beobachten. Darüber können sie unter Umständen mögliche Schwachstellen ablesen, die sie anschließend für den Zugriff auf den jeweiligen Baustein verwenden können.

Gegen diese Art der Manipulation gibt es Schutzmodule, mit denen sich eingebettete Multicore-Prozessoren ausstatten lassen – etwa Versorgungsspannungs- und Temperaturwächter, Reset-Funktionen, Frequenzwächter und programmierbare Manipulationsschutz-Funktionen. Auch das Gehäuse, das ein System umschließt, lässt sich mit mechanischen Maßnahmen schützen. Das können beispielsweise Verriegelungsmechanismen, elektronische Schalter, Abreißdrähte oder ähnliches sein.

Die Grundlage der Sicherheit eines eingebetteten Multicore-Prozessors beginnt bei der Hardware. Unsichere Hardware lässt sich auch mit der aufwändigsten Software nicht wettmachen. Ist die Hardware dagegen bereits mit Sicherheits-Features ausgestattet, sollte beim Aufbau eines Security-Subsystems der Blick zunächst auf die Software gerichtet werden, die nach dem Einschalten als erste ausgeführt wird, also auf den Boot-Code. Wenn Entwickler nicht in der Lage sind, den Boot-Prozess zu authentifizieren, kann dies auch keine andere im System laufende Software. Das Absichern des Boot-Prozesses ist somit der Dreh- und Angelpunkt, von dem die gesamte übrige Security im System abhängt. Ein abgesicherter Boot-Vorgang schafft die Vertrauensbasis, die das Ziel eines jeden Security-Subsystems ist.

Wo soll Embedded Security ansetzen?

In der Regel geht es bei einem abgesicherten Boot-Prozess um das Programmieren eines öffentlichen Kryptografieschlüssels in einen nichtflüchtigen, einmal programmierbaren Speicher, der sich irgendwo im System befindet. Dieser öffentliche Schlüssel muss zu den zum Boot-Code gehörenden privaten oder öffentlichen Schlüsseln passen, damit die Gültigkeit des verschlüsselten Boot-Codes verifiziert werden kann, bevor dieser ausgeführt wird. Die Boot-Firmware kann entweder in das RAM des Prozessors geladen werden. Sicherer ist es, die Firmware direkt aus dem externen Speicher heraus zu verarbeiten.

Einige Firmware-Images bestehen aus mehreren Komponenten oder Modulen. Hier verbessert sich die Boot-Sicherheit, wenn jedes Modul vor dem Entschlüsseln und Ausführen einzeln authentifiziert werden muss. Beispiele für eingebettete Prozessoren, die einen solchen abgesicherten Boot-Prozess bieten, sind die Prozessorfamilien Sitara AM43x, AM335x und AM57x von Texas Instruments.

* Amrit Mundra ist Security Architect und Systems Engineer von Texas Instruments in Freising

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45513668 / Safety & Security)