FPGA Seitenkanäle
Modellansatz - Ein Podcast von Gudrun Thäter, Sebastian Ritterbusch
Kategorien:
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 (...)