Wissen
Wie Sie Bitstream-Diebstahl, Manipulationen und Seitenkanalangriffe wirksam abwehren
Field Programmable Gate Arrays (FPGAs) werden zunehmend zum Rückgrat in den Branchen Raumfahrt, Luftfahrt, Militär und missionskritischen Anwendungen. Neue regulatorische Rahmenbedingungen und Beschaffungsrichtlinien verlangen streng nach verifizierter Sicherheit auf Hardware-Ebene. Dieser Beitrag beschreibt, wie FPGAs arbeiten und gibt Einblicke, wie FPGA-Systeme angegriffen werden können.
Kontakt aufnehmen
Field Programmable Gate Arrays (FPGA) sind programmierbare Schaltungen, die sich wie vollständig maßgeschneiderte Hardware verhalten. Dadurch vereinen sie die Vorteile der Hardware- und der Softwarewelt: Sie sind wie eine Software-Implementierung programmierbar und anpassbar, was volle Flexibilität bietet. Sie ermöglichen aber gleichzeitig echte parallele und kurze Ausführungszeiten wie Hardware-Implementierungen, die die Leistung eines anwendungsspezifischen integrierten Schaltkreises (ASIC) erreichen.
Beim Starten wird die als Bitstream bezeichnete Konfigurationsdatei aus einem internen oder externen nichtflüchtigen Speicher in das FPGA geladen. Der Bitstream wird aus dem Code der Hardwarebeschreibungssprache (HDL) generiert, der zur Implementierung des Hardwareverhaltens verwendet wird. Im Allgemeinen gibt es keinen Unterschied beim Schreiben von HDL-Code, ob dieser in einen Bitstream für ein FPGA oder in ein Hardware-Layout für einen ASIC übersetzt wird. Schließlich wird der Bitstream geladen, um verschiedene Teile des FPGAs zu konfigurieren. Abhängig von den implementierten Funktionen und dem Prozess der Bitstreamgenerierung leiten spezielle Routing-Matrizen Signale und Daten entsprechend in der eigentlichen Hardwareebene selbst weiter, um das beabsichtigte Hardwareverhalten nachzubilden. Typischerweise besteht die Hardwareebene eines FPGAs aus den folgenden konfigurierbaren Teilen:
Die LUT dient zur Realisierung von Logikgattern, z. B. NOT oder AND, die zuvor mit HDL-Code implementiert wurden. Die Logikgatter werden in eine Tabelle mit festen Ein- und Ausgängen übersetzt. Eine typische 4-Bit-LUT besteht aus 16 SRAM-Bits (16 Registern) und kann zur Realisierung einer beliebigen 4-Bit-Funktion verwendet werden. Abhängig von den vier Eingangsbits wählt ein Multiplexer eine bestimmte SRAM-Zelle aus, deren Inhalt an den Ausgang weitergeleitet und dabei so modifiziert wird, dass er die korrekten Berechnungsergebnisse darstellt. Müssen Funktionen mit mehr als vier Eingangsbits implementiert werden, wird entweder eine noch größere LUT mit mehr Ein- und Ausgangsbits verwendet oder es werden mehrere kleinere LUTs mithilfe von Routing-Matrizen kombiniert. Es ist zu beachten, dass LUTs kombinatorische Logik sind und nicht taktsynchron arbeiten, d. h., sie arbeiten asynchron, wodurch die Ausgangssignale sofort verfügbar sind.

