FDE-with-TPM-support: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 16: Zeile 16:


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.
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.
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.
In diesem Tutorial wird der Aufbau und die Eigenschaften, sowie Komplettverschlüsselung mithilfe des TPM erläutert.


Zeile 23: Zeile 23:
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...  
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.
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.
Deswegen müssen private Daten geschützt werden. Keiner würde sich freuen, wenn Daten von seinem gestohlenen Notebook im Netz zu finden wären.
Sehr wichtige Firmendaten, Tagebucheinträge , Bilder und Videos von Verwandten, all dies sollte nicht in fremde Hände geraten.
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.  
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.
Die erste Lösung ist Cryptsetup (Opensource). Dieses Programm ist fast schon Standard in jeder Distrubution und gilt als sicher.
In diesen Tutorial nutze ich cryptsetup-1.1.0.0.
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.
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.
Die zweite Lösung ist Keyrona (Opensource) von der Sirrix AG in Bochum. Dieses Programm kann verschiedene Softwareimplementierungen 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.  
Es stellt den Kern des ganzen Verschlüsselungssystems da. Das TPM stellt dank trousers Schnittstelle, Keyrona alle wichtigen TPM Funktionen zur Verfügung.  


Zeile 47: Zeile 48:
'''
'''


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  
Es ist möglich, mittels Hardware Keylogger, die nötigen Schlüssel zum entschlüsseln des System zu bekommen. Es gibt keine Maßnahmen gegen diesen Angriff, außer man  
gießt den Laptop in Gusseisen ein.
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
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.
kann man die Einstellung 'Sanatize all free memory' aktivieren um Schlüssel (sowie Speicher) die nicht mehr gebraucht werden 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).
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:
'''Reverse Engeneering des TPM:
Zeile 57: Zeile 58:


Vor kurzen ist es einem Hardware Hacker gelungen, den EK der SmartCard TPM auszulesen. [http://www.wired.com/video/hack-a-sattv-smart-card/1813637610 Video]
Vor kurzen ist es einem Hardware Hacker gelungen, den EK der SmartCard TPM auszulesen. [http://www.wired.com/video/hack-a-sattv-smart-card/1813637610 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.
Da in unserem Verschlüsselungssystem 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.
Des weiteren ist der Angriff nicht Praxis relevant, vorher könnte man das ESD vernichten.


Zeile 69: Zeile 70:
'''
'''


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.
Es ist bekannt das in Intel 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.
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.  
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.
Andere Exploits wie z.B. der Bootbild Bug lassen auch evtl. Code Ausführung zu.
Mit neurer Technology 'Intel TXT' soll dieses Problem gelöst werden.
Mit neurer Technology 'Intel TXT' soll dieses Problem gelöst werden.


Zeile 78: Zeile 79:
'''
'''


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
Eine wirklicher Angriff ist es nicht, jedoch kann man Code, z.B. über SD-Karten Lesegeräte die intern verbaut sind, ausführen.
Code auszuführen wenn evtl. bugs im Code vorhanden sind!
Warum? Der TPM hasht 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:
'''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".
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.
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 Risiko ist da, aber in wie weit vertraut man TPM und allgemein Hardware? Meiner Meinung: ÜBERHAUPT NICHT!!!


=Das Trusted Platform Modul=
=Das Trusted Platform Modul=
Zeile 92: Zeile 93:
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.
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.
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's werden von verschiedenen Herstellern wie Atmel, Infineon und vielen Anderen 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=
=Das TPM auf Hardware Ebene=
Zeile 109: Zeile 110:
==I/O Bus==
==I/O Bus==


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


==Crypto Coprocessor==
==Crypto Coprocessor==
Zeile 171: Zeile 172:


Die Installtion von Keyrona kann einfach durch fertige Pakete oder per Source Code geschehen.
Die Installtion von Keyrona kann einfach durch fertige Pakete oder per Source Code geschehen.
Momentan wird noch an Patches gearbeitet, die Keyrona patchen damit es das wirkliche versiegeln der Hardware unterstützt.
Momentan wird noch an Patches gearbeitet, die Keyrona patchen, damit es das wirkliche versiegeln der Hardware unterstützt.
Keyrona siegelt momentan nur Zufallsdaten an den cryptsetup blob. Dazu später weiteres.
Keyrona siegelt momentan nur Zufallsdaten an den cryptsetup blob. Dazu später weiteres.


