Previous Episode: Mechanical Engineering
Next Episode: Lerntheken

Vom 10. - 13. Mai 2018 fand im ZKM und in der Hochschule für Gestaltung (HfG) die GPN18 statt. Dort traf sich Sebastian mit Dennis Gnad, um mit ihm über Seitenangriffe auf Field Programmable Gate Arrays (FPGA) zu sprechen.

FPGAs sind veränderliche Computerchips, die hervorragend bei der Entwicklung von logischen Schaltkreisen oder spezieller Glue Logic helfen, und kommen inzwischen auch als Rechenbeschleuniger zum Einsatz. Man kann FPGAs als Vorstufe zu Application-Specific Integrated Circuits (ASIC) sehen, auf denen Strukturen noch viel feiner, für höhere Taktraten und sparsamer abgebildet werden können, das Design aber um Größenordnungen teurer ist. Und während einem ASIC die Funktion ab Werk einbelichtet ist, können FPGAs nahezu beliebig oft zur Laufzeit umprogrammiert werden.

Wie im Podcast zu digitalen Währungen erwähnt, spielen Graphical Process Units (GPUs), FPGAs und ASICs eine große Rolle bei Kryptowährungen. Hier ist ein einzelner FPGA-Chip beim so genannten Mining meisst nicht schneller als eine GPU, verbrauchen jedoch im Vergleich deutlich weniger Strom. Spezialisierte ASICs hingegen übersteigen in Effizienz und Geschwindigkeit alle anderen Lösungen.

FPGAs finden sich aktuell in vielen Consumer-Produkten, wie dem Apple iPhone 7, im Samsung Galaxy S5, Smart-TVs und selbst auch der Pebble Smartwatch. Ihren besonderen Vorteil spielen FPGAs bei der Verarbeitung von großen Datenmengen wie Videodaten aus, da sie in der Parallelisierung nur durch den verfügbaren Platz beschränkt sind.

Die Beschreibung von FPGAs und ASICs, oder deren Programmierung, erfolgt eher strukturell in Hardwarebeschreibungssprachen wie Verilog oder VHDL. Diese Beschreibungen unterscheiden sich sehr von imperativen Programmiersprachen, wie sie oft für CPUs oder GPUs verwendet werden.

Es werden in logischen oder kombinatorischen Blöcken Daten verarbeitet, die dann in Taktschritten von und in Datenregister übertragen werden. Die erreichbare Taktfrequenz hängt von der Komplexität der kombinatorischen Blöcke ab. Ein Beispiel für logische Blöcke können Soft-Cores sein, wo zukünftige oder nicht mehr erhältliche CPU-Designs in FPGAs zur Evaluation oder Rekonstruktion abgebildet werden.

Eine Variante ist die Entwicklung in OpenCL, wo verschiedene Architekturen wie GPUs, CPUs und FPGA unterstützt werden. Für die effiziente Umsetzung ist dafür weiterhin großes Hardwarewissen erforderlich, und man kann nicht erwarten, dass Code für FPGAs ebenso auf GPU, oder umgekehrt CPU-Code in FPGAs darstellbar ist.

Das Interesse von Dennis Gnad liegt bei den FPGAs darin, deren Daten, Logik oder Inhalte durch Seitenkanalangriffe in von den Entwicklern unvorhergesehener Art und Weise auszulesen. Ein Beispiel ist das Erkennen von Fernsehsendungen aus dem Stromverbrauch des Fernsehgeräts wie es auch schon im Podcast zu Smart Metern beschrieben wurde. Ebenso wurden schon Kryptoschlüssel aus Geräuschen einer CPU bestimmt. Mit Soundkarten kann man Funkuhren verstellen und auch Grafikkarten können als UKW-Sender verwendet werden. Die elektromagnetische Abstrahlung ist ein sehr klassischer Seitenkanal und ist als Van-Eck-Phreaking seit 1985 bekannt. Gerade wurden die Timing- und Speculative-Execution-Covered-Channel-Angriffe Spectre und Meltdown für einen großteil aktueller CPUs bekannt, die aktiv Seitenkanäle für verdeckten Informationszugriff nutzen.

Normalerweise benötigen Power-Side-Angriffe, die den Stromverbrauch auswerten, physischen Zugang zum Gerät oder der Stromversorgung. Überraschenderweise ist es auf FPGAs hingegen möglich den Stromverbrauch anderer Schaltungsbestandteile rein durch Software zu bestimmen. Dazu werden FPGAs an der Grenze der Timing-Parameter betrieben, und statistisch die erfolgreiche Ausführung gemessen. Mit verschieden langen Pfaden können auch gleichzeitig die Zeitschranken verschieden stark belastet werden und damit gleichzeitig für mehrere Spannungsstufen ausgewertet werden. Damit kann der relative Spannungsverlauf kontinuierlich gemessen werden. Im Zuge seiner Forschung zu Voltage Fluctuations in FPGAs konnte Dennis Gnad die Qualität der Messungen nachweisen.

Für die eigentliche Auswertung der Messungen werden hier die Verfahren der Differential Power Analysis verwendet, die nicht absolute Messungen, sondern mit relativen Messungen den Verlauf oder Unterschiede in den Verläufen statistisch analysieren. Speziell wurden mit dem Pearson Korrelations-Koeffizient verschiedene Schlüssel-Hypothesen mit modellierten Stromverläufen aufgestellt, um den Suchraum für einen kryptographischen AES-Schlüssel jeweils stückweise einzuschränken. Dafür musste die spezielle AES-Implementation auf dem FPGA bekannt sein, um entsprechende Leakage-Modelle für die Korrelationsauswertung aufstellen zu können. Insgesamt wurde so ein rein software-getriebener Angriff auf FPGAs demonstriert, der ohne sehr aufwändiges Code-Review-Verfahren, dessen Umsetzung bei VHDL ohnehin große Fragen aufwirft, kaum zu entdecken ist.

