Bundesamt für Sicherheit in der Informationstechnik

M 4.482 Hardware-Realisierung von Funktionen eingebetteter Systeme

Verantwortlich für Initiierung: Behörden-/Unternehmensleitung, IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Planer, Entwickler, Beschaffer

Wird ein eingebettetes System entworfen, wird festgelegt, welche Funktionen auf einem programmierbaren Prozessor ablaufen sollen und welche unmittelbar in Hardware implementiert werden sollen. Die potenzielle Bandbreite bei der Hardware-Software-Partitionierung ist groß. Am einen Ende der Skala stehen universell programmierbare Mehrzweck-Prozessoren (General Purpose Processor, GPP), wie sie auch im Bereich der Arbeitsplatzrechner eingesetzt werden. Am anderen stehen hochspezialisierte digitale Hardware-Systeme welche nur ein Programm ausführen (Single Purpose Processor, SP P). Einen Mittelweg zwischen voll programmierbaren Prozessoren und reinen Hardware-Implementierungen stellen programmierbare Prozessorkerne mit anwendungsspezifischem Befehlssatz (Application Specific Instruction set Processor, ASIP) dar. Es sind Prozessoren, deren Befehlssatz für bestimmte Anwendungsarten, z. B. digitale Signalverarbeitung oder Steuerungsfunktionen optimiert wurde.

Auch bei den Hardware-Implementierungen gibt es verschiedene Abstufungen. Bei den Optionen um integrierte Schaltkreise zu implementieren, reicht die Bandbreite von Chips, die individuell für bestimmte Kunden entworfen und hergestellt werden ("Application Specific Integrated Circuit", ASIC ) bis zu Chips, die zwar für spezielle Aufgaben entwickelt werden, aber so allgemein gehalten sind, dass sie in einer Vielzahl unterschiedlicher Produkte eingesetzt werden können ("Application Specific Standard Product", ASSP). Dazu kommen einige Mischformen wie z. B. Chips die auf Kundenwunsch hin vom Hersteller angepasst werden ("Customer Specific Standard Product", CSSP), Chips mit einigen vorimplementierten Elementen (englisch: "structured ASIC") und Chips mit einem vordefinierten Bereich und einem für Kundenkonfigurationen freien Bereich (englisch: "platform ASIC").

Weit verbreitet, insbesondere zur Prototypenentwicklung sind programmierbare ASIC s. Die wichtigsten Vertreter dieser Technologie sind Field Programmable Gate Array (FPGA) und Complex Programmable Logic Device (CPLD). Beides sind integrierte Schaltkreise in die eine logische Schaltung programmiert werden kann, wobei damit gemeint ist, dass die Funktionsstruktur des Schaltkreises definiert wird und nicht, dass zeitliche Abläufe festgelegt werden. CPLDs weisen im Vergleich zu FPGAs eine wesentlich einfachere Struktur auf. Sie besitzen kein feinmaschiges Array von Logikblöcken und Flip-Flops, sondern nur eine konfigurierbare Schaltmatrix, die verschiedene Eingangssignale zu verschiedenen Ausgangssignalen verbinden kann. Ein CPLD ist sofort nach dem Einschalten betriebsbereit, ebenso wie ein nur einmal programmierbares FPGA. Rekonfigurierbare FPGA mit static random-access memory ( SRAM )-basierenden Zellen benötigen erst einen Ladezyklus für die Konfiguration. FPGA Bausteine sind größer als CPLD Bausteine und haben einen höheren Stromverbrauch.

Programmierbare Logik-Bausteine können außerhalb des Zielsystems oder, falls die entsprechenden Schnittstellen vorhanden sind, auch innerhalb des Zielsystems programmiert werden. Sie werden oft verwendet, um einen Prototypen zu entwickeln. Im produktiven System werden sie meist durch ASIC s ersetzt. Eine Weiterentwicklung stellen rekonfigurierbare ASIC s dar, welche sich während der Laufzeit umprogrammieren und so an aktuelle Erfordernisse anpassen können.

Die unterschiedlichen Sicherheitseigenschaften der Realisierungen in Software oder Hardware sind beim Entwurf eines eingebetteten Systems zu berücksichtigen und mit den jeweiligen Sicherheitsanforderungen in Einklang zu bringen. Festverdrahtete Algorithmen, z. B. als ASIC oder FPGA, stellen einerseits einer Manipulation der Funktionalität höhere Hürden entgegen als typische softwarebasierte Implementationen, andererseits sind sie weniger flexibel und erlauben im allgemeinen keine nachträgliche Integration zusätzlicher Sicherheitsmechanismen. Werden die Sicherheitsmechanismen allerdings von Anfang an beim Entwickeln der Hardware einbezogen, lassen sie sich effizient realisieren. Auch parallele Prozesse können sehr gut in Hardware realisiert werden, z. B. kann die virtuelle Maschine für Java nicht als Software, sondern durch einen Java-Prozessor als Hardware realisiert werden.

Wird entschieden die Funktionen in Hardware zu realisieren, ist zu beachten, dass ASIC s und FPGAs unterschiedliche Stärken und Schwächen hinsichtlich der IT -Sicherheit aufweisen. Bei ASIC s gibt es Risiken im Entwurf und der Fertigung. Um zu verhindern, dass ein Angreifer nicht gewollte Funktionen oder Hintertüren einbaut oder vertrauliche Informationen ausspäht, sollten die Chips entsprechend getestet werden und die Entwicklungs- und Herstellungskette sollte vertraulich sein (siehe M 2.563 Auswahl einer vertrauenswürdigen Lieferanten- und Logistikkette sowie eines qualifizierten Herstellers für eingebettete Systeme ). Bei FPGAs wird die Schaltung zunächst in einer Hardwarebeschreibungssprache formuliert, wobei auch fremdes geistiges Eigentum einfließen kann. Mittels spezieller Entwurfswerkzeuge wird die Schaltung synthetisiert und implementiert. Anschließend werden die Konfigurationsdaten auf das FPGA übertragen. Es ist darauf zu achten, dass eventuell verwendetes fremdes geistiges Eigentum vertrauenswürdig ist, die Entwurfstools nicht manipuliert sind und die Daten in einer gesicherten Umgebung auf das FPGA übertragen werden. Falls erforderlich, ist die Übertragung zu verschlüsseln.

Bei den Logik-Bausteinen gibt es auch Unterschiede in der elektromagnetischen Verträglichkeit. FPGAs sind empfindlicher gegenüber Teilchenstrahlung und elektromagnetischen Wellen als ASIC s.

Wird ein eingebettetes System nicht selbst entwickelt, sondern als ganzes oder in Komponenten beschafft, gelten die genannten Empfehlungen entsprechend.

Prüffragen:

  • Wurden bei der Designentscheidung zur Hardware- und Software-Realisierung Sicherheitsaspekte berücksichtigt?

  • Wurden bei der der Designentscheidung zur Implementierung mit einer bestimmten Hardware-Technologie Sicherheitsaspekte berücksichtigt?

Stand: 15. EL Stand 2016