FDE with tpm support

Aus LaborWiki
Wechseln zu: Navigation, Suche
Kran
Diese Seite befindet sich noch im Aufbau bzw. wird gerade heftig überarbeitet. Vorsicht: Herumliegende Gedankenfetzen!
Dieser Banner ist hier dokumentiert.
         
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-rc1 ()
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 den 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-rc3. 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.


Das TPM

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.

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