[https://projects.sirrix.com/trac/TPM-KM/wiki/Download Download Quelle]
[https://projects.sirrix.com/trac/TPM-KM/wiki/Download Download Quelle]


Danach muss die TPM software Umgebung installiert werden die Trousers heisst. Dann kann man noch tools installieren um mit dem TPM arbeiten zu können.
Danach muss die TPM-Software Umgebung installiert werden die Trousers heisst. Dann kann man noch Tools installieren um mit dem TPM arbeiten zu können.
Wichtig ist es für eine graphische Oberfläche den TPMManager von der Sirrix zu installieren. Diesen benutzt man dazu um TPM Owner also Besitzer zu werden, dann muss man auch noch
Wichtig ist es für eine graphische Oberfläche den TPM-Manager von der Sirrix zu installieren. Diesen benutzt man dazu, um TPM Owner also Besitzer zu werden.
den SRK erstellen und ihn auf das WELL_KNOWN_SECRET setzen.
Dann muss man auch noch den SRK auf das "WELL_KNOWN_SECRET" setzen.


Trousers:
Trousers:
Zeile 186: Zeile 187:
  apt-get install tpm-tools
  apt-get install tpm-tools


TPMManager:
TPM-Manager:
  [https://projects.sirrix.com/trac/tpmmanager/wiki/Download Download Quelle]
  [https://projects.sirrix.com/trac/tpmmanager/wiki/Download Download Quelle]
  Downloaden und *.deb installieren.
  Downloaden und *.deb installieren.


Der Kernel muss wie folgt konfiguriert und neu kompilliert werden:
Der Kernel muss, wie folgt konfiguriert und neu kompilliert werden:


  Device Drivers ->
  Device Drivers ->
Zeile 198: Zeile 199:
           <M> "name" TPM Interface
           <M> "name" TPM Interface


Am besten alle Treiber "name" als Modul aktivieren, weil man evtl. den Hersteller seines eigenen TPM's nicht bekannt ist.
Am besten alle Treiber "name" als Modul aktivieren, weil man evtl. der Hersteller seines eigenen TPM's nicht bekannt ist.
Für Cryptsetup müssen noch der Cryptoloop support, Kryptographische Algorithmen usw. im Kernel aktiviert werden.
Für Cryptsetup müssen noch der Cryptoloop support, Kryptographische Algorithmen usw. im Kernel aktiviert werden.
Danach macht man ein reboot und startet folgende Programme und lädt das Modul:
Danach macht man ein reboot, startet folgende Programme und lädt das Modul:


  modprobe tpm_name
  modprobe tpm_name
Zeile 207: Zeile 208:


Dort nimmt man den TPM in Besitz indem man ein Password vergibt "Take Ownership"
Dort nimmt man den TPM in Besitz indem man ein Password vergibt "Take Ownership"
Dann wechselt man noch mit "Change SRK" zum WELL_KNOWN_SECRET damit Keyrona damit arbeiten kann.
Dann wechselt man noch mit "Change SRK" zum "WELL_KNOWN_SECRET" damit Keyrona damit arbeiten kann.


Nun ist alles eingerichtet um mit dem TPM und Keyrona io Operationen durchzuführen.
Nun ist alles eingerichtet um mit dem TPM und Keyrona io Operationen durchzuführen.
Zeile 213: Zeile 214:
==Verschlüsseln der Festplatte und kopieren der Daten==
==Verschlüsseln der Festplatte und kopieren der Daten==


Als erstes legen starten wir den Service:
Als erstes starten wir den Service:


  keyrona_keyproviderd -p
  keyrona_keyproviderd -p


Nun ändern wir noch schnell die script Einträge für die cryptsetup Verschlüsselung in:
Nun ändern wir noch schnell die Script Einträge für die cryptsetup Verschlüsselung in:
  /etc/keyrona/scripts/create_cryptsetup_luks.sh
  /etc/keyrona/scripts/create_cryptsetup_luks.sh



Version vom 3. März 2010, 19:47 Uhr

         
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 Daten von seinem gestohlenen Notebook im Netz zu finden wären. 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 fast schon 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 Softwareimplementierungen 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. Es gibt keine Maßnahmen gegen diesen Angriff, 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 (sowie Speicher) die nicht mehr gebraucht werden 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üsselungssystem 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 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 Bug lassen auch evtl. Code Ausführung zu. Mit neurer Technology 'Intel TXT' soll dieses Problem gelöst werden.

Not hashed Hardware Attack:

Eine wirklicher Angriff ist es nicht, jedoch kann man Code, z.B. über SD-Karten Lesegeräte die intern verbaut sind, ausführen. Warum? Der TPM hasht 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. TPM's werden von verschiedenen Herstellern wie Atmel, Infineon und vielen Anderen 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 Bussysteme.

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

Aufsetzen eines TPM und cryptsetup geschützten Systems

In diesem Teil wird die Einrichtung des versiegelten Systems beschrieben.

Voraussetzungen

1. Ein TPM der im BIOS aktiviert ist.

2. Eine weitere externe oder interne Festplatte auf der das neue System aufgesetzt werden soll.

3. Ein bereits vorhandenes Betriebssystem (besser ist das) oder eine live CD.

Installation von Programmen und Kernelkonfiguration

Die Installation von Cryptsetup ist durch einen Paketmanager oder per Source Code installation durchzuführen.

Ubuntu:

apt-get install cryptsetup

Gentoo:

emerge -av cryptsetup

Die Installtion von Keyrona kann einfach durch fertige Pakete oder per Source Code geschehen. Momentan wird noch an Patches gearbeitet, die Keyrona patchen, damit es das wirkliche versiegeln der Hardware unterstützt. Keyrona siegelt momentan nur Zufallsdaten an den cryptsetup blob. Dazu später weiteres.

Download Quelle

Danach muss die TPM-Software Umgebung installiert werden die Trousers heisst. Dann kann man noch Tools installieren um mit dem TPM arbeiten zu können. Wichtig ist es für eine graphische Oberfläche den TPM-Manager von der Sirrix zu installieren. Diesen benutzt man dazu, um TPM Owner also Besitzer zu werden. Dann muss man auch noch den SRK auf das "WELL_KNOWN_SECRET" setzen.

Trousers:

apt-get install trousers

Tools:

apt-get install tpm-tools

TPM-Manager:

Download Quelle
Downloaden und *.deb installieren.

Der Kernel muss, wie folgt konfiguriert und neu kompilliert werden:

Device Drivers ->
   Character Devices ->
      <*> TPM Hardware Support ->
         <*> TPM Interface Spezifikation 1.2
         <M> "name" TPM Interface

Am besten alle Treiber "name" als Modul aktivieren, weil man evtl. der Hersteller seines eigenen TPM's nicht bekannt ist. Für Cryptsetup müssen noch der Cryptoloop support, Kryptographische Algorithmen usw. im Kernel aktiviert werden. Danach macht man ein reboot, startet folgende Programme und lädt das Modul:

modprobe tpm_name
tcsd
tpmmanager

Dort nimmt man den TPM in Besitz indem man ein Password vergibt "Take Ownership" Dann wechselt man noch mit "Change SRK" zum "WELL_KNOWN_SECRET" damit Keyrona damit arbeiten kann.

Nun ist alles eingerichtet um mit dem TPM und Keyrona io Operationen durchzuführen.

Verschlüsseln der Festplatte und kopieren der Daten

Als erstes starten wir den Service:

keyrona_keyproviderd -p

Nun ändern wir noch schnell die Script Einträge für die cryptsetup Verschlüsselung in:

/etc/keyrona/scripts/create_cryptsetup_luks.sh

Danach legt man einen Administrator in Keyrona an:

keyrona_manager -i ca

Anlegen von einem Benutzer an den wir an die Verschlüsselung binden:

keyrona_manager -u cu

Ein verschlüsseltes Volume erstellen und den Benutzer an das Volume binden:

keyrona_manager -v cv
keyrona_manager -v astv

Neue Root Partition mounten und altes System kopieren:

keyrona_mount -m -u username -v volumename -p /pfad/to/mount
rsync -a bin dev etc home lib media opt root sbin selinux srv usr var /pfad/to/mount/
cd /pfad/to/mount/
mkdir proc sys mnt boot tmp
chmod a+rwx tmp
chmod a+t tmp

Andere Partitionen wie /boot /home etc. auf die neue Festplatte clonen.

Initramfs erzeugen und Trusted Grub installieren

Die Initramfs muss mit einigen Programmen, Bibliotheken und Konfigurationsdateien erweitert werden.