Anzeige
Anzeige
Anzeige
© janaka dharmasena dreamstime.com_technical Elektronikproduktion | 08 November 2018

FPGAs in Anwendungen mit hoher IT-Sicherheit

FPGAs (Field Programmable Gate Arrays) finden vermehrt Anwendung in nahezu allen Bereichen, in denen elektronische Ger├Ąte und Informationsverarbeitungssysteme zum Einsatz kommen. Aufgrund ihrer immer weiter ansteigenden Leistungsf├Ąhigkeit und Geschwindigkeit werden sie immer h├Ąufiger auch zur Beschleunigung von Berechnungen in Gro├črechenzentren verwendet (z. B. Amazon Web Services).
Von der einfachen Verkn├╝pfung elektrischer Signale bis hin zur Realisierung komplexer logischer Funktionen, wie z.B. hochsicherer Datenverschl├╝sselung, ist ein FPGA in der Lage, Aufgaben mit sehr hoher Geschwindigkeit abzuarbeiten. Durch die Vereinigung diverser digitaler Funktionen auf nur einem FPGA-Chip, die bisher in separaten Schaltungsteilen aufgebaut waren, wird die Leistungsf├Ąhigkeit einer Schaltung drastisch erh├Âht und der Platzbedarf minimiert. Auch in sicherheitsrelevanten Anwendungen ist der Einsatz von FPGAs mehr und mehr im Kommen.

Nachfolgend werden die Bedrohungen vorgestellt denen elektronische Schaltungen insbesondere solche mit FPGAs ausgesetzt sind und welche Gegenma├čnahmen dazu vorhanden sind. Es wird ein Konzept vorgestellt mit dem die IT-Sicherheit von FPGAs durch isolierte Zonen weiter erh├Âht werden kann, wenn partielle Module erst bei Bedarf im Betrieb in isolierte Zonen eines FPGAs geladen werden.

Die dargestellten Ergebnisse und Informationen wurden in Forschungsprojekten der Fa. HTV GmbH f├╝r eine deutsche Bundesbeh├Ârde erarbeitet (vgl. [001], [002]).

Einleitung

Wie verdeutlicht gibt es auf elektronische Schaltungen insbesondere solchen mit FPGAs eine Vielzahl von Angriffsm├Âglichkeiten, die von einem Angreifer ausgenutzt werden k├Ânnten.

Abbildung 1: Angriffsvektoren auf einen FPGA [003, S. 15].

Die "Common Criteria for Information Technology Security Evaluation" stellen eine Grundlage dar, um Systeme mit hoher IT-Sicherheit entwerfen und sich vor m├Âglichen Angriffen sch├╝tzen zu k├Ânnen.

Um eine System sicher zu gestalten, sollten beim Konzept unter anderem folgende Faktoren beachtet werden [004]:
  • Der Wert der Entwicklung (engl. value): Der Schutz und die ausgew├Ąhlten Sicherheitseigenschaften sollten im Verh├Ąltnis zu den zu sch├╝tzenden Werten stehen.
  • Der Gegner (engl. adversary): Je umfangreicher die technische Ausr├╝stung, die Erfahrung und die zur Verf├╝gung stehende Zeit des Angreifers sind, umso st├Ąrke m├╝ssen die Sicherheitseigenschaften des Produktes sein.
  • Entwicklungsstand (engl. design stage): Es sollte m├Âglichst fr├╝h festgelegt werden, welche Sicherheitseigenschaften im sp├Ąteren Produkt integriert sein sollen.
  • FPGA Ressourcen: Da besonders aktive AT-Sicherheitseigenschaften Logikelemente eines FPGAs ben├Âtigen, muss definiert werden, welcher Bereich daf├╝r zur Verf├╝gung steht.
  • Sicherheitskonzept: Die einzelnen AT-Sicherheitseigenschaften sollten immer Teil eines schl├╝ssigen Gesamtkonzeptes sein.
Die Sicherheitseigenschafen unterteilen sich dabei in passive Verfahren (z. B.: Bitstromverschl├╝sselung und -Authentifikation und die Deaktivierung der Auslese funktion) und aktive Verfahren in den Bereichen Pr├Ąvention, Erkennung (z. B. Spannungs- und Temperatur├╝berwachung) und Reaktion.

Eine ├ťbersicht zu kryptographischen Angriffen

