FPGA-Einsatz Warum die IT-Security FPGA-Knowhow braucht

Autor / Redakteur: Dr. Andreas Fiessler * / Johann Wiesböck

IT-Security-Spezialist genua hat ein hybrides System entwickelt, in dem sowohl FPGAs als auch normale CPUs jeweils die Aufgaben übernehmen, für die sie am besten geeignet sind.

Firmen zum Thema

Layout eines einfachen FPGAs: Gut erkennbar ist die regelmäßige Anordnung der Grundelemente.
Layout eines einfachen FPGAs: Gut erkennbar ist die regelmäßige Anordnung der Grundelemente.
(Bild: Creative Commons Attribution 3.0 Unported License, https://zeptobars.com/en/read/Altera-Cyclone-EP1C3)

FPGAs galten lange Zeit eher als spezielle Bauelemente, die zwar in einigen Schwerpunktdomänen wie der Signalverarbeitung nicht wegzudenken sind, aber darüber hinaus keine größere Verbreitung finden. Dies hat sich in den letzten Jahren zum einen durch die massiv gestiegene Leistungsfähigkeit, aber auch durch die Leistungsanforderungen bei unterschiedlichsten Problemstellungen verändert.

In vielen Bereichen, in denen bislang klassische Rechnersysteme dominieren, lassen sich diese Anforderungen nicht mehr wie lange gewohnt durch die nächste Entwicklungsiteration von neuer Hardware – also schnellere CPUs und mehr Speicher – bewältigen. Es lohnt sich also, auch für bisher nicht mit FPGAs assoziierte Anwendungen einen Blick auf ihre Stärken zu werfen.

Ein FPGA ist zunächst nichts weiter als eine generische Ansammlung von Logikschaltungen, die i.d.R. als Look-up-Tables (LUT) ausgeführt sind. Über ein konfigurierbares Signal-, Takt- und Resetnetzwerk bestimmt der Entwickler durch die Verschaltung erst die eigentliche Funktion des

Bausteins. Hinzu kommen spezielle Bereiche, in denen feste (sog. Hard-IP-Cores) Bausteine wie Transceiver, RAM-Blöcke oder I/O-Ports liegen. Teilweise werden auch komplette Mikroprozessoren fest mit integriert oder FPGAs als Erweiterung für normale CPUs ergänzt.

Entscheidend für die schnelle Verarbeitung von Daten ist die hohe Parallelisierbarkeit sowie die Vermeidung von Overhead. Oft kamen und kommen für High-End-Anforderungen deshalb anwendungsspezifische Schaltkreise (ASICs) zum Einsatz. Durch ihren Aufbau erreichen auch FPGAs für geeignete Aufgaben eine deutlich bessere Performance und geringere Latenz als klassische CPUs.

Allerdings lässt sich ein FPGA-Design im Gegensatz zu einem ASIC nachträglich anpassen, etwa um neue Features nachzurüsten oder Bugs zu beheben. Nicht zuletzt stellt der aufwendige ASIC-Designprozess für viele Firmen auch eine finanzielle Hürde dar, bei FPGAs entfällt ein Großteil dieser Einmalkosten.

Herausforderungen in der IT-Security

Als Entwickler mit Schwerpunkt IT-Security bemerkt man häufig, z.B. im Industrieumfeld, zunächst sehr konträre Ziele. Gerade bei Industrieanlagen stehen Verfügbarkeit und Sicherheit im Sinne von Safety im Vordergrund. Typische Steuerungssysteme sind daher in komplett abgeschotteten Umgebungen zuverlässig. Sie erweisen sich erfahrungsgemäß selbst bei trivialsten, selbst willkürlichen Angriffen als extrem anfällig.

Unter dem Kapitel „Security“ findet man bei FPGA- und Mikroprozessorherstellern i.d.R. Funktionen, die primär dem Schutz geistigen Eigentums dienen sollen. In der „echten“ IT-Security ist der Applikationscode dagegen meist nicht besonders schützenswert oder ohnehin Open Source. Sensibel sind hingegen die verarbeiteten Daten und Geheimnisse – bis zu dem Punkt, an dem sich ein Gerät selbst zerstören muss, bevor ein Angreifer diese Daten auslesen kann.

Dies bedingt ganz andere Prioritäten und eine andere Denkweise bei der Entwicklung. So muss bei der Implementierung eines kryptographischen Algorithmus z.B. darauf geachtet werden, dass dieser nicht über Timing- oder Power-Side-Channels geheimes Material offenbart. Das erfordert die bewusste Umgehung von Optimierungen und die genaue Kenntnis der Funktion der Compiler und Toolchains. Überall dort, wo in der einfachen Entwicklung gerne Bibliothekscode herangezogen wird, ist im Security-Kontext zunächst die Vertrauensfrage zu stellen.

Beispiele aus einer Supply-Chain für IT-Security-Hardware: Jede Station ist potenziell gefährdet. Der IT-Security-Hersteller selbst hat im besten Fall nur einen Bruchteil unter eigener Kontrolle.
Beispiele aus einer Supply-Chain für IT-Security-Hardware: Jede Station ist potenziell gefährdet. Der IT-Security-Hersteller selbst hat im besten Fall nur einen Bruchteil unter eigener Kontrolle.
(Bild: genua)

Im Zweifel müssen Funktionen selbst nachimplementiert werden. Die Angriffsvektoren in der Entwicklung können dabei überall lauern: IP-Vendors, offene Bibliotheken, Compiler und Toolchains bis hin zur Chipfertigung.

Der aktuelle Angriff auf den IT-Security-Spezialisten SolarWinds zeigt eindrucksvoll, dass solche Supply-Chain-Angriffe keine theoretischen Konstrukte sind. Die Produkte dieses Herstellers sind dabei an neuralgischen Punkten mit Zugriff auf viele sensible Daten weit verbreitet.

FPGAs für Netzwerke und IT-Security einsetzten

Die Hauptmotivation, FPGAs für Security-bezogene Aufgaben in Netzwerken zu verwenden ist die Performance. Viele Aufgaben bei der Verarbeitung von Netzwerkpaketen, bis hin zu kryptographischen Funktionen lassen sich hervorragend parallelisieren und in Hardwareschaltungen abbilden. Das ermöglicht Datenraten und Latenzen, die weit besser sind als die von vergleichbaren, klassischen Rechnersystemen. Diese werden durch ihren inhärenten Overhead bei der Datenverarbeitung gebremst.

In vergleichsweise einfachen, schnellen Netzwerkgeräten wie Routern oder Switches finden sich daher schon lange nur noch spezialisierte ASICs, welche die hohen Anforderungen problemlos bewältigen können. Bei Systemen mit mehr Funktionen und mehr Komplexität wie etwa Firewalls oder VPN-Gateways steigt allerdings auch die Wahrscheinlichkeit, dass später Funktionen angepasst werden müssen und auf kritische Entdeckungen reagiert werden muss. Dies führt zu einer Domäne, in der FPGAs ihre Stärken ausspielen können.

Hybride Lösung: Verteilung der Aufgaben auf ein System aus klassischer Hardware mit FPGA-Erweiterung.
Hybride Lösung: Verteilung der Aufgaben auf ein System aus klassischer Hardware mit FPGA-Erweiterung.
(Bild: genua)

Der Schlüssel zu einem performanten Gesamtsystem liegt in der Konstruktion eines effizienten, hybriden Systems, in dem sowohl FPGAs als auch normale CPUs jeweils die Aufgaben übernehmen, für die sie am besten geeignet sind. Aber auch der tiefere Eingriff in den Schaltungsentwurf ist für die IT-Security ein entscheidender Vorteil: Viele Rechnersysteme enthalten verstärkt hardware-beschleunigte Komponenten. Ein Beispiel ist der AES-NI-Befehlssatz in modernen CPUs, der eine performante Implementierung des AES-Kryptoalgorithmus darstellt.

Eine Applikation profitiert von der hohen Geschwindigkeit, jedoch ist nicht prüfbar, ob dieser Befehlssatz nicht möglicherweise eine Hintertür enthält. Ein z.B. in den USA ansässiger IT-Hersteller kann sogar legal verpflichtet werden, auf Anweisung von Geheimdiensten Hintertüren einzubauen und zugleich Stillschweigen darüber zu bewahren.

Ein FPGA ermöglicht es bis zu einem gewissen Grad, durch die eigene Implementierung von Hardware-Schaltungen eine Kontrollmöglichkeit zu behalten und trotzdem von der Performance einer spezialisierten Hardware zu profitieren.

Darum werden sich FPGAs weiter durchsetzen

Zweifelsohne werden die Anforderungen an Performance und Sicherheit in Netzwerken in Zukunft nicht abnehmen. Dies erfordert zwangsläufig den verstärkten Einsatz spezialisierter Hardware, um diese Anforderungen zu bedienen. In besonders sensiblen Bereichen spielt die Supply-Chain-Problematik dabei eine gewichtige Rolle – vor allem wenn immer mehr Kernfunktionalität in nicht prüfbare Hardwareelemente ausgelagert wird.

Eine vollständige Eigenentwicklung von ASICs ist nur für wenige Unternehmen finanzierbar. Diese Bereiche werden zukünftig verstärkt auf FPGA-Unterstützung zurückgreifen. Aber auch die zunehmende Verfügbarkeit von FPGA-Ressourcen in Standard-CPUs oder in Cloud-Appliances eröffnet Möglichkeiten, diese für Sicherheitsfunktionen zu verwenden.

Eine große Hürde beim Einsatz von FPGAs stellt der nach wie vor hohe Entwicklungsaufwand im Vergleich zu Softwareentwicklung dar. Effiziente, schnelle Hardwareschaltungen zu entwerfen erfordert eine grundlegend andere Denkweise bei Entwicklern. Darüber hinaus sind die Simulations- und Integrationsprozesse zeitraubend. Es wird seit einiger Zeit versucht, diese Hürden mittels abstrakteren Sprachkonzepten oder High-Level-Synthese, welche das Übersetzen von z.B. C-Code ermöglichen soll, zu verkleinern und somit die Möglichkeiten von FPGAs einem weiteren Anwenderkreis zu öffnen.

Bislang funktionieren diese Ansätze allerdings nur für kleinere, spezielle Problemstellungen innerhalb eines Projekts akzeptabel. Für ein performantes Gesamtsystem sind tiefgreifende Spezialkenntnisse unabdingbar und keineswegs so exotisch wie mittlerweile Assemblercode in der Softwareentwicklung. Es bleibt spannend, auf welche Arten wir zukünftig mit FPGAs arbeiten werden. Die Technologie selbst wird hingegen kaum mehr wegzudenken sein.

* Dr.-Ing. Andreas Fiessler, Research Engineer beim Münchner Spezialisten für IT Security genua: „Neueste Technologien und unkonventionelle Lösungen gehören in unserer Entwicklung zum Alltag.“

Artikelfiles und Artikellinks

(ID:47470716)