FDE with tpm support

Aus LaborWiki
Wechseln zu: Navigation, Suche
         
FDE with tpm support

Release status: experimental [box doku]

Logo tpm.png
Description Tutorial zu Full-Disc-Encryption with tpm support
Author(s)  Philipp
Last Version  0.1 ()
Platform  Linux
Download  http://projects.sirrix.com/trac/TPM-KM




Einleitung

Trusted Computing ist ein sehr bekannter Begriff in der IT Welt. Immer mehr wird das TPM ("Trusted Plattform Modul") als Standard in Laptops, Netbooks und PCs verbaut. Doch kaum einer nutzt das TPM privat. Vielmehr nutzen Firmen den Chip um sichere Datenübertragungen per SSL zu Firmenrechnern und -servern zu garantieren. Dies ist aber nicht die einzige Möglichkeit den TPM sinnvoll zu nutzen:Datenverschlüsselung und Hashen von Hard- und Software sind weitere Einsatzgebiete. In diesem Tutorial wird der Aufbau und die Eigenschaften, sowie Komplettverschlüsselung mithilfe des TPM erläutert.

Warum Komplettsystemverschlüsselung mit TPM ?

Festplattenverschlüsselungen sind heutzutage schon fast Standard in der Linuxwelt. Programme wie Cryptsetup, Truecrypt, Dm-crypt, LoopAES und Dateisysteme wie eCryptFS werden für diesen Zweck genutzt und erfreuen sich großer Popularität. Dennoch verschlüsseln nicht alle User ihre Rechner, Notebooks usw... Private Daten zu schützen ist ein wichtiger Prozess in der Digitalisierung. Immer mehr User haben ihr halbes Leben auf Festplatten gespeichert doch nur wenige kümmerts was mit Ihren Daten passiert. Deswegen müssen private Daten geschützt werden. Keiner würde sich freuen wenn sein gestohlenes Notebook mit den Intimen Photos von sich und/oder seiner Freundin im Netz finden lassen würden. Sehr wichtige Firmendaten, Tagebucheinträge , Bilder und Videos von Verwandten, all dies sollte nicht in fremde Hände geraten.

In diesem Tutorial stelle ich zwei Lösungen vor mit denen man die Integrität und Authentizität seiner Daten, bis zu einem bestimmten Grad gewährleisten kann. Dies ist nur dann möglich wenn man eines der Verschlüsselungsprogramme und das TPM nuzt.

Die erste Lösung ist Cryptsetup(Opensource), dieses Programm ist schon fast Standard in jeder Distrubution und gilt als sicher. In diesen Tutorial nutze ich cryptsetup-1.1.0.0. Es hat einige Verbesserungen erhalten und besitzt nun auch endlich die Möglichkeit den Hash Algorithmus auszuwählen.

Die zweite Lösung ist Keyrona(Opensource) von der Sirrix AG in Bochum. Dieses Programm kann verschiedene Verschlüsselungsprogramme und Dateisysteme die Kryptographie integrieren, nutzen. Es stellt den Kern des ganzen Verschlüsselungssystems da. Das TPM stellt dank trousers Schnittstelle, Keyrona alle wichtigen TPM Funktionen zur Verfügung.

Bekannte Sicherheitsprobleme

Intel Adavanced Management Technology:

Nach der Hackerin Joana Rutkowska lässt sich ein Rootkit über DMA in den Intel AMT speicher laden. Dieses wird trotz augeschalteter Intel AMT Funktion, durch einen gehookte AMT Funktion ausgeführt. Bisher ist mir noch nicht bekannt ob der TPM den Speicher der Intel AMT hasht. Allerdings ist ein erfolgreicher Angriff nur bei dem Q35 Chipsatz bekannt.

Hardware Keylogger und Cold Boot Attacks:

Es ist möglich mittels Hardware Keylogger die nötigen Schlüssel zum entschlüsseln des System zu bekommen, gegen diese Attacke gibt es keine Chance sie zu preventieren außer man gießt den Laptop in Gusseisen ein. Cold Boot Attacks haben nur auf die Root Partition effekt, da ihr Schlüssel ständig sich im Speicher befindet. Eine extra Datenpartition schafft abhilfe wenn man noch zusätzlich grsecurity nutzt. Dort kann man die Einstellung 'Sanatize all free memory' aktivieren um Schlüssel die nicht mehr gebraucht werden(free memory) zu überschreiben. Nebenbei Cold Boot Attacks sind nur dann effektiv wenn man relativ schnell an das innere des Notebooks(Arbeitsspeicher) kommt, was sich bei manchen Notebooks relativ kompliziert erweisst(Thinkpad und Dell).