Kryptographische Angriffe k├Ânnen in drei Gruppen unterteilt werden ([005] S. 83):
  • Klassische Kryptoanalyse: Mathematische Analyse; Brute-Force-Angriff
  • Implementationsattacken: Seitenkanalattacken; Fehlerinjektion
  • Social Engineering: z. B. Passw├Ârter kaufen oder erpressen

In der Vergangenheit wurden besonders die klassische Kryptoanalyse und das Social Engineering zum Umgehen von Sicherheitsmechanismen elektronischer Ger├Ąte verwendet.

Beg├╝nstigt durch fallende Preise und einen Anstieg der Leistungsf├Ąhigkeit im Bereich der Messtechnik und Manipulationstechnik elektronischer Schaltungen gewinnen die Implementations attacken aber einen immer gr├Â├čeren Einfluss.

Die Implementationsattacken lassen sich weiter in die folgenden Teilbereiche unterteilen (vgl. [005]):

Aktive Verfahren:
  • Invasiv
  • Semi-invasiv
  • Nicht invasiv: Fehlerinduzierung (St├Ârimpulse mit Strom, Spannung, Takt und Laser, Temperatur├Ąnderungen); Manipulation mit FIB

Passive Verfahren:
  • Seitenkan├Ąle ausnutzen: Timings; Stromverbrauch; Elektromagnetischen Abstrahlung

DPA-Analyse

Paul Kocher bewies 1998 erstmals, dass es mit einer sogenannten DPA-Analyse (Differential Power Analysis) m├Âglich ist, vom Energieverbrauch bzw. der elektromagnetischen Abstrahlung eines elektronischen Bausteins (z. B. Mikrocontroller oder FPGA) auf seine inneren Arbeitsabl├Ąufe zu schlie├čen (vgl. [006]).

Paul Kocher verfasste nach dieser Entdeckung viele Patente und gr├╝ndete die Firma Cryptography Research, Inc., die 2011 von der Firma Rambus ├╝bernommen wurde. Firmen, die aktuell in ihren elektronischen Schaltkreisen DPA-Gegenma├čnahmen einsetzen, m├╝ssen jetzt Rambus Lizenzgeb├╝hren zahlen.

Dieser Patentkampf f├╝hrt dazu, dass Firmen DPA-Gegenma├čnahmen nur dann einsetzen, wenn dies zwingend gefordert wird. Die Erfinder des neuen SHA-3-Hash-Algorithmus, die den Algorithmus urspr├╝nglich unter dem Namen Keccak ver├Âffentlichten, bieten aus diesem Grund als kostenlose Implementation des Algorithmus nur eine Variante ohne DPA-Gegenma├čnahmen auf ihrer Webseite an (vgl. [008]), obwohl eine gegen DPA-Gegenma├čnahmen geh├Ąrtete Version intern bereits vorliegt, getestet und in bereits schriftlich ver├Âffentlicht wurde (vgl. [009]).

DPA-Angriffe sind seit 1998 bekannt, dennoch verf├╝gen erst die allerneusten FPGA-Bausteinfamilien ├╝ber integrierte Gegenma├čnahmen. Beim FPGA-Hersteller Xilinx gibt es die Gegenma├čnahmen erst ab der Ultrascale-Architektur, die seit 2014 auf dem Markt verf├╝gbar ist ([007] S. 154).

Abbildung 2: Ablauf des AES-Algorithmus mit 1. Runde [010].

Praktischer DPA-Angriff

Der folgende Abschnitt beschreibt zur praktischen Veranschaulichung der Thematik einen Versuchsaufbau der Kasper & Oswald GmbH f├╝r einen DPA-Angriff auf eine AES-Verschl├╝sselung mit einer Schl├╝ssell├Ąnge von 128 Bit.

F├╝r eine einfache DPA-Attacke gen├╝gen die folgenden Materialien:
  • PC mit MATLAB, Oszilloskopsoftware, ein Konsolenprogramm (z. B. Tera Term VT) und Cyqwin-Umgebung
  • Ein Oszilloskop (z. B. PicoScope 5243B) mit zwei Tastk├Âpfen
  • Eine EM-Sonde (RF-U 5-2 mit Vorverst├Ąrker PA303)


Abbildung 3: Angriffsm├Âglichkeiten auf den Algorithmus.

Der AES-Algorithmus hat den Aufbau aus Abbildung 2. Teile des unverschl├╝sselten Klartestes werden zun├Ąchst im Schritt "Key Addition Layer" ├╝ber eine XOR-Funktion mit einem abgeleiteten Schl├╝ssel k0 verkn├╝pft. Anschlie├čend folgt in 10 gleich aufgebauten Runden die Verschl├╝sselung der urspr├╝nglichen Bits.

