710 likes | 825 Views
Unumgehbarkeit, Tamper Resistance und Trusted Computing Base. PG 450. Entwurf und Implementierung eines Prototyps zur zustandsabhängigen Zugriffskontrolle und -rechteverwaltung. Überblick. Einleitung 1.1 Motivation 1.2 Bestehende IT-Infrastruktur 1.3 Angriffsszenarien
E N D
Unumgehbarkeit,Tamper Resistance undTrusted Computing Base PG 450 Entwurf und Implementierung eines Prototyps zur zustandsabhängigen Zugriffskontrolle und -rechteverwaltung Christian Blichmann, Marc Seitz
Überblick • Einleitung 1.1 Motivation 1.2 Bestehende IT-Infrastruktur 1.3 Angriffsszenarien 1.4 Lösungsansätze Christian Blichmann, Marc Seitz
Überblick • Personal Secure Booting mit AEGIS/sAEGIS 2.1 Ziele 2.2 Arbeitsweise AEGIS/sAEGIS 2.3 Bootstrap-Prozess in 7 Schritten 2.4 Grundannahmen 2.5 Angriffsszenarien 2.6 Aktueller Stand Christian Blichmann, Marc Seitz
Überblick • TCG und Trusted Computing Base 3.1 Organisation 3.2 TCG-Spezifikationen 3.3 Missverständnisse 3.4 Ausblick 3.5 Microsofts NGSCB • Java und .NET 4.1 Architektur 4.2 Sandboxing, Digital signierte Klassen und Policies 4.3 Schlussfolgerungen für SDSD-System Christian Blichmann, Marc Seitz
Überblick • Anwendungsfälle im SDSD-System 5.1 Ideale Umgebung 5.2 Störfaktoren und Lösungen 5.3 Fazit • Schlussbetrachtung Christian Blichmann, Marc Seitz
1. Motivation http://ls6-www.cs.uni-dortmund.de/issi/teaching/lectures/04ss/pg450/ http://www.dilbert.com/ Christian Blichmann, Marc Seitz
1. Einleitung 1.1 Motivation • Konventionelle Betriebssysteme (Windows, Linux, MacOS, etc.) sehr komplex • Stark fehleranfällig • Lassen sich nicht vor Manipulation absichern • Maximale Sicherheitsstufe EAL3 (Common Criteria) • Vgl.: Bankkarten EAL4 oder EAL4+ • Sichere Hardwarebasis wünschenswert • Zertifizierte Komponenten • Unumgehbare Sicherheitssysteme (Idealfall) Christian Blichmann, Marc Seitz
1. Einleitung 1.2 Bestehende IT-Infrastruktur • Angriffe erfolgen meist von „innen“ • Kontrolle durch den Benutzer erwünscht • Ungesicherter Bootvorgang • Jeder kann Hardware- oder Softwarekomponenten unbemerkt modifizieren • Ungesicherter Betriebssystemstart • Login häufig ungesichert • Fehlendes Sicherheitsbewusstsein • Sorgloser Umgang mit Zugangsdaten • Keine Rechteverwaltung Christian Blichmann, Marc Seitz
1. Einleitung 1.2 Bestehende IT-Infrastruktur • Unsichere Laufzeitumgebung • Speicherschutz kann ausgehebelt werden • Buffer-Overflows • Exploits • Programme zur Laufzeit kompromittierbar Christian Blichmann, Marc Seitz
1. Einleitung 1.3 Angriffsszenarien • Hinreichend bekannt: • Viren • Trojaner • Würmer • Social Engineering • Backdoors • Password-/Network-Sniffer • Masterpasswörter • Clear CMOS Jumper • … Christian Blichmann, Marc Seitz
1. Einleitung 1.4 Lösungsansätze • Personal Secure Booting • Trusted Computing Group • Common Criteria (ISO/IEC 154080) • Evaluation Assurance Level (EAL) • Aktuell maximal Stufe 3 • Sandboxing • Proprietäre Systeme (Multics, EROS, Birlix, …) • “Security through obscurity” Christian Blichmann, Marc Seitz
2. Personal Secure Booting http://www.missl.cs.umd.edu/Projects/sebos/main.shtml http://www.linuxbios.org http://www.citi.umich.edu/ Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.1 Ziel: • Sicheres Booten des Systems, bis OS Kontrolle übernimmt • Alle Komponenten sind zertifiziert • Kryptographische Speicherung der Zertifikate auf Smartcards • Teile des BIOS müssen vertrauenswürdig sein (siehe 2.4 - Grundannahmen) Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.2 Arbeitsweise AEGIS/sAEGIS • Administrator oder autorisierter Benutzer generiert Hashwert (MAC) der Bootstrap-Komponenten und aus diesem ein Zertifikat C • Autorisierter Dritter (z.B. Trustcenter) signiert C mit seinem privaten Schlüssel • C wird in der Komponente selber gespeichert, wenn möglich, sonst im Flashspeicher des Motherboards Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.2 Arbeitsweise AEGIS/sAEGIS • Ausführung des Komponenten-internen Codes (z.B. Firmware, Grafik-BIOS etc.) nur wenn • C nicht abgelaufen • Signatur von C gültig • Hashwert (MAC) übereinstimmt • Integritätsgarantie gilt nur für den Systemstart Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.3 Bootstrap Prozess in 7 Schritten • Power-on Self Test • BIOS Section 1 • BIOS Section 2 • Erweiterungskarten • GRUB Stage 1 • GRUB Stage 2 • Betriebssystemkern Christian Blichmann, Marc Seitz
BIOS BIOS BIOS BIOS Section Section Section Section 2 2 2 2 Zertifikate BIOS1, BIOS2, Zertifikate BIOS1, BIOS2, Zertifikate BIOS1, BIOS2, Zertifikate BIOS1, BIOS2, Erweiterungskarten, GRUB1 Erweiterungskarten, GRUB1 Erweiterungskarten, GRUB1 Erweiterungskarten, GRUB1 BIOS BIOS BIOS BIOS Section Section Section Section 1 1 1 1 POST 2. Personal Secure Booting • POST (Power-on Self Test) • Prozessor führt Selbsttest durch • Startet die Boot-Sequenz • BIOS Section 1 • Enthält Grundfunktionen zur Integritätsüberprüfung (MD5, SHA1 und RSA) • Überprüft sich selbst und BIOS Section 2 • Bootet Section 2 falls erfolgreich Christian Blichmann, Marc Seitz
2. Personal Secure Booting • BIOS Section 2 • Überprüft ROM der Erweiterungskarten durch Zertifikate • Startet die ROMs der Erweiterungskarten • Lädt den Primary Boot-Block (GRUB Stage 1) von Festplatte und überprüft ihn* • Bei der Intel x86-Architektur ist der Master Boot Record (MBR) auf 512 Byte beschränkt, daher die Unterteilung in zwei Stages Christian Blichmann, Marc Seitz
Smartcard Smartcard Kernel Kernel - - und und Anwendungs Anwendungs - - MACs MACs GRUB GRUB Stage Stage 2 2 Zertifikat GRUB Zertifikat GRUB Stage Stage 2 2 GRUB GRUB Stage Stage 1 1 Erweiterungskarten Erweiterungskarten BIOS BIOS Section Section 2 2 Zertifikate BIOS1, BIOS2, Zertifikate BIOS1, BIOS2, Erweiterungskarten, GRUB1 Erweiterungskarten, GRUB1 2. Personal Secure Booting • GRUB Stage 1 • Lädt und verifiziert GRUB Stage 2 • Benutzt die Routinen aus BIOS Section 1 Christian Blichmann, Marc Seitz
Betriebssystemkern Betriebssystemkern Smartcard Smartcard Kernel Kernel - - und und Anwendungs Anwendungs - - MACs MACs GRUB GRUB Stage Stage 2 2 Zertifikat GRUB Zertifikat GRUB Stage Stage 2 2 GRUB GRUB Stage Stage 1 1 Erweiterungskarten Erweiterungskarten 2. Personal Secure Booting • GRUB Stage 2 • Lädt Betriebssystemkern und verifiziert diesen • Verifiziert die „Verification Tools“ des Kernels • Mounted Dateisystem • Lädt die MAC von der Smartcard und verifiziert damit die Startdateien Christian Blichmann, Marc Seitz
Anwendung 1 Anwendung 1 Anwendung 2 Anwendung 2 Verify Verify program program Betriebssystemkern Betriebssystemkern Smartcard Smartcard Kernel Kernel - - und und Anwendungs Anwendungs - - MACs MACs GRUB GRUB Stage Stage 2 2 Zertifikat GRUB Zertifikat GRUB Stage Stage 2 2 2. Personal Secure Booting • Kernel • Benutzt das „Verify Program“ zum verifizieren der wichtigen Systemdateien • Startet die Systemdienste Bootstrap-Vorgang ist damit abgeschlossen Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.4 Grundannahmen • „erste“ Komponente ist sicher • Benutzer muss Trustcenter glauben, Sicherheit nicht weiter gehend kontrollierbar • Bis dato noch keine unabhängige Lösung • sAEGIS nur auf dem Papier existent • Kryptographische Hashfunktionen sind kollisionsfrei, RSA kann nicht kompromittiert werden Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.4 Grundannahmen • Alices privater Schlüssel ist Mallory unbekannt • Mallory hat keinen Zugang zur Smartcard • BIOS Section 1 ist nicht manipulierbar • Kommunikation mit der Smartcard ist sicher Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.5 Angriffsszenarien • Mallory als Systemadministrator • Durch Einsatz von Smartcards lösbar;Benutzer muss Hardware zertifizieren (sAEGIS) • Modifikationen am System werden entdeckt • Modifikation von Systemkomponenten • Nur der Startvorgang ist abgesichert, kein Schutz vor Trojanern, Viren etc. • Benutzer kann Systemintegrität durch Reboot wiederherstellen Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.5 Angriffsszenarien • Diebstahl des PCs • Abgesichert durch Smartcard und PIN, sowie die kryptographischen Protokolle • PIN Diebstahl Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.6 Aktueller Stand • AEGIS wird mit Hilfe von LinuxBIOS implementiert • SEBOS Projekt (Security Enhanced Bootloader for Operating Systems) • Bootfähig für viele Betriebssysteme (Linux, FreeBSD, Windows 2000, etc.) Christian Blichmann, Marc Seitz
2. Personal Secure Booting 2.6 Aktueller Stand • sAEGIS erst prototypisch vorhanden • Noch kein offizieller Release • Soll später unter GPL erfolgen Christian Blichmann, Marc Seitz
3. Trusted Computing Base https://www.trustedcomputinggroup.org/ https://www.trustedcomputinggroup.org/about/members/ http://www.microsoft.com/resources/ngscb/default.mspx Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.1 Organisation Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.1 Organisation • Hervorgegangen aus der TCPA (Trusted Computing Platform Alliance) • Wegen Handlungsunfähigkeit (zwingend einstimmige Beschlüsse) aufgelöst • Nahezu alle vorherigen Mitglieder übernommen: • AMD, HP, IBM, Intel, Microsoft, Sony, Sun • ARM, ATI, Dell, Fujitsu Siemens, Infineon, Motorola, Nokia, NVIDIA, RSA Security, Transmeta, VeriSign, VIA, Vodafone, … Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.1. Organisation o f D i r e c t o r s B o a r d i r m a n J i m W a r d , I B M , P r e s i d e n t a n d C h a d v i s o r y C o u n c i l T e c h n i c a l C o m m i t t e e B e s t P r a c t i c e s A A d m i n i s t r a t i o n M a r k e t i n g W o r k g r o u p G r a e m e P r o u d l e r , H P J e f f A u s t i n , I n t e l I n v i t e d P a r t i c i p a n t s V T M , I n c . N a n c y S u m r a l l , I n t e l P u b l i c T P M W o r k G r o u p C o n f o r m a n c e W G D a v i d G r a w r o c k , I n t e l R e l a t i o n s M a n n y N o v o a , H P A n n e P r i c e , P R W o r k s P C C l i e n t W G T S S W o r k G r o u p n t e l M o n t y W i s e m a n , I D a v i d C h a l l e n e r , I B M E v e n t s M o b i l e P h o n e W G I n f r a s t r u c t u r e W G M a r k e t i n g P a n u M a r k k a n e n , N o k i a T h o m a s H a r d j o n o , V e r i s i g n S u p p o r t V T M , I n c . P e r i p h e r a l s W G P D A W G J i m W e n d o r f , P h i l i p s J o n a t h a n T o u r z a n , S o n y e r v e r S p e c i f i c W G S U s e r A u t h W G L a r r y M c M a h a n , H P P o s i t i o n K e y L a s z l o E l t e t o , R a i n b o w G R E E N B o x : E l e c t e d O f f i c e r s i r s A p p o i n t e d b y B o a r d B L U E B o x : C h a S t o r a g e S y s t e m s x : R E D B o C h a i r s N o m i n a t e d b y W G , R o b e r t T h i b a d e a u , A p p o i n t e d b y B o a r d S e a g a t e C G B L A C K B o x : R e s o u r c e s C o n t r a c t e d b y T Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.2 TCG-Spezifikationen 3.2.1 TPM-Basisfunktionen 3.2.2 Funktionen im Detail 3.2.3 Trusted Software Stack Christian Blichmann, Marc Seitz
Packaging Trusted Platform Module (TPM) Non-Volatile Storage Platform Control Register (PCR) Attestation Identity Key (AIK) Program Code I/O Communications Random Number Generator SHA-1 Engine Key Generation RSA Engine Opt-In Exec Engine 3. TCG und Trusted Computing Base 3.2.1 Basisfunktionen Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.2.2 Funktionen im Detail • Endorsement Key (EK) • Weltweit eindeutiger Schlüssel, soll Chip nie verlassen • Data Integrity Registers (DIR) • Speicherort für digital signierte Werte • Identitätserzeugung und -überprüfung • Jeder Identität wird eine Systemkonfiguration zugewiesen • Überprüfung mit Attestation Identity Keys (AIK) Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.2.2 Funktionen im Detail • Transportsicherheit • Stromverschlüsselung • Hash-Log aller Transaktionen • Revisionssicherheit • Log-Files durch Hardware-unterstützte Monotonic Counters nicht nachträglich manipulierbar • Platform Control Registers (PCR) TPM 1.2 • Speichern Hashwerte während des Bootvorgangs • „versiegeln“ von Speicherbereichen nach dem Booten Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.2.3 Trusted Software Stack • Aktuell TSS Spezifikation1.1 • Standardisierter Software-Stack für • CAPI CSP, PKCS#11, etc. • Spezialisierte Anwendungen • Schlüsselmanagement • Auditierung / Logging • Wrapper für die Funktionen des TPM Christian Blichmann, Marc Seitz
Remote Process Process 1 Process 2 TSS SPI User Process TSS Service Provider RPC Client TSS Service Provider TSS CSI RPC Client System Process TSS Core Services TPM DDLI TPM Device Driver Library TSS enables application development and interoperability TPM Device Driver Kernel Mode TPM 3. TCG und Trusted Computing Base 3.2.3 Trusted Software Stack Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.3 Missverständnisse • Digital Rights Management ausdrücklich kein Ziel • Benutzer behält Kontrolle • Kein Schutz vor physischer Manipulation • Diese wird in Zukunft allerdings immer schwerer Integration des TPM in Zwischenlayer von Motherboards • Keine Kontrolle, Überwachung oder Messungen • TPM sicherer Speicher für maschinenbezogene Daten • Weiß nicht, welche Software gerade läuft Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.3 Missverständnisse • Benutzer kontrolliert TPM • Opt-in beim Systemstart durch Management- Funktionen abschaltbar • Keine TCG Spezifikation bzgl. Betriebssystem, Systemkomponenten oder Anwendungen • Hierzu siehe NGSCB (3.5) Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.4 Ausblick • Hardware nach TPM-Spezifikation 1.2 • Neue Plattformen (PDAs, Handys, Server) • Best Practices Group für Datenschutzfragen • Sichere Bootsequenz (ähnlich. zu Kap. 2) • Trennung von Benutzer und Eigentümer durch Rollen: • TPM Owner, TPM User • Platform Administrator, Platform User • Operator Public • Direct Dynamic Attestation (DDA) • Beglaubigung ohne ein Trustcenter Zero-Knowledge-Beweis Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.5 Microsofts NGSCB 3.5.1 Überblick 3.5.2 Schlüsselfunktionen 3.5.3 TCG vs. NGSCB 3.5.4 Ausblick Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.5.1 Überblick Next Generation Secure Computing Base vormals „Palladium“ • Implementation eines TSS • Erweiterung der Win32/Win64-Architektur • Investitionssicherheit • Kompatibilität, „unsichere“ Anwendungen laufen • Für Microsoft einzige Möglichkeit • Erhaltung des Marktanteils Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.5.2 Schlüsselfunktionen • Starke Isolation von Prozessen • Schutz vor schädlichem Aktivitäten aus dem Kernel • Initialisiert durch Nexus und SSC • Sealed Storage • Speichert vertrauliche Informationen • Zugriff nur durch Nexus und Programm • Sicherer Kommunikationspfad zum Benutzer • Sperrt Trojaner und Keylogger aus • Nachweisbarkeit und Beglaubigung (Attestation) • Flexibles authentifizieren von Hard- und Software Christian Blichmann, Marc Seitz
TCG-Architektur NGSCB TCG-Process Conventional Process Agent Conventional Process TSS Service Provider Nexus Win32/Win64 Kernel TCG-Enabled Operating System NexusMgr.sys HAL HAL Hardware Hardware TPM CRTM SSC CRTM 3. TCG und Trusted Computing Base 3.5.3 TCG vs. NGSCB Christian Blichmann, Marc Seitz
3. TCG und Trusted Computing Base 3.5.4 Ausblick • NGSCB nicht einmal Alpha-Stadium • Erstes Release frühestens 2006 („Longhorn“) • Bis dahin noch deutliche Veränderungen • Zu früh für Spekulationen • Teil der Strategischen Planung Microsofts • Nexus wird irgendwann einziger Windows-Kernel • Standardmäßig wird NGCB deaktiviert sein • Planung sieht „austauschbaren Nexus“ vor • Neue Möglichkeiten für Open Source Christian Blichmann, Marc Seitz
4. Java, .NET http://www.microsoft.com/net/ http://www.java.sun.com Christian Blichmann, Marc Seitz
4. Java und .NET 4.1 Architektur • Bereits bekannt: • Quelltext • Compiler • Byte-Code • Zielsystem • Verifier • Maschinen-Code • Ausführung Java .NET HelloWorld.java HelloWorld.cs javac csc HelloWorld.class HelloWorld.exe Byte-Code Verifier .NET Runtime Execution Engine JVM JIT Native Native Christian Blichmann, Marc Seitz
4. Java und .NET 4.1 Architektur • Java und .NET prinzipiell sehr ähnlich • Alle Java-Spezifischen Aussagen lassen sich übertragen • Auch hier Klassen • zur Rechteverwaltung • für Policies • für Code-Signing über AuthentiCode • Ebenfalls Reflection API für nativen Methodenaufruf • Unterstützung von COM/DCOM Christian Blichmann, Marc Seitz
4. Java und .NET 4.1 Architektur • Wesentliche Unterschiede zu Java • Unterstützung von über 40 Programmiersprachen • VisualBasic.NET, JScript.NET, Python.NET, Delphi.NET, Oberon.NET, Haskell.NET, Cobol.NET… • Code wird • ins Portable-Executable Format kompiliert, Nativer Code dann zur Laufzeit generiert • oder im GAC (Global Assembly Cache) als nativer Code gelagert (beschleunigt Ausführung häufig benutzen Codes) Daher Zusammenfassung von JIT und Verifier • Anderes (zu Java inkompatibles) Maschinenmodell Christian Blichmann, Marc Seitz
4. Java und .NET 4.2 Java 1.0: Sandboxing • Byte-Code-Prüfung • Unterbindet Buffer-Overflows und Exploits in der VM • Kapselt laufende Software ein • Zugriff auf Betriebssystem und Hardware nur über definierte Schnittstellen der VM • Flexible Rechtevergabe über Packagejava.security • Klassen und Interfaces für die Authentifizierung • Code muss Rechte explizit anfordern • z.B. java.lang.SecurityManager.checkRead() Christian Blichmann, Marc Seitz