Abgesicherter Programmablauf

Schutz für Programme - Intels Trusted Execution Technologie

Geschützte Partition

Eine Applikation braucht nicht vollständig in einer geschützten Partition zu laufen, sondern kann hauptsächlich in einer ungeschützten sprich Standardpartition laufen und nur die Code-Teile, die beispielsweise Passwortabfragen bearbeiten, in Form eines Moduls in einer Protected Execution PE ausführen.

Damit eine Applikation dort ausgeführt werden kann, muss die Partition erst einmal erzeugt und anschließend wieder aufgelöst werden – dies ist ohne Systemneustart jederzeit möglich. Damit die Partition auch wirklich sicher ist, gilt es einen definierten Ablauf einzuhalten:

  • Die Applikation nutzt einen Systemaufruf des Betriebssystems [CreatePE()], und damit ist Speicher für die neue Partition reserviert und als geschützt markiert. Der Domain-Manager wird in einen anderen Speicherbereich geladen und über ein AC-Modul registriert.

  • Der Befehl „SENTER“ aus der SMX-Erweiterung wird durch die Applikation ausgeführt und sorgt dafür, dass ein erster Handshake zwischen Prozessor und Chipsatz stattfindet. Ist der Handshake erfolgreich verlaufen, sind CPU und Chipsatz bereit.

  • Nun lädt der Prozessor ein AC-Modul in seinen internen privaten Speicher, authentifiziert den Code, registriert diesen im Platform Configuration Register (PCR) des TPM und führt den Code aus.

  • Der AC kontrolliert, ob unbekannte Hardware neu vorhanden ist. Hat sich an der HW nichts verändert, wird der Speicherbereich für den Domain-Manager geschützt und die Identität dessen in einem TPM PCR registriert. Anschließend wird die Kontrolle an den Domain-Manager übergeben, der dann die Applikation bedient.

Sicherer Start: Über den Befehl SENTER der SMX-Erweiterung wird die Überprüfung der „vertrauensvollen Hardware“ initiiert. (Quelle: Intel)
Sicherer Start: Über den Befehl SENTER der SMX-Erweiterung wird die Überprüfung der „vertrauensvollen Hardware“ initiiert. (Quelle: Intel)

Die Löschung der geschützten Partition geht auch in definierten Schritten vonstatten:

  • Hat sich die Applikation beendet, so kommt der Domain-Manager erneut zum Zug, denn dieser ist für das Aufräumen zuständig und hat dafür zu sorgen, dass keine vertraulichen Daten im Speicher oder den Registern zurückbleiben. Keys legt dieser zur späteren Verwendung im TPM ab, und anschließend überschreibt er den bisher genutzten Speicherbereich der Partition und gibt diesen frei.

  • Mit der SMX Instruktion „SEXIT“ triggert der Domain-Manager einen Handshake zwischen Chipsatz und CPU und damit Letztere wieder im normalen Modus. Anschließend beendet sich der Domain-Manager, und dessen Speicherbereich wird freigegeben. Der ursprüngliche Zustand vor der Erzeugung der Partition ist gegeben, und es gibt keinen Hinweis, dass eine geschützte Applikation existierte oder Daten daraus noch im Speicher zu finden sind.