Als Angriff bietet sich f├╝r die Analyse die Stelle vor und nach der S-Box an (vgl. Abbildung 3).

Bei der DPA-Analyse wird ausgenutzt, dass einerseits bekannt ist, wie der AES-Algorithmus abl├Ąuft und anderseits der Stromverbrauch f├╝r den Zustand 0 und 1 innerhalb einer Transistorzelle verschieden ist. Zusammen mit dem bekannten oder abgeh├Ârten Klartext (x) und dem Messergebnis (Strom- oder EM-Messung) kann auf den Schl├╝ssel geschlossen werden.

Abbildung 4: Stromverbrauchsmessung einer AES-Verschl├╝sselung.

Im ersten Schritt werden mit unterschiedlichen Klartexten Strom- oder EM-Messungen mit einem Oszilloskop aufgenommen (vgl. Abbildung 4). Bei einfachen Mikrocontrollern reichen oft schon weniger als 500 Messkurven aus. Bei FPGAs werden (je nach Implementierung und Baustein) mehrere tausend Messkurven ben├Âtigt.

Anschlie├čend wird f├╝r alle Zust├Ąnde (00Hex bis FFHex) eines Schl├╝sselbytes (k0) der Wert eines Klartextbytes (x) nach der S-Box berechnet und ermittelt, ob das MSB (Most Significant Bit) eine 0 oder 1 ist. Davon abh├Ąngig werden die Messkurven anschlie├čend nach diesem Ergebnis (0 oder 1) sortiert.

Tabelle 1: Ergebnis nach S-Box des AES-Algorithmus bei bekanntem Klartext und Schl├╝ssel.

In einem letzten Schritt werden f├╝r jedes geratene Schl├╝sselbyte die Messkurven vom Ergebnis 0 von den Messkurven mit Ergebnis 1 abgezogen. W├Ąhrend bei falsch geratenen Schl├╝sselbytes keine deutlichen Differenzen auftreten, zeigt sich bei einem richtig geratenen Schl├╝sselbyte ein deutlicher Unterschied zwischen den Messkurven (vgl. Abbildung 5). Eine Tiefpassfilterung der Messergebnisse f├╝hrt in einigen F├Ąllen zu einer weiteren Optimierung der Messergebnisse.

Abbildung 5: DPA-Analyse - Deutlicher Ausschlag im Messergebnis bei richtig geratenem Schl├╝sselbyte.

Die Aussagekraft der Ergebnisse kann noch weiter verbessert werden, wenn neben der Bewertung des MSB alle Einser mit dem sogenannten Hamming-Gewicht bewertet werden (vgl. Tabelle 1). Dies erfolgt in einer sogenannten CPA-Analyse (Correlation Power Analysis) und bietet sich besonders nach der S-Box an, da diese eine nichtlineare Funktion darstellt.


Gegenma├čnahmen

Die Quelle [007] enth├Ąlt auf S. 154 eine Liste zu den aktuellen FPGA-Bausteinfamilien von Xilinx und deren Gegenma├čnahmen. Gegenma├čnahmen zu den genannten Bedrohungen werden ebenfalls in [013] aufgelistet.

Fazit

DPA-Attacken haben eine hohe Relevanz f├╝r die IT-Sicherheit eines Systems, da mathematisch hochsichere Algorithmen in k├╝rzester Zeit mit einfachen Messmitteln gebrochen werden k├Ânnen, wenn der Angreifer in der Lage ist einen Zugang zur Hardware zu bekommen.

Entwickler sollten sich diese Thematik bewusst machen und DPA-Gegenma├čnahmen trotz der Lizenzproblematik anstreben, um eine hohe IT-Sicherheit in ihren Systemen zu erhalten.

Wie lange es dauert, bis Gegenma├čnahmen zu einer Bedrohung fl├Ąchendeckend in einer Technologie eingesetzt werden, wurde am Beispiel der DPA-Attacken gezeigt.

Die Praxiserfahrung zeigt, dass Entwickler h├Ąufig IT-Sicherheits mechanischmen nur dann einsetzten, wenn diese ausdr├╝cklich gefordert wurden, da diese die Komplexit├Ąt der zu entwickelnden Ger├Ąte in allen Produktphasen erh├Âhen. Es m├╝ssen keine weiteren Algorithmen entwickelt werden, sondern die bestehenden m├╝ssen angewandt werden.

Isolation Design Flow & Partielle Rekonfiguration

