Microcontroller and FPGA Programming for Reliability and Security

Beschreibung

Field-Programmable-Gate-Arrays (FPGAs) werden immer mehr auch als Beschleuniger in der Cloud verwendet, ähnlich wie GPGPUs. Gleichermaßen werden FPGAs und Microcontroller immer mehr in sogenannten "Internet of Things" (IoT) Applikationen verwendet, und auch in Mobilgeräten wie Smartphones und Smartwatches. Beide Chips wurden in der Vergangenheit von einem einzigen Benutzer programmiert, bekommen nun aber immer mehr Zugriff von dritten, durch z.B. Watch-/Smartphone-Apps, oder als Cloud-Beschleuniger.

In den traditionellen Szenarien waren besonders Angreifer-Modelle interessant mit lokalem physischem Zugriff.

Im Verlauf unserer Arbeit schauen wir nun auf mögliche Angriffszenarien aus der Ferne, welche sich durch den Zugriff dritter ergeben könnten, aber dennoch Chip-spezifisch sind (elektrisch / physikalisch / architektur), und zuvor noch nicht interessant waren.

Für FPGAs konnten wir bereits in zwei publizierten Arbeiten nachweisen, dass gleichermaßen ein aktiver Denial-of-Service Fault Angriff wie auch ein passiver Seitenkanalangriff (Schlüsselextraktion bei AES) in einem FPGA mit mehreren Nutzern möglich sind.

Im Bereich der Zuverlässigkeit ist es auch interessant ob mögliche Randfälle zu unzuverlässigem Verhalten im normalen Betrieb führen könnten (z.B. wegen zu schwacher Stromversorgung).

Interesse geweckt? Diese Arbeiten sollen noch weiterverfolgt und zum Teil auf Microcontroller erweitert werden. Dafür können wir Deine Hilfe brauchen!

Description

Field-Programmable-Gate-Arrays (FPGAs) are increasingly used as an accelerator in the cloud, similar to GPGPUs. Both FPGAs and microcontrollers are increasingly connected to the Internet in so-called "Internet of Things" (IoT) applications, as well as mobile devices such as smartwatches and smartphones. Both of these chips were previously programmed by a single user, but now offer access to 3rd parties, for instance in watch/smartphone apps or as cloud accelerators.

In previous scenarios, specific attacker models for these chips were based on local physical access to the devices.

In this line of work, we are looking into remote access by limited acces from a 3rd party and how this access can lead to new vulnerabilities, which are still chip-specific and based on electrical, physical or architectural effects. These type of potential issues were previously not explored.

For FPGAs we could already publish two works. These works are a denial-of-service fault attack, as well as a passive side-channel attack (for AES key extraction) for an FPGA used by multiple users.

In terms of reliability, it is also interesting to check potentially unreliable corner cases that could happen during normal operation (for example due to a weak power supply).

You got interested? We plan to continue on this line of work and extend some of it to microcontrollers as well. Here we could benefit from your help!

Requirements

One of these (or both):

  • Microcontroller programming, including peripheral use (interrupts, timers, ...)
  • FPGA digital design, some level beyond LED flashing

Potential Useful or Optional Skills

  • Microcontroller or FPGA specific knowledge or tools (for example STM32, ESP8266, Lattice, Xilinx, Altera)
  • Common libraries, operating systems (lwIP, FreeRTOS)
  • JTAG and other debugging or testing tools, ATPG tools, Formal verification tools for hardware (cadence/synopsys)
  • Oscilloscope measurements, possibly NI-VISA / py-visa / Labview based setup
  • Switched-mode voltage regulators ("DC/DC Converter")
  • C, ARM assembler, VHDL, Verilog, Python, TCL, System Verilog Assertions (SVA)

Contact

Dennis Gnad, dennis.gnad@kit.edu, 0721/608-47586