Abgesicherter Programmablauf

Schutz für Programme - Intels Trusted Execution Technologie

07.08.2007 von Thomas Steudten
Die Trusted Execution Technologie „LaGrande“ ist der Schlüssel von Intels „Safer Computing Initiative“. TXT soll einen abgesicherten Programmablauf ermöglichen und Anwendungen und Threads voreinander schützen.

Intel integriert mit der Trusted Execution Technologie „TXT“ das Konzept der Trusted Computing Group (TCG, ehemals TCPA) in der CPU, geht aber noch weit darüber hinaus. So soll es durch TXT keinem auch noch so hoch privilegierten Programm mehr erlaubt sein, auf Daten oder Code einer anderen Anwendung zuzugreifen.

Unter dem Codenamen „LaGrande Technologie (LT)“ definierte Intel bereits vor Jahren Kernelemente für den Aufbau einer vertrauenswürdigen Computerumgebung. Heute firmiert diese Technologie unter dem Begriff „Trusted Execution Techologie“ TXT, manchmal auch mit der Abkürzung „TET“ bezeichnet. Intels TXT ist eine Hardwareerweiterung des Prozessors sowie des Chipsatzes. Intel bietet die Trusted Execution Technologie jetzt in ausgewählten Business-Desktop-Plattformen an.

Intels TXT arbeitet eng mit der CPU-Virtualisierungstechnologie VT-x „Vanderpool“ zusammen. Für die Virtualisierung des Prozessors sind die Security-Features allerdings nicht notwendig. Mit TXT wird aber das Starten von Trusted Software in einer virtuellen Maschine möglich. TXT reinitialisiert die CPU zum Bereitstellen einer gesicherten Arbeitsumgebung. Diese Umgebung ist gegen Zugriffe von außen geschützt. Nachträgliches Debugging, Reverse Engineering oder das Patchen zur Laufzeit durch Malware sind somit ausgeschlossen. Selbst die Kommunikation mit Eingabegeräten wie der Tastatur und der Maus erfolgt bei TXT-Umgebungen über kryptografisch abgesicherte Pfade.

In diesem Artikel erläutern wir die Funktionsweise und die Möglichkeiten, die sich mit der Trusted Execution Technologie bieten.

Voraussetzungen

Für die Trusted Execution Technologie müssen von der Hardware die CPU und der Chipsatz diese Technologie unterstützen. (Northbridge für Speicherschutz und Southbridge für I/O-Schutz). Weiterhin wird als „Code-Tresor“ ein Trusted Platform Module (TPM) benötigt.

BIOS und Betriebssystem müssen in der Lage sein, eine geschützte Domain auf Initiative der angepassten Applikation oder des Domain-Managers zu erzeugen und wieder zu löschen. Alle beteiligten Komponenten identifizieren und authentifizieren sich untereinander, sodass über das zentrale TPM ein Zugriff und eine Dekodierung der Daten möglich ist.

Sichere Plattform: Intels Trusted Execution Technologie setzt entsprechende Prozessoren und Chipsätze mit TXT-Unterstützung voraus. Außerdem wird ein TPM-Modul benötigt. (Quelle: Intel)

Die Trusted Execution Technologie wird laut Intel bisher nur von den Core-2-Duo-Prozessoren E6550, E6750 und E6850 unterstützt. Die Quad-Core-Modelle bieten noch keinen TXT-Support. Erst mit der Ende 2007 erwarteten 45-nm-Generation „Penryn“ verfügen dann auch die Vierkern-CPUs über das TXT-Feature. Als Voraussetzung für TXT müssen die Prozessoren gleichzeitig auch den VT-x-Befehlssatz für die CPU-Virtualisierung beherrschen. Zu den Chipsätzen mit TXT-Unterstützung zählen bei Intel der Q965 sowie der Q35.

Funktionsweise

Die Architektur von Intels Trusted Execution Technologie setzt sich aus sechs Schlüsselkomponenten zusammen:

Partitionierung: Die Trusted Execution Technologie erlaubt „normal“ ausgeführte und völlig abgeschirmte Applikationen. (Quelle: Intel)

Applikationen können in einem geschützten und voneinander isolierten Bereich ausgeführt werden. Eine geschützte Partition kann neben einer ungeschützten (legacy/ Standard-)Partition existieren. Applikationen für die Standardpartitionen funktionieren ohne Anpassungen, wie bereits bisher.

Überwachung von drei Faktoren

Beim Start einer Applikation werden drei wesentliche Faktoren überwacht:

Damit kann erstmalig ein sogenannter Fingerabdruck der Applikation erstellt, gesichert und bei der erneuten Ausführung verifiziert werden, um die Integrität der Daten zu gewähren. Stimmt der neue Fingerabdruck nicht mit dem ursprünglichen überein, können Maßnahmen vom Betriebssystem ergriffen werden. Im Zweifel erfolgt dann eine Blockierung der Programmausführung.

Microsofts Windows Vista unterstützt TXT, und die nächste „Next Generation Secure Computing Base“ (NGSCB) greift ebenfalls darauf zurück.