Im Bereich der IT-Sicherheit aber auch Funktionssicherheit wird h├Ąufig gefordert, dass gerade bei Ein-Chip-Systemen in einem Bauteil mehrere Funktionen parallel nebeneinander ablaufen sollen, ohne sich gegenseitig zu st├Âren. Eine Kommunikation zwischen den isolierten Bereichen darf entweder gar nicht oder nur ├╝ber spezielle Verbindungen dem sogenannten "Trusted Routing" erfolgen. Eine lokale Trennung von Funktionen auf dem Chip kann auch gefordert sein, um im Falle eines Angriffs daf├╝r zu garantieren, dass nur ein Teilbereich ausf├Ąllt (z. B. durch den Beschuss mit einem Laser).

Abbildung 6: Floorplanning-Ansicht eines SoC-FPGA-Chips (Zynq-7000) mit vier isolierten Zonen.

Da Angreifer h├Ąufig versuchen Entscheidungspunkte zu manipulieren (z. B. das Ende einer Passwortpr├╝fung) verwenden Systeme mit erh├Âhter IT-Sicherheit redundante Strukturen. In der neusten FPGA-Architektur von Xilinx (Zynq Ultrascale+) ist der APU-Prozessor z. B. vierfach redundant in der Hardware aufgebaut (vgl. [014]).

Beispielhaft zeigt Abbildung 6 ein von der HTV GmbH realisiertes Floorplanning eines FPGA-Chips mit vier isolierten Zonen.

F├╝r die Isolation von Funktionen bietet die Firma Xilinx f├╝r FPGAs den "Isolation Design Flow" an, wie er in der XAPP1256 beschrieben ist. Durch diesen speziellen Ablauf wird sichergestellt, dass die internen Verbindungen bzw. das Routing spezielle Vorgaben einh├Ąlt und eine physikalische Grenze zwischen benachbarten Zonen verl├Ąuft (vgl. Abbildung 7). Die Grenze entsteht dadurch, dass sich in diesem Bereich keine konfigurierte Logik oder Switchboxen befinden, die eine ├ťbertragung von Informationen zwischen den isolierten Zonen erm├Âglichen.

Abbildung 7: Regionen in einem FPGA werden durch physikalische Grenzen voneinander getrennt. Nur Verbindungen, die die Vorgaben des Trusted Routings einhalten, d├╝rfen durch die festgelegten Grenzen verlaufen.

In dem Forschungsprojekt der Fa. HTV GmbH (vgl. [001]) wurde ├╝berpr├╝ft, ob es m├Âglich ist, die Konfiguration der isolierten Bereiche im laufenden Betrieb zu ├Ąndern. Der FPGA-Hersteller Xilinx stellt f├╝r ├änderungen der Konfiguration im Betrieb einen partiellen Design Flow in seiner Entwicklungsumgebung Vivado zur Verf├╝gung. Eine erste Analyse zeigt aber, dass die beide Design Flows nicht miteinander kombiniert werden k├Ânnen (vgl. Abbildung 8). Aktuell ist die Vereinigung beider Flows f├╝r das dritte Quartal von 2018 angek├╝ndigt.

├ťber einen Umweg ist es aber doch m├Âglich beide Flows miteinander zu vereinen. Mit der Software GoAhead (vgl. [012]) kann das Routing der statischen Konfiguration eines FPGAs nach definierten Vorgaben erzeugt werden, um so ein gew├╝nschtes Bussystem in einem vorgegebenen Bereich im FPGA zu realisieren (vgl. Abbildung 9).

Abbildung 8: Der "Isolation Design Flow" und der "partielle Design Flow" lassen sich in Vivado 2017.X nicht vereinen.

Im Betrieb kann jetzt in den Bereich in dem sich das erzeugte Bussystem befindet ein anderer Inhalt in die Switchboxen und die damit verbundene FPGA-Logik mit der gew├╝nschten Funktionalit├Ąt (z. B. ein Verschl├╝sselungsalgorithmus) geladen werden. Die Konfiguration der Switchboxen und der Logik wird durch den partiell geladenen Bitstrom ge├Ąndert, das statische Routing wird dadurch aber nicht beeinflusst.

Abbildung 10 zeigt ein zu diesem Vorgehen passendes partielles Modul. Zur Erzeugung dieses Moduls wird das statische Bussystem am ├Ąu├čeren Rand des Moduls nachgebildet. Die im statischen System angeschlossenen Switchboxen stellen jetzt die Schnittstelle zum partiellen Modul her. Die Gr├Â├če des Moduls ergibt sich aus dessen Funktionalit├Ąt.