Reverse Engeneering des TPM:

Vor kurzen ist es einem Hardware Hacker gelungen, den EK der SmartCard TPM auszulesen. Video Da in unserem Verschlüsselungsschemata ein ESD 'External Storage Device' als Speicherort für den crypto blob genommen wird, bringt es dem Angreifer nichts den Schlüssel auszulesen. Des weiteren ist der Angriff nicht Praxis relevant, vorher könnte man das ESD vernichten.

Reset Attack:

Bei TPM Chip v.1.1b lässt sich eine reset Attacke durchführen die im laufenden Betrieb die PCR auf NULL zurück setzt und so sich einfach beliebig Werte in die PCR schreiben lassen. Dieser Angriff ist seit der TPM Spezifikation 1.2 nicht mehr möglich.

BIOS:

Es ist bekannt das in Intel produzierten BIOS exploits vorhanden sind, die es ermöglichen das BIOS zu updaten und somit die 'Chain of Trust' zerstören. Dadurch könnte man einen Keylogger in das BIOS implementieren oder bösere Dinge tun. Das TrustedCore BIOS welches in Thinkpads verbaut worden ist, soll dies verhindern. Es wird signiert und kann nicht durch ein unsigniertes BIOS ersetzt werden. Andere exploits wie z.B. der Bootbild exploit lassen auch evtl. code ausführung zu. Mit neurer Technology 'Intel TXT' soll dieses Problem gelöst werden.

Not hashed Hardware Attack:

Naja ne wirkliche Attacke ist es nicht jedoch kann man Code z.B. über SD-Karten Lesegeräte die Intern verbaut sind ausführen. Warum? Der TPM hashed vom BIOS den SD-Kartenschlot nicht mit also könnte man darüber versuchen Code auszuführen wenn evtl. bugs im Code vorhanden sind!

DMA, Netwerkkarte, Graphikkarte, Prozessor und alles andere was Speicher besitzt:

Es ist möglich in diesen Geräten Rootkits auszuführen oder sie zu manipulieren. Ich zitiere mal Joanna Rutkowska "Wenn ich nicht auf der Liste der 10 gefährlichsten Attentäter steht, braucht ihr euch darum keine Sorgen machen". Natürlich kann dies auch ein weiteres großes Angriffsgebiet sein, wo Intel schon versucht mit seiner TXT Technology schaden zu begrenzen. Jedoch fragt sich ob sowas überhaupt praxisnahe Angriffe sind. Das Risiko ist da, aber in wie weit vertraut man TPM und allgemein Hardware. Meiner Meinung überhaupt nicht!

Das Trusted Platform Modul

Das TPM ist ein kleiner Chip, der sich auf dem Mainboard oder auf einer extra Platine befindet. Er startet vor dem BIOS und ist somit eine der ersten Softwarekomponenten, die beim Rechnerstart geladen werden. Wird das TPM manipuliert oder entfernt, kann es sein, das der Rechner nicht mehr startet. TPMs werden von verschiedenen Herstellern wie Atmel, Infineon usw... hergestellt. Die Hersteller halten sich je nach TPM an bestimmte Spezifikationen. Diese Spezifikationen werden von der Trusted Computing Group vorgeschrieben.

Das TPM auf Hardware Ebene

In diesem Bild ist die spezifizierte TPM Hardware dargestellt. Diese wurde wieder durch die Trusted Computing Group vorgeschrieben. Hier ein Beispiel von Atmel:

Tpm hardware.png

TPM Architektur

Das TPM besteht aus einem LPC-Bus, der die einzelnen Komponenten miteinander verbindet. Diese Komponenten besitzen interne Sicherheitsabfragen um Manipulationen über den Datenbus auschließen zu können. Dies gilt aber leider nicht für alle Komponenten.

Lpc bus.png

I/O Bus

Protokoll de- und enkodierung für interne und externe Busse.

Crypto Coprocessor

Ist zur Verschlüsselung und Signierung da.

Asymmetrische Kryptographie:

- Schlüssel Generierung.

- Ver- und Entschlüsselung

- Hashen

RSA Engine

RSA wird zum Verschlüsseln und Signieren genutzt.

Signatur Operations

Macht interne und externe Signierung.

Symmetric Engine

Das TPM nutzt symmetrische Verschlüsselung für Authentifizierungs- oder Transportsitzungen.

-> One Time Pad (standard MGF1)

-> AES , wenn es implementiert ist.

Der TPM nutzt keine symmetrische Verschlüsselung für Nachrichtenverschlüsselung!

Secure Boot Scheme

Sealing

Tpm decrypt scheme.png

Unsealing

Tpm encrypt scheme.png