FPGA Seitenkanale

Published: Aug. 16, 2018, 10:30 p.m.

Vom 10. - 13. Mai 2018 fand im ZKM und in der Hochschule f\xfcr Gestaltung (HfG) die GPN18 statt. Dort traf sich Sebastian mit Dennis Gnad, um mit ihm \xfcber Seitenangriffe auf Field Programmable Gate Arrays (FPGA) zu sprechen. FPGAs sind ver\xe4nderliche 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\xfcr h\xf6here Taktraten und sparsamer abgebildet werden k\xf6nnen, das Design aber um Gr\xf6\xdfenordnungen teurer ist. Und w\xe4hrend einem ASIC die Funktion ab Werk einbelichtet ist, k\xf6nnen FPGAs nahezu beliebig oft zur Laufzeit umprogrammiert werden. Wie im Podcast zu digitalen W\xe4hrungen erw\xe4hnt, spielen Graphical Process Units (GPUs), FPGAs und ASICs eine gro\xdfe Rolle bei Kryptow\xe4hrungen. 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 \xfcbersteigen in Effizienz und Geschwindigkeit alle anderen L\xf6sungen. 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\xdfen Datenmengen wie Videodaten aus, da sie in der Parallelisierung nur durch den verf\xfcgbaren Platz beschr\xe4nkt 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\xfcr CPUs oder GPUs verwendet werden. Es werden in logischen oder kombinatorischen Bl\xf6cken Daten verarbeitet, die dann in Taktschritten von und in Datenregister \xfcbertragen werden. Die erreichbare Taktfrequenz h\xe4ngt von der Komplexit\xe4t der kombinatorischen Bl\xf6cke ab. Ein Beispiel f\xfcr logische Bl\xf6cke k\xf6nnen Soft-Cores sein, wo zuk\xfcnftige oder nicht mehr erh\xe4ltliche 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\xfctzt werden. F\xfcr die effiziente Umsetzung ist daf\xfcr weiterhin gro\xdfes Hardwarewissen erforderlich, und man kann nicht erwarten, dass Code f\xfcr 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\xe4ts wie es auch schon im Podcast zu Smart Metern beschrieben wurde. Ebenso wurden schon Kryptoschl\xfcssel aus Ger\xe4uschen einer CPU bestimmt. Mit Soundkarten kann man Funkuhren verstellen (...)