In this thesis, we investigate the security foundations of Trusted Execution Environments (TEEs): memory isolation and attestation. For the former, we show how to extract secrets from and inject arbitrary code into TEEs that do not provide memory integrity protection. Along with the attacks, we discuss countermeasures that prevent their execution. Furthermore, we use control-flow attestation to extend the static attestation mechanism with attestation at run-time.
Übersetzte Kurzfassung:
In dieser Arbeit untersuchen wir die grundlegenden Schutzmechanismen von Trusted Execution Environments (TEEs): Speicherisolierung und Attestierung. Für die Isolierung zeigen wir, wie kritische Daten aus TEEs ohne Integritätsschutz extrahiert werden können und beliebiger Code injiziert werden kann. Dazu besprechen wir Gegenmaßnahmen, welche diese Angriffe verhindern. Außerdem benutzen wir Kontrollflussattestierung um den statischen Attestierungsmechanismus mit Laufzeitattestierung zu erweitern.