Masterprüfung mit Defensio, Matus Mrekaj

09.07.2024 15:00 - 16:30

Universität Wien

Besprechungsraum 4.34

Währinger Str. 29

1090 Wien

09.07.2024, 15:00 Uhr

Universität Wien
Besprechungsraum 4.34
Währinger Str. 29
1090 Wien

Titel: DRAM PUF-based Hardware-Software Binding through LLVM
passes

Kurzfassung:
Das Internet der Dinge führt in vielen Branchen zu einer steigenden Nachfrage nach eingebetteten
Geräten. Aufgrund von Kosteneinsparungen kann die erforderliche Sicherheit
dieser Geräte oftmals jedoch nicht gewährleistet werden. In den vergangenen Jahren
wurden Physically Unclonable Functions (PUFs) untersucht, um in diesen Geräten bereits
vorhandene Hardware zu nutzen, um fehlende Sicherheitsmechanismen zu implementieren,
beispielsweise Geräteauthentifizierung für Software. Die Verwendung eines PUF gewährleistet
im Wesentlichen, dass die Software nur auf der speziellen Hardware läuft, für die
sie registriert wurde.
In dieser Arbeit wird eine neuartige Implementierung eines Decay-DRAM-PUFs auf
einem Beaglebone Black beschrieben, der zur Laufzeit während des normalen Gerätebetriebs
mit Linux-Kernel-Modulen abgefragt werden kann. Die Implementierung verwendet
einen LLVM-Out-of-Tree-Pass, um die LLVM IR so zu patchen, dass die auf dem Gerät
verfügbare PUF-Implementierung in Kombination mit Self-Checksumming verwendet wird.
Der LLVM-Pass zerstört den Call-Graph des zu patchenden Programms und integriert
Anweisungen in den Code, die den Call-Graph zur Laufzeit inkrementell wieder aufbauen,
sobald das Programm auf einem Gerät ausgeführt wird, auf dem der PUF läuft. Jede
PUF-Antwort wird zur Rekonstruktion des Call-Graphen verwendet. Im Falle einer
Manipulation durch Veränderung des Programmcodes oder Ausführung des gepatchten
Programms auf einem nicht autorisierten Gerät, wird eine Tamperproofing-Reaktion
ausgelöst.
Das Schema wurde auf einen Rust-basierten TCP-Server angewendet, der kryptografische
Operationen durchführt. Es konnten stabile 32-Bit PUF-Antworten bei Raumtemperatur
mit einer Fehlerkorrektur von bis zu 8 Bit oder 25% erzeugt werden. Die
Auswirkungen des durch den LLVM-Pass eingefügten Codes auf das Beispielprogramm
resultieren in einer um ca. 30% größeren Binärdatei und einer um ca. 20% längeren
Kompilierzeit. Das Kernel-Modul beansprucht während der Auswertung des PUFs 28%
der CPU-Zeit. Die Stabilität der PUF-Antworten wurde über einen Zeitraum von ca.
einem Monat evaluiert.

Organiser:

SPL 5

Location:

Besprechungsraum 4.34

Währinger Straße 29
1090 Wien