Parametrisierung simulations-basierter Software Probing-Security Analyse für spezifische CPU-Implementierungen

Masterthesis oder HiWi Job

Motivation

Seitenkanalangriffe gewinnen zunehmend an Bedeutung, wenn wie z.B. im Falle einer Smartcard, die Hardware in die Hände des Angreifers gelangen kann. In so einen Fall muss die Hardware-Software Kombination gegen Angriffe auf die Implementierung geschützt sein.

Um die Sicherheit von Hardware-Software Kombinationen gegen Seitenkanalangriffe zu evaluieren, können heutzutage Software-Tools verwendet werden, welche z.B. auf Basis eines Leakage-Modells sowie einer Ausführung der Software in einem Emulator arbeiten.

Da die verwendeten Leakagemodelle generisch arbeiten, treffen die Aussagen der Tools nicht zwangsläufig genau auf eine Hardware-Implementierung einer CPU zu, wodurch ggf. die falschen oder mehr Schutzmaßnahmen auf der Software-Seite ergriffen werden könnten als notwendig und somit die Performance der Implementierung beeinträchtigt werden könnte.

Ziel

Ziel dieser Arbeit ist, anhand verschieder Implementierungen von RISC-V CPUs festzustellen, welche Unterschiede im Leakage-Verhalten zwischen verschiedenen Implementierungen von CPUs der RISC-V Plattform beobachtet bzw. gemessen werden können. Auf Basis von PROLEAD_SW wird von uns ein Tool für die RISC-V Plattform entwickelt, mit dessen Hilfe die Probing-Security von Software, welche auf RISC-V CPUs ausgeführt wird, evaluiert werden kann. Auf Basis dieser Datenlage soll identifiziert werden, wie weit das dem Tool zugrundeliegende Leakage-Modell verändert werden muss oder parametrisierbar gemacht werden muss, um genauere Aussagen für spezifische RISC-V implementierungen zu treffen.

Aufgaben

  • Gegebenenfalls Entwicklung neuer Testcases in Assembler und C
  • Gegebenenfalls Durchführen von Messungen an echter Hardware
  • Auswerten von Messdaten
  • Entwicklung eines Konzeptes für ein parametrisierbares Leakage-Modell
  • Implementierung des parametrisierbaren Leakage-Modells

Voraussetzungen

  • Gute C, C++ und Assembler Kenntnisse
  • Python Kenntnisse
  • Vorkenntnisse im Umgang mit Git, GNU-Make sowie Linux
  • Spaß an Softwareentwicklung

Referenzen und Literatur (Auswahl)

Haben wir Ihr Interesse geweckt? Kontakt: Nicolai Schmitt.