FPGA Seitenkanäle

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


Podcasts


GPN18 Special


GPN17 Special


GPN16 Special