Dennis betreibt die Forschung als Doktorand am Chair of Dependable Nano Computing (CDNC) am Karlsruher Institut für Technologie (KIT), deren Forschung besonders auf die Verlässlichkeit und auch der Sicherheit von Computersystemen abzielt. Die Forschungsarbeiten zu Seitenkanälen über den Stromverbrauch haben ebenso Anwendungen für die Zuverlässigkeit von den Systemen, da ebenso mit der Messung auch eine entsprechende Beeinflussung bis zur Erzeugung von Fehlerzuständen möglich wird, wie es von Dennis durch Fehlerzustände in der Stromversorgung zum Neustart von FPGAs demonstriert werden konnte. Mit Stuxnet wurde bekannt, dass auch Industrieanlagen mit Software zerstört werden konnten, es gab aber auch Computermonitore, die kreativ in neue Nutzungszustände gebracht wurden.

Literatur und weiterführende Informationen D. Gnad: Seitenkanal-Angriffe innerhalb FPGA-Chips, Vortrag auf der GPN18, Karlsruhe, 2018. F. Schellenberg, D. Gnad, A. Moradi, M. Tahoori: An Inside Job: Remote Power Analysis Attacks on FPGAs, Cryptology ePrint Archive: Report 2018/012, Proceedings of Design, Automation & Test in Europe (DATE), 2018. D. Gnad, F. Oboril, M. Tahoori: Voltage Drop-based Fault Attacks on FPGAs using Valid Bitstreams, International Conference on Field-Programmable Logic and Applications (FPL), Belgium, 2017. A. Moradi, F.-X. Standaert: Moments-Correlating DPA, Cryptology ePrint Archive: Report 2014/409, Theory of Implementations workshop, 2016. P. Kocher, J. Jaffe, B. Jun, et al: Introduction to differential power analysis, J Cryptogr Eng 1: 5, 2011. E. Brier, C. Clavier, F. Olivier: Correlation power analysis with a leakage model, International workshop on cryptographic hardware and embedded systems. Springer, Berlin, Heidelberg, 2004. Cryptology ePrint Archive Search Portal Side Channel Cryptanalysis Lounge - Ruhr-Universität Bochum D. Gnad, F. Oboril, S. Kiamehr, M. Tahoori: An Experimental Evaluation and Analysis of Transient Voltage Fluctuations in FPGAs, in IEEE Transactions on Very Large Scale Integration Systems (TVLSI), 2018. F. Schellenberg, D. Gnad, A. Moradi, M. Tahoori: Remote Inter-Chip Power Analysis Side-Channel Attacks at Board-Level], In Proceedings of IEEE/ACM International Conference on Computer-Aided Design (ICCAD), USA, 2018. (to appear Nov. '18) J. Krautter, D. Gnad, M. Tahoori: FPGAhammer: Remote Voltage Fault Attacks on Shared FPGAs, suitable for DFA on AES], in IACR Transactions on Cryptographic Hardware and Embedded Systems (TCHES), Vol.1, No.3, 2018. (to appear Sept. '18)
Podcasts A.-L. Baecker, C. Schrimpe: Crypto for the Masses – Grundlagen, Request for Comments, Der RFC Podcast, Folge 15, 2018. M. Lösch, S. Ritterbusch: Smart Meter Gateway, Gespräch im Modellansatz Podcast, Folge 135, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2017. S. Ritterbusch, G. Thäter: Digitale Währungen, Gespräch im Modellansatz Podcast, Folge 32, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2014. B. Heinz, T. Pritlove: FPGA, CRE: Technik, Kultur, Gesellschaft, Folge 117, Metaebene Personal Media, 2009.
GPN18 Special D. Gnad, S. Ritterbusch: FPGA Seitenkanäle, Gespräch im Modellansatz Podcast, Folge 177, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2018. http://modellansatz.de/fpga-seitenkanaele B. Sieker, S. Ritterbusch: Flugunfälle, Gespräch im Modellansatz Podcast, Folge 175, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2018. http://modellansatz.de/flugunfaelle A. Rick, S. Ritterbusch: Erdbebensicheres Bauen, Gespräch im Modellansatz Podcast, Folge 168, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2018. http://modellansatz.de/erdbebensicheres-bauen
GPN17 Special Sibyllinische Neuigkeiten: GPN17, Folge 4 im Podcast des CCC Essen, 2017. A. Rick, S. Ritterbusch: Bézier Stabwerke, Gespräch im Modellansatz Podcast, Folge 141, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2017. http://modellansatz.de/bezier-stabwerke F. Magin, S. Ritterbusch: Automated Binary Analysis, Gespräch im Modellansatz Podcast, Folge 137, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2017. http://modellansatz.de/binary-analyis M. Lösch, S. Ritterbusch: Smart Meter Gateway, Gespräch im Modellansatz Podcast, Folge 135, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2017. http://modellansatz.de/smart-meter
GPN16 Special A. Krause, S. Ritterbusch: Adiabatische Quantencomputer, Gespräch im Modellansatz Podcast Folge 105, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/adiabatische-quantencomputer S. Ajuvo, S. Ritterbusch: Finanzen damalsTM, Gespräch im Modellansatz Podcast, Folge 97, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/finanzen-damalstm M. Fürst, S. Ritterbusch: Probabilistische Robotik, Gespräch im Modellansatz Podcast, Folge 95, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/probabilistische-robotik J. Breitner, S. Ritterbusch: Incredible Proof Machine, Gespräch im Modellansatz Podcast, Folge 78, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/incredible-proof-machine