Trusted Computing How to build a trusted boot September 14, 2010
Notiz am Rande Atari Gründer Nolan Bushnell There is a stealth encryption chip called a TPM that is going on the motherboards of most of the computers that are coming out now. What that says is that in the games business we will be able to encrypt with an absolutely verifiable private key in the encryption world which is uncrackable by people on the internet and by giving away passwords which will allow for a huge market to develop in some of the areas where piracy has been a real problem.
Worum es in dem Vortrag nicht geht
Worum es in dem Vortrag geht Motivation Einleitung Verwendung von Trusted Computing während des Bootvorgangs (Trusted Boot) Bekannte Sicherheitsprobleme Keyrona Weitere Funktionen des TPM
Motivation Warum wollen wir Trusted Computing und somit auch den Trusted Boot nutzen? Der Vorteil beim Trusted Computing liegt in der Möglichkeit ein Trusted Boot zu bauen. Dieser Trusted Boot garantiert, das kein unsignierter Code oberhalb des BIOS level geladen wird. Das heisst, dass es in Kombination mit Festplattenverschlüsselung, erweitertes Schlüsselmanagement ermöglicht und auch die Integrität des Bootvorgangs belegen kann.
Einleitung
Einleitung Trusted Computing heisst soviel wie vertrauenswürdiges Arbeiten mit dem PC. Welches durch einen Microcontroller 8bit Risc CPU erreicht werden soll. Früher gab es eine Intitution namens TCPA, jetzt TCG Trusted Computing Group. Diese gab Spezifikationen des TPM s vor. Version 1.1, 1.1b, 1.2 Firmen wie z.b. Atmel, Infineon, ST Microelectronics, Intel produzierten in Ihren Interesse TPM s.
Ein Atmel TPM
TPM Aufbau von Atmel
TPM Architektur
Kryptographic Co. Processor Dieser Prozessor ver- und entschlüsselt Daten, kann aber auch signieren. Der TPM verwendet symetrische und asymetrische Kryptographie. Die symetrische Kryptographie wird jedoch nur intern zur Verschlüsselung von Authentisierungsdaten und Kommunikationskanälen genutzt. Die asymetrische Kryptogrpahie verschlüsselt Datenblöcke ausßerhalb des TPM. Algorithmen: RSA XOR AES
Kryptographic Co. Processor Das verschlüsseln/entschlüsseln unterscheidet man in 2 Arten. Binding: Ver- und entschlüsseln mit den Standard RSA Algorithmus. Die Schlüsselgröße entspricht meist 2048bit. Sealing: Ver- und entschlüsseln wird nach dem RSA-ES-OAEP Schema durchgeführt. Dabei können die PCR Werte (SHA-1 Hashes, 160bit) mit einfließen.
Key Generation Generiert die symetrischen und asymetrischen Schlüssel. Das heisst er lädt sich Zufallszahlen aus dem RNG Modul, erzeugt das Schlüsselpaar, setzt AuthData, verschlüsselt das Schlüsselpaar mit dem SRK und lagert es auf ein Speichermedium aus.
HMAC Der Hash-based Message Authentification Code schützt die TPM interne Kommunikation vor Verlust der Integrität und Authenzität. Dabei ist zu beachten, dass die sendende Einheit das Erzeugen der geschützen HMAC Nachricht durchführt.
RNG Der Zufallszahlengenerator des TPM kann ein PRNG oder TRNG sein. Als seed wird somit z.b. thermischen Rauschen von elektronischen Bauteilen genutzt. Diese Zufallszahlen werden für die TPM interne Schlüsselerzeugung verwendet, können aber auch durch ein Kommando von außerhalb abgerufen werden.
SHA-1 Engine Die SHA-1 Engine implementiert die Hashfunktion SHA-1. Sie wird hauptsächlich von der HMAC Komponente und für die Aktualisierung der PCR Werte verwendet. Die Hardware Implementierung ist sehr langsam, deswegen empfiehlt sie sich nicht für die Chain of Trust.
SHA-1 Engine
Platform Configuration Register Die PCR sind Konfigurations Register die SHA-1 Werte speichern bis zum nächsten Shutdown oder Reboot speichern. Diese Hashes werden benötigt um einen Chain of Trust zu erzeugen und können somit die gesamte Platform Konfiguration speichern.
PCR Liste
Power Detection Die Power Detection überwacht den momentanen Power Zustand des PC s. Das heisst es wird berichtet wenn der Rechner herunter fährt, rebootet oder suspended. Der TPM benötigt diese Informationen um Suspend und Hibernate zu ermöglichen. Des weiteren werden in bestimmten states nur eingeschränkter Zugriff auf TPM funktionen gewährt.
Opt-In Der TPM besitzt zur Kontrolle durch den Eigentümer die Möglichkeit, Betriebszustände zu definieren. Diese werden dann im nicht flüchtigen Speicher gesichert. Dies geschieht im BIOS sowie als auch auf Betriebssystem. Die Betriebszustände des TPM werden in drei Zustandspaare aufgeteilt, diese ermöglichen: Disabled/Enabled - Inaktiv,Aktiv sichtbar der TPM ist vorhanden. Deactivated/Activated - vollständig abgeschaltet,eingeschaltet. Unowned/Owned - Eigentümer nicht vorhanden,vorhanden.
Execution Engine Die Execution Engine führt low-level Code vom LPC Bus aus und schützt gleichzeitig den Zugriff auf den nicht flüchtigen Speicher.
Non Volatile Memory Im nicht flüchtigen Speicher befinden sich: Endorsement Certificate Endorsement Key Storage Root Key AuthData TPM Permanent Flags Attestination Identity Key Programm Code
Keys
Volatile Memory Im flüchtigen Speicher befinden sich: PCR-0... PCR-23 RSA Key Slot-0... RSA Key Slot-9 Key Handles Auth Session Handles
Key Load Scheme
Trusted Boot
Verwendung von Trusted Computing während des Bootvorgangs. Was ist ein Trusted Boot? Ein Trusted Boot ist die Bezeichnung für einen Bootvorgang der ab dem BIOS eine Chain of Trust vorweist. Das heisst, dass sämtlicher in den Arbeitsspeicher geladene Code ab dem Start des BIOS signiert wurde. Dabei unterteilt man in den Static Root of Trust for Measurement und Dynamic Root of Trust for Measurement.
Static Root of Trust for Measurement Um vor dem BIOS sämtlichen Code zu signieren benötigt man ein kleines Programm welches die SHA-1 Funktion des TPM nutzt, sich selbst hasht und den nächsten Teil des nachfolgenden ausführbaren Codes. Dieses Programm nennt sich Core Root of Trust for Measurement, es befindet sich im Flashspeicher des BIOS oder auf einen EEPROM. Danach übernimmt der nächste geladene Code das hashen des nächsten ausführbaren Codes, z.b. das BIOS.
Dynamic Root of Trust for Measurement Eine neue Technologie(Intel TXT) die dazu dient, Code in einer isolierten Umgebung wie z.b. ACRAM in der CPU, auszuführen. Diese Technologie arbeitet auf low-level Niveau und ermöglicht DMA Protection.
Verwendung von Trusted Computing während des Bootvorgangs. CRTM: Startet die Chain of Trust und wird somit vor dem BIOS ausgeführt. Chain of Trust: Sichert das kein unsignierter Code in den Arbeitsspeicher geladen wird. SRTM: Trusted Boot(Highlevel) umfasst BIOS, BIOS Konfiguration, Option ROM s, CRTM und weiter darüber. DRTM: Trusted Boot(Lowlevel) umfasst BIOS, Soutbridge und Northbridge.
Trusted Boot unter Linux Voraussetzungen: Trusted Platform Modul Trusted Core Bios Trusted Bootloader Angepasste Initramfs Kernelspace: Kernel TPM Treiber Userpace: Trousers, Applikationen Optional: Integrity Measurement Architecture
TPM und BIOS Im BIOS gibt es meist den Eintrag Sicherheit indem man den TPM und auch Intel TXT (falls vorhanden) aktivieren kann. Es reicht den TPM auf den Zustand aktiviert zu setzen.
Kernel Treiber Im Kernel müsst ihr die Einträge: Device Drivers Character Devices TPM Hardware Support TPM Interface Spezifikation 1.2 name TPM Interface
Trusted Grub Den Trusted Grub könnt ihr euch kostenlos runterladen und durch ein Shellskript sehr einfach installieren. Die Installation weicht nicht vom normalen Grub ab!
Initramfs Ein Shellskript zum Bau der Initramfs mit Keyrona stelle ich demnächst auf der Wikiseite bereit. Wer nicht warten will, kann die aktuelle Initramfs im Labor Subversion nutzen.
Applikationen Zum arbeiten mit dem TPM benötigen wir folgende Programme: TrouSers (Software Stack) TPMmanager (TPM Management) Keyrona (Festplatten Verschlüsselung) Otional: tpm-tools tpm-keyring tpm-openssl-engine
IMA Die Integrity Measurement Architecture soll die Integrität des Betriebsystems sichern. Dies wird durch ein Kernelmodul erreicht, welches die Menge der PCR vergrößert indem eine Liste von PCR s angelegt wird. Diese Liste enthält jede gehashten ausgeführten Code und lässt sich durch einen Server überprüfen und validieren.
Bekannte Sicherheitsprobleme
Bekannte Sicherheitsprobleme Reverse Engeneering: dauert 6 Stunden, 200.000 dollar Kosten (Christopher Tranovsky, BlackHat 2010). Replay Attacken, bei manchen TPM. Dictionary Attacken, bei manchen TPM. SHA-1 Collision Attack: Kollisionen sind schon bei 2 52 Operationen zu finden (Eurocrypt 2009). Memory Image Attack aka Coldboot Attack: Über Firewire Schnittstelle möglich oder per USB-stick.
Bekannte Sicherheitsprobleme Intel Advanced Management Technology: Es sind Angriffe auf die Firmware der Southbridge möglich. Hardware Keylogger. TPM Reset Attack: Attacke resettet die PCR auf NULL (v1.1b). BIOS: Wenn der CRTM kompromitiert wird, zerbricht die Chain of Trust. BIOS exploits. SMM und Intel TXT exploits.
Keyrona
Keyrona Keyrona ist ein Programm welches Schlüsselmanagement und Festplattenverschlüsselung vereint. Es nutzt den TPM und kann somit Hybrid Verschlüsselung durchführen. Momentan unterstütze Funktionen: Binding/Unbinding Sealing/Unsealing Multifactor Authentification Schlüsselmanagement Volumemanagement Usermanagement Platformmanagement USB Token Management
Keyrona Keyrona unterstützt folgende Kryptographieprogramme: Truecrypt Cryptsetup EncFS DM-Crypt ecryptfs
Sealing mit Keyfile
Beispiel
Weitere Funktionen des TPM
Weitere Funktionen des TPM Migration Remote Attestination (DAA, Privac CA)
Migration Es ist möglich Bind und Signing Schlüssel eines TPM auf einen anderen TPM zu mirgrieren. Dabei werden diese Schlüssel auf einen externen Datenträger ausgelagert.
Remote Attestination Es gibt zwei Verfahren für die Remote Attestination. Die Direct Anonymous Attestination und Privacy CA Attestination.
Trusted Third Party
Quellen: Trusted Computing Systeme von Thomas Müller Äktuelle TCG Spezifikation Diverse Quellen...
End