Damit das Verfahren rund um den Fingerabdruck funktioniert, werden neben dem Prozessor und Chipsatz auch noch ein Trusted Platform Modul (TPM v1.2) und speziell signierte Softwaremodule namens Authenticated Code (AC-)Module benötigt. TPM stellt sicher, dass das Gesamtsystem nicht kompromittiert wurde und somit sicher ist. Damit dies bereits beim Systemboot verifiziert werden kann, wird ein BIOS-AC im Flash-Chip hinterlegt und ein weiteres chipspezifisches von Intel geliefert, das sogenannte SINIT-AC. Mit Letzterem wird der Hypervisor oder allgemein ein Virtual-Machine-Manager (VMM) zertifiziert. Beide AC werden vom Prozessor in den AC-RAM geladen.

Virtuelle Maschinen: Standard- und geschützte Partitionen existieren parallel. (Quelle: Intel)

Unter Schutz: Grafik, Maus & Tastatur

Zugriffe auf die geschützte Partition beziehungsweise auf Hardware-Ressourcen wie den Speicher werden durch den Chipsatz und den Prozessor vorgängig verifiziert (Hardening). Dem Chipsatz kommt dabei die Rolle des Torwächters für Zugriffe auf das TPM v1.2, der Grafik, Tastatur, Maus (I/O) und den Speicher zu. Die Kommunikation der Applikation in der geschützten Partition mit der Außenwelt erfolgt gesichert und kann damit von nicht autorisierten Prozessen auf dem System zwar mitgeschnitten werden, aber nicht im Klartext.

Mit den Zertifikaten sollen die Integrität überprüft und das Gesamtsystem gemäß Intel in eine Unified Access Control (UAC-)Platform verwandelt werden. Ziele dieser neuer Technik sind, künftige Softwareattacken und Datenspionage von außen effektiver zu verhindern, und als Zielgruppe sieht man erst einmal Geschäftskunden und Unternehmen.

„Protected Input“ und „Protected Graphic“ sorgen außerdem dafür, dass Tastatur- und Mauseingaben und die Bildschirmausgaben nicht manipulierbar sind. Dafür werden die Daten bereits in der Tastatur und Maus verschlüsselt, und diese Daten gehen über USB zum Prozess. Analog erfolgt dies für die Grafikausgabe.

Die prozessorseitige Erweiterung von TXT wurde von Intel „Safer Machine Extensions“ (SMX) getauft. Die Befehle der SMX erlauben dem VMM, vertrauenswürdige virtuelle Maschinen zu starten, die in ihrem Speicherbereich isoliert sind (DMA Page Protection und Memory Protection Table). Bus-Snoop-Zugriffe können mittels TXT verhindert und definierte Speicherbereiche vom Caching ausgenommen werden.

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:

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:

Bitte nicht stören

Jeder Prozess im System unterbricht durch die üblichen Events wie Interrupts und Exceptions. Diese Ereignisse werden im Kontext der geschützten Partition von der Applikation behandelt oder können an den Domain-Manager delegiert werden – je nach Art des Ereignisses.

Im Worst-Case-Fall könnte es vorkommen, dass ein priorisiertes System-Event an einen Handler außerhalb der geschützten Partition geleitet wird und so der Domain-Manager nicht mehr dazu kommt, den Speicher aufzuräumen und damit Datenreste dort verbleiben.

Damit dies nicht passieren kann, sorgen Prozessor und Chipsatz dafür, dass in diesen Fällen der Speicher der geschützten Partition zuvor „gesäubert“ wird, bevor ein nicht autorisierter Prozess darauf zugreifen kann.

Who am I?

Als zentrales Element von TXT kommt dem Trusted Computer Modul TPM in Version 1.2 eine elementare Bedeutung zu. Die Autorisierung von TXT basiert auf einer Public-Key-Infrastruktur (PKI), wobei sich das aktuelle System mit dem TPM über den darin gespeicherten privaten und öffentlichen Schlüssel – dem Storage Root Key (SRK) – eindeutig identifiziert. Der private Teil des SRK ist nur im TPM hinterlegt und kann nicht ausgelesen und damit transferiert werden. Dies ist eine wichtige Voraussetzung, um das Gesamtsystem eindeutig zu identifizieren.

Das TPM bietet zwei Operationen rund um PKI an: „SEAL“ und „UNSEAL“, also verschlüsseln und entschlüsseln. Eine mit dem öffentlichen Schlüssel des TPM verschlüsselte Information kann nur mit dem privaten Schlüssel im TPM und damit nur von diesem TPM entschlüsselt werden.

Mit der „SEAL“-Operation werden neben den Nutzdaten auch eine Liste der PCRs in einem resultierenden Binärpaket (BLOB) verschlüsselt, und dieses kann an beliebiger Stelle gespeichert werden. Zur Erinnerung: In den PCRs sind für die Protected Execution (PE) der Prozessor und der Domain-Manager eindeutig identifiziert.

Die „UNSEAL“-Operation des TPM gibt die Nutzdaten aus dem BLOB erst dann frei, wenn die darin gespeicherten PCRs mit den aktuellen übereinstimmen. Nur der aktuelle Domain-Manager kann somit auf die Nutzdaten auch wieder im Klartext zugreifen.