Prüfkompetenz für Chips, Firmware und Embedded-Systeme
Hardware-Sicherheit beginnt dort, wo Angriffe physisch werden: im Chip, in der Firmware und an der Schnittstelle zum Gerät.
In unserem State-of the-Art Hardware-Labor prüfen unsere Expert:innen Produkte mit realistischen Angriffsmethode.
Zeitkritische oder komplexe Operationen erfordern unter Umständen die Implementierung mehrerer LUTs, was wiederum zu einem langen kritischen Signalpfad führt. Der kritische Signalpfad beschreibt die längste Zeit, die ein bestimmtes Signal unter allen Signalen benötigt, um die gesamte asynchrone Logik zwischen zwei synchron getakteten Zellen zu durchlaufen. Ein Beispiel hierfür ist der Pfad eines Signals von einem getakteten Register über verschiedene kombinatorische Funktionsblöcke zu einem anderen getakteten Register. Der kritische Pfad ist von großer Bedeutung, da er die maximale Taktfrequenz bestimmt, mit der das gesamte Hardware-Design betrieben werden kann. Um zu verhindern, dass eine Implementierung mit komplexen Operationen mit einer niedrigeren Taktfrequenz ausgeführt wird, kann Block-RAM anstelle der Kombination mehrerer LUTs verwendet werden, um umfangreiche vorberechnete Tabellen zu laden und einen kurzen kritischen Pfad beizubehalten. Der Hauptunterschied zwischen einer LUT und dem Block-RAM besteht in diesem Fall darin, dass das Block-RAM-Modul getaktet ist, d. h. synchron läuft. Das bedeutet, dass das Ergebnis nicht sofort, sondern erst nach der nächsten Taktflanke des Block-RAMs bereitsteht. Zu beachten ist, dass das Block-RAM über einen eigenen Takt verfügt und somit den kritischen Pfad des Designs nicht direkt beeinflusst. Ein zweiter Anwendungsfall für das Block-RAM ist die vorübergehende Speicherung von Daten. Dies kann beispielsweise zum Aufbau eines CPU-RAMs oder eines Datenpuffers genutzt werden.
Ein DSP-Slice kann für komplexe mathematische Operationen verwendet werden und ist bereits im Silizium des FPGAs integriert. Ein häufiger Anwendungsfall für ein DSP-Slice ist ein Multiplizierer für große Zahlen. Die Verwendung von DSP-Slices für den Multiplizierer anstelle von LUTs spart einerseits wahrscheinlich Hunderte von LUTs und führt andererseits zu einem wesentlich schnelleren Design.
Eine PLL wird verwendet, um das interne Taktsignal für das FPGA aufzubereiten. Sie verfügt über einen Eingang mit fester Frequenz und einen Ausgang mit variabler Frequenz, der auf der Grundlage des kritischen Pfads des Bitstreams optimiert wird.
Ein I/O-Block ist erforderlich, um eine Kommunikationsschnittstelle zu anderen integrierten Schaltungen und möglicherweise schließlich zu einem Computer herzustellen. Wenn beispielsweise die Routing-Matrix ein Kommunikationssignal mit dem I/O-Block verbindet, ist dieses an einem externen FPGA-Pin sichtbar. Auf diese Weise lassen sich SPI-, I2C- oder UART-Schnittstellen implementieren.
Die Routing-Matrix lässt sich als eine große Anzahl von Multiplexern betrachten. Innerhalb eines einzelnen Multiplexers entscheidet ein Steuersignal, welches der verschiedenen Eingangssignale mit dem Ausgang verbunden wird. Somit ist die Routing-Matrix in der Lage, die Ein- und Ausgänge verschiedener LUTs, I/O-Blöcke, Block-RAMs, DSPs und PLLs beliebig miteinander zu verbinden.
Erfahren Sie, wie Sie IoT- und IIoT-Produkte mit wirksamer Embedded Security gegen aktuelle Cyberbedrohungen absichern und auf den Cyber Resilience Act vorbereiten.
Freuen Sie sich auf Expertenwissen, Praxisbeispiele und direkten Austausch mit Branchenvertreter.
Der Bitstream ist das Herzstück der Implementierung, enthält das gesamte geistige Eigentum und wird oft als „Soft-IP“ bezeichnet. Falls der Bitstream nicht verschlüsselt ist, die Schlüssel extrahiert werden oder passive Angriffe, z. B. Seitenkanalangriffe, zum Extrahieren des Bitstreams genutzt werden, könnte die Soft-IP einem Angreifer oder Dritten zugänglich gemacht werden. Ein FPGA muss ausreichende Mechanismen bereitstellen, um diesen Angriffen entgegenzuwirken, wie z. B. eine seitenkanal- und fehlerresistente Bitstream-Verschlüsselung unter Verwendung individueller, hardwaregebundener Schlüssel und einer sicheren Datenübertragung im Silizium.
Der Bitstream ist das Herzstück der Implementierung und enthält die gesamte Soft-IP. Falls der Bitstream manipuliert werden kann, können logische Schwachstellen entstehen oder Implementierungsfehler den Weg für physikalische Angriffe ebnen. Um solche Angriffe zu vermeiden, muss das FPGA ausreichende Mechanismen bereitstellen, wie z. B. starke Bitstream-Authentifizierungsmechanismen unter Verwendung hardwaregebundener und individueller Schlüssel, die gegen Seitenkanal- und Fehlerangriffe resistent sind.
Seitenkanalangriffe nutzen passive Informationen wie Ausführungsdauer, Stromverbrauch oder elektromagnetische Abstrahlung. Diese Informationen können dazu verwendet werden, sensible Daten zu extrahieren, z. B. Schlüssel während eines Verschlüsselungsvorgangs, auch wenn der implementierte Verschlüsselungsmechanismus standardisiert und kryptoanalytisch sicher ist. Für FPGAs hat diese Angriffsfamilie eine zweifache Auswirkung. Erstens kann ein FPGA kryptografische Operationen auf dem Silizium implementieren, insbesondere zum Schutz des Bitstreams oder als Dienst für die Soft-IP. Diese müssen ausreichend gehärtet sein, um eine widerstandsfähige Vertrauensbasis (Root of Trust) aufzubauen. Zweitens beeinflusst die Soft-IP bzw. der auf das FPGA geladene Bitstream direkt den Daten- und Signalfluss in der Hardware. Implementierungsfehler oder ungeschützte Implementierungen führen daher zu einem massiven passiven Informationsleck, das letztendlich ausgenutzt werden könnte.
Bei einem gemeinsam genutzten FPGA-System können mehrere Anbieter separate Teile des FPGAs programmieren. Es ist möglich, HDL-Code so zu schreiben, dass ein Sensor implementiert wird, der Seitenkanalinformationen direkt auf dem FPGA erfasst. In einem solchen Szenario könnte eine nicht vertrauenswürdige Partei Informationen extrahieren, ohne physischen Zugriff auf das FPGA zu haben.
Fehlerinjektionsangriffe nutzen physikalische Eigenschaften des ICs aus, um den erwarteten Datenfluss zu manipulieren. Fehlerquellen können hochentwickelt sein, wie beispielsweise die Laser-Fehlerinjektion, oder einfachere Mechanismen wie die elektromagnetische und die Spannungs-Fehlerinjektion. Fehlerinjektionsangriffe können genutzt werden, um kritische Vorgänge wie Verifizierungs- und Authentifizierungsmechanismen zu umgehen oder um eine differentielle Fehleranalyse zu ermöglichen, falls kryptografische Operationen ins Visier genommen werden. Für FPGAs hat diese Angriffsfamilie eine zweifache Auswirkung. Erstens kann ein FPGA kryptografische Operationen auf dem Silizium implementieren, insbesondere zum Schutz des Bitstreams. Diese müssen ausreichend gehärtet sein, um eine widerstandsfähige Root of Trust aufzubauen. Zweitens beeinflusst der auf das FPGA geladene Bitstream direkt den Daten- und Signalfluss in der Hardware. Daher können Implementierungsfehler oder ungeschützte Implementierungen leicht ausgenutzt werden. Fehlerinjektionsangriffe können zudem dauerhafte Fehler in der aktuellen Konfiguration des FPGAs verursachen, d. h. zu Änderungen an der Soft-IP selbst führen.
Bei einem gemeinsam genutzten FPGA-System können mehrere Anbieter separate Teile des FPGAs programmieren. Es ist möglich, HDL-Code so zu schreiben, dass eine Fehlerquelle implementiert wird, die den Daten- und Signalfluss manipulieren kann. In einem solchen Szenario könnte eine nicht vertrauenswürdige Partei den korrekten Betrieb stören, ohne physischen Zugriff auf das FPGA zu haben.
Zum Schutz der Soft-IP müssen Gegenmaßnahmen gegen passive Seitenkanalanalysen implementiert werden. Es können zwei Arten von Seitenkanal-Gegenmaßnahmen implementiert und kombiniert werden: Hiding und Maskieren. Physikalische Tests der Soft-IP auf dem FPGA sind unvermeidlich, um die Wirksamkeit der implementierten Seitenkanal-Gegenmaßnahmen zu überprüfen.
Sensible Informationen können durch Hinzufügen von Rauschen in den Seitenkanalspuren verborgen werden. Dies lässt sich erreichen, indem ein ungenutzter Teil des FPGAs parallel betrieben wird; so könnte das FPGA beispielsweise während der Entschlüsselung des Bitstreams Zufallsdaten hashen. Ein anderer Ansatz könnte darin bestehen, die Reihenfolge sich wiederholender Operationen an Teilen der sensiblen Informationen zu mischen oder Scheinaufrufe derselben Operation zu implementieren, um die tatsächliche Ausführung zu verbergen.
Die Signatur sensibler Daten kann aus Seitenkanalspuren entfernt werden, indem diese nicht direkt verarbeitet werden. Stattdessen werden die Informationen durch Hinzufügen von Zufallsdaten maskiert. Infolgedessen sind Informationen über beide Anteile (den maskierten Wert und die Maske) erforderlich, um Informationen über sensible Daten zu erhalten. Je nach der Funktion, bei der sensible Informationen maskiert werden sollen, kann eine boolesche oder arithmetische Aufteilung erforderlich sein, und es können sichere Umwandlungen zwischen beiden Arten notwendig sein.
Der Schutz der Soft-IP erfordert die Implementierung von Gegenmaßnahmen gegen aktive Fehlerinjektionsangriffe. Gegenmaßnahmen gegen Fehlerinjektionen erfordern in der Regel eine Form der Redundanz. Diese kann entweder zeitlich oder flächenmäßig umgesetzt werden. Eine flächenmäßige Redundanz könnte durch die Verwendung einer doppelten Instanz des zu schützenden Moduls erreicht werden, wobei die Ausgänge beider Instanzen auf Übereinstimmung verglichen werden. Allerdings könnte ein höherer Aufwand erforderlich sein, da genau derselbe Fehler in beide Instanzen injiziert werden könnte. Insbesondere bei FPGAs müssen Gegenmaßnahmen gegen permanente Fehler implementiert werden, um die Integrität der Soft-IP zu gewährleisten. Dies könnte durch die Ausführung einer anfänglichen Testroutine auf dem Modul erreicht werden, das als Nächstes verwendet werden soll, z. B. durch die Durchführung eines Tests mit bekannter Antwort (Known Answer Test). Physikalische Tests der Soft-IP auf dem FPGA sind unvermeidlich, um die Wirksamkeit der implementierten Gegenmaßnahmen zur Fehlerinjektion zu überprüfen.
Um die Soft-IP der Kunden vor Diebstahl und Manipulation zu schützen, muss ein FPGA eine vertrauenswürdige Ausführungsumgebung für den HDL-Code bereitstellen. Dies beginnt mit einer hardwaregestützten Vertrauensbasis („Root of Trust“), die unfälschbare, nicht extrahierbare und kundenspezifische Schlüssel enthält. Ein solcher Vertrauensanker stellt sicher, dass der Bitstream nur von autorisierten FPGAs entschlüsselt und authentifiziert werden kann. Falls der Bitstream aufgrund einer Sicherheitsverletzung aktualisiert werden muss, muss sichergestellt sein, dass ältere Bitstreams vom FPGA nicht mehr ausgeführt werden; daher muss das FPGA einen ausreichenden Rollback-Schutz bieten. Selbstverständlich muss der Aktualisierungsmechanismus selbst sicher konzipiert sein und mit den oben genannten Sicherheitsfunktionen im Einklang stehen.
Als unabhängiges Testlabor unterstützen wir FPGA-Entwickler bei der Analyse und dem Test ihres FPGA-Designs, wobei der Schwerpunkt auf der Absicherung der Soft-IP der Kunden liegt. Dies kann im Rahmen von Workshops, unabhängigen Sicherheitsanalysen oder durch beglaubigte Sicherheitsprüfungen erfolgen, die die Beantragung eines Zertifikats ermöglichen. Zertifizierungen wie EUCC können als Nachweis für Beschaffungsanforderungen oder regulatorische Standards wie das Gesetz zur Cyber-Resilienz herangezogen werden.
Als unabhängiges Testlabor unterstützen wir Soft-IP-Entwickler bei der Analyse und dem Testen ihrer Designs, wobei der Schwerpunkt auf der Absicherung des HDL-Codes gegen logische sowie physische Angriffe liegt. Dies kann im Rahmen von Workshops, unabhängigen Sicherheitsanalysen oder beglaubigten Sicherheitsprüfungen erfolgen, die die Beantragung eines Zertifikats ermöglichen. Zertifizierungen wie EUCC können als Nachweis für Beschaffungsanforderungen oder gesetzliche Standards wie das Gesetz zur Cyber-Resilienz herangezogen werden.