Abbildung 9: Spezielles Bussystem, das an definierte Switchboxen angeschlossen ist.

Durch diese Schnittstellendefinition, die erst durch das von GoAhead erzeugte Bussystem m├Âglich wird, k├Ânnen partielle Module sp├Ąter in einer beliebigen Vivado Version separat von der statischen Konfiguration entwickelt werden, da sich das Routing zwischen der partiellen und statischen Konfiguration nicht mehr ├Ąndert.

In einem ersten Schritt kann die statische Konfiguration in Vivado ohne hohe Sicherheitsauflagen entwickelt und deren Zonen auf Isolation hin ├╝berpr├╝ft werden. Erst zur Laufzeit werden dann die gew├╝nschten geheimen partiellen Module in die im statischen Design vorhanden Bereiche nachgeladen.

Abbildung 10: Partielles Modul.

Fazit

Das demonstrierte Konzept zur partiellen Rekonfiguration von partiellen Modulen in einer isolierten statischen Konfiguration gelang nach Wissen des Autors weltweit erstmals Ende 2017 in Zusammenarbeit mit der University of Manchester.

Die Vorteile der Schnittstellendefinitionen in der statischen Konfiguration sind enorm:
  • Die Vorteile des "Isolation Design Flows" und der partiellen Rekonfiguration k├Ânnen vereint werden.
  • Geheime Module k├Ânnen separat entwickelt und erst bei Bedarf im Betrieb in die gew├╝nschte isolierte Zone der statische Konfiguration geladen werden.
  • Durch eine weitere Manipulation des Bitstroms eines partiellen Moduls ist es zus├Ątzlich m├Âglich dieses an unterschiedlichen Stellen in der statischen Konfiguration zu laden, solange sich dort die passenden Schnittstellen bzw. das passende Bussystem und die passenden Hardwareressourcen befinden.

Literatur
  • [001] HTV GmbH: Forschungsvorhaben - Programmierung von FPGAs. F├╝r eine deutsche Bundesbeh├Ârde, 24.11.2017.
  • [002] HTV GmbH: Studie - Analyse von FPGAs. F├╝r eine deutsche Bundesbeh├Ârde, 28.11.2012.
  • [003] B. Badrinans, J.L. Danger, V. Fischer, G. Gogniat, L. Torres: Security Trends for FPGAs. Springer 2011. ISBN: 978-94-007-1337-6.
  • [004] E. Peterson: Developing Tamper Resistant Designs with Xilinx Virtex-6 and 7 Series FPGAs. Xilinx, Application Note, XAPP1084 (v1.3) October 15, 2013.
  • [005] Prof. C. Paar: Implementation of Cryptographic Schemes 1. Ruhr University Bochum, Embedded Security, April 2014.
  • [006] P. Kocher, J. Jaffe, B. Jun: Differential Power Analysis. Cryptography Research, Inc. 1999.
  • [007] Xilinx. ultrafast embedded design methodology guide. https://www.xilinx.com/support/documentation/sw_manuals/ug1228-ultrafast-embedded-design-methodology-guide.pdf, UG1228 (v1.0), 31. Maerz, 2017.
  • [008] TeamKeccak: Keccak. https://keccak.team/keccak.html, 27.03.2018.
  • [009] Michael Peeters Gilles Van Assche Ronny Van Keer Guido Bertoni, Joan Daemen. Tuturial on Keccak. Security Pattern - STMicroelectronics - Radboud University, Oktober, 2017.
  • [010] David Oswald: Seitenkanal-┬şÔÇÉAngriffe: Theorie und Praxis. KASPER & OSWALD GmbH, November 2014.
  • [011] Huiyun Li: Security evaluation at design time for cryptographic hardware. University of Cambridge, April 2006.
  • [012] Dirk Koch: GoAhead - A Partial Design Tool. http://www.mn.uio.no/ifi/english/research/projects/cosrecos/goahead/, 27.03.2018.
  • [013] Steven McNeil: Solving Today's Design Security Concerns. Xilinx, WP365 (v1.2) July 30, 2012.
  • [014] Xilinx: Zynq UltraScale+ MPSoC Product Advantages. https://www.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html, 28.03.2018.


Author: ┬ę Halbleiter-Test & Vertriebs-GmbH, Bensheim, Deutschland, 2018
Anzeige
Anzeige
Weitere Nachrichten
2019.01.17 14:20 V11.11.0-1