Der Domain-Manager wird typischerweise seinen eigenen Schlüssel generieren und diesen mittels TPM verschlüsseln. Dieser Key wird dann benutzt, um die Daten der Applikationen in der PE zu verschlüsseln.

World of Trust

Eine kodierte Nachricht kann nur mittels des gleichen Domain-Managers dekodiert werden. Wenn der Benutzer einer Umgebung vertraut und damit einen Key generiert hat, den nur er kennt, so weiß Ersterer mit Sicherheit, dass es sich um die gleiche vertrauenswürdige Umgebung handelt, wenn der Key die gleiche Information zurückliefert, wie die ursprüngliche. Auch möchte man einer externen Gegenstelle versichern können, dass es sich um die gleiche vertraute Umgebung (Domain-Manager) handelt. Doch wie funktioniert dies, ohne vorher einen Schlüssel vereinbart zu haben, dem man vertrauen kann?

Hier kommt eine weitere Komponente von TXT, die „Attestation ATT“ zum Zug. Im Fall der Gegenstelle gibt es diesen Ablauf:

Mittels bekannten Verschlüsselungsmethoden beginnt die Gegenseite damit, einen Zufallsschlüssel - „Challenge“ genannt – zu generieren und diesen dem zu vertrauenden System zusammen mit speziellen Merkmalen zu senden. Das vertrauende System generiert mittels des TPM aus dem Challenge und den aktuellen PCRs ein Paket und signiert dies mit dem privaten TPM-Key. Das signierte Paket wird zusammen mit dem öffentlichen Schlüssel des TPM zurück an die Gegenstelle gesendet. Dort werden mittels der Merkmale und des gesendeten Public Key des TPM die Gültigkeit des Keys und die Signatur verifiziert.

Stimmt diese überein, kann die Gegenstelle die gesendeten PCRs mit den eigenen vertrauenswürdigen PCRs vergleichen und im Misstrauensfall die Verbindung unterbrechen.

Vertrauen durch Benutzer

Der zweite Fall, Vertrauen mittels Benutzer zu schaffen, ist komplizierter, da der Mensch nicht in der Lage ist, mathematische Operationen in diesem Umfang, wie sie die PKI erfordert, zu leisten. Daher gibt es drei verschiedene Methoden, wie ein Benutzer einem System vertrauen kann:

All diese Methoden dienen ausschließlich dazu, die Unversehrtheit des Systems zu gewährleisten. Nur wenn dies gegeben ist, sich an der Hardware (Prozessor, Chipsatz, TPM) nichts geändert hat, kann eine Applikation in einem gesicherten Umfeld installiert und ausgeführt werden, ohne dass ein Fremdzugriff möglich ist.

Aussicht

Auf der mit TXT aufgebauten hochsicheren „High Assurance Platform (HAP)“ laufen in Zukunft ungesicherte und gesicherte Betriebssystem-Instanzen wie Windows XP und Trusted Solaris. Organisationen wie die NSA, NASA und das US-Militär sind interessierte Abnehmer dieser Plattform.

Damit geht TXT für die Abschottung einzelner virtueller Maschinen tiefgreifend weiter, als beispielsweise IBM mit den ungesicherten LPAR.

Mit der Integration neuer Sicherheitsmodule in Hardware allein wird die Integrität allerdings nicht besser und der Datenschutz nicht erschöpfend. Der sorgsame Umgang mit vertrauenswürdigen und personenbezogenen Daten fängt bei jedem Einzelnen an. Mittels UAC könnte man auch jederzeit nachvollziehen, von welchem PC – und somit TPM – welche Daten stammen.

TCPA, also die Vertrauenswürdigkeit, ist ein zweischneidiges Thema, und so gibt es auch ambivalente Meinungen dazu. Als Beispiel sei hier das Digitale Rights Management (DRM) erwähnt, das dem Konsumenten eine nicht mehr den Spezifikationen konforme Audio-CD-ROM mit Kopierschutz beschert hat.

Das Interesse an diesen Technologien – wie auch den kopiergeschützten digitalen Schnittstellen – liegt primär auf der Seite der Unternehmen, nicht so sehr auf dem Schutz der Privatsphäre des Anwenders. Spätestens, wenn jedes IP-Paket eine Signatur der genutzten Plattform enthält, stellt sich die Frage der Vertrautheit erneut.

Intels TXT ist eine reine Hardwarelösung und speziell dafür angepasste Tastaturen, Mäuse und Grafikkarten sind notwendig. Keylogger sind dabei zwar scheinbar nutzlos, jedoch bleibt weiterhin die Softseite – hier der Mensch – unberücksichtigt. Auch Videoaufnahmen mit Subminiatur-Kameras der Tastaturein- und Videoausgaben lassen sich auf diese Art nicht so leicht vermeiden.

Letztendlich entscheidet auch die schmale Grantwanderung zwischen Komfort, Sicherheitsaufwand und den Kosten über den Erfolg oder Misserfolg einer Technologie. (cvi)