9.3 Sichere Systeme
Transcrição
9.3 Sichere Systeme
9.3 Sichere Systeme IT-Sicherheit = Systemsicherheit + Netzsicherheit (umfangreiches Thema eigene Veranstaltung(en), aber siehe auch 6.4 für Teilgebiet Zugriffsschutz) Hier: ausgewählte Themen: bs-9.3 Sicherer Systemstart Trusted Computing Terra 1 9.3.1 Sicherer Systemstart Beachte: Ein hohes Maß an Systemsicherheit kann solange nicht erzielt werden, wie die Basis-Software nicht vertrauenswürdig ist. Wenn ein Angreifer beispielsweise das Sicherheitssystem von Java unterlaufen kann (Beispiel für Applets: ein manipulierter Browser), ist der ganze Aufwand, der unter Einsatz dieses Systems betrieben wird, sinnlos. Das wiederum macht eine Systemsoftware mit hohen Sicherheitseigenschaften und Authentizitätsgarantie erforderlich usw. bis herunter zum Systemstart (booting). bs-9.3 2 Terminologisches: trusted system, trusted platform, trusted computing base (TCB), ... ist ein System zur Unterstützung von Sicherheit, dessen einwandfreies Funktionieren „axiomatisch“ vorausgesetzt wird. „Wir gehen davon aus, dass das System korrekt ist und nicht unterlaufen werden kann.“ trustworthy system, ... vertrauenswürdiges System, verdient das Vertrauen, das ihm entgegengebracht wird - weil ein hochkarätiges Entwicklerteam dahintersteht und/oder weil es formal verifiziert wurde und/oder weil es schon lange zuverlässig gearbeitet hat ..... bs-9.3 3 Historisches zur Systemsicherung: Sicherheitskerne von Betriebssystemen: Ein kleiner Kern des Betriebssystems stellt Sicherheitsmechanismen zur Verfügung (hauptsächlich Zugriffsschutz), auf die sich alle anderen Teile des Systems abstützen (trusted kernel). Der geringe Umfang des Kerns erlaubt eine formale Verifikation (trustworthy). Beispiele: Secure Unix für DEC PDP-11 (UCLA 1979) KSOS-11 für DEC PDP-11 (Ford Aerospace 1979) KVM/370 für IBM/370 (SDC 1979) PSOS (SRI 1980) ..... bs-9.3 4 Krypto-Koprozessoren zur Unterstützung kryptographischer Maßnahmen zur Systemsicherung. Beispiele: physically secure coprocessors, CMU 1991 4758 secure coprocessor, IBM 1999 ..... Secure and Reliable Bootstrap AEGIS (Univ. of Pennsylvania, 1996) bs-9.3 Trusted Computing (Trusted Computing Group, 1999 - ...) ( 9.3.2) 5 AEGIS - eine Hardware/Software-Architektur für sicheren Systemstart (secure bootstrap): wie kann erreicht werden, dass beim Starten eines Systems vom ersten Augenblick an nur Code zur Ausführung kommt, dessen Authentizität gesichert ist? (Beachte: das Problem wird "wegdefiniert", wenn der Boot Code der TCB zugerechnet wird.) Kontext: IBM PC mit FreeBSD, relativ geringe Modifikationen, insbesondere durch Erweiterung des ROM Annahme: kein Angriff auf Motherboard oder BIOS bs-9.3 6 Ansatz: Die nacheinander zu ladenden Code-Teile sind signiert und werden schrittweise verifiziert. Zu diesem Zweck wird das BIOS im ROM modifiziert und ein Erweiterungs-ROM hinzugefügt für den Verifikations-Code und für Zertifikate. Normaler Startvorgang beim IBM PC: Power On/Self Test, danach Aktivierung des BIOS. BIOS veranlasst ggfls. Code-Ausführung in Erweiterungs-ROMs. BIOS durchsucht die Laufwerke (in hardwaremäßig festgelegter Reihenfolge) nach einer Platte mit boot block, lädt diesen in den Speicher und springt dorthin. Dieser Code lädt wiederum den Betriebssystem-Lader. Dieser lädt das Betriebssystem. bs-9.3 7 Was macht AEGIS stattdessen? Ein Teil des BIOS, zusammen mit dem AEGIS-ErweiterungsROM, ist für die Verifikation signierten Codes zuständig. Dies ist die einzige trusted software des Systems! Der restliche Teil des BIOS wird verifiziert (!). Dieser Teil übernimmt dann die Verifikation eventuell vorhandener zusätzlicher Erweiterungs-ROMs (!) und veranlasst die Ausführung des verifizierten Codes. Das BIOS durchsucht die Laufwerke, findet den boot block, lädt und verifiziert ihn, und führt ihn aus. Dies beinhaltet das Laden, Verifizieren und Starten des Laders. Dieser lädt den Betriebssystem-Kern und verifiziert ihn; damit ist das Betriebssystem sicher gestartet. bs-9.3 8 9.3.2 Trusted Computing Begriffe und Akronyme: TC TCPA TCG Trusted Computing (zu "trusted" vgl. 9.3.1) Trusted Computing Platform Alliance, jetzt TCG: Trusted Computing Group (IBM, Intel, Microsoft, ...) Palladium* die TC-Realisierung von Microsoft, jetzt NGSCB: NGSCB Next-Generation Secure Computing Base, erstes Ergebnis: BitLocker in Windows Vista (s.u.) LaGrande Intel's Hardware-Unterstützung für TC, jetzt „Trusted Execution Technology“ bs-9.3 * auch Edelmetall; auch Παλλαδιον = Standbild der Pallas Athene im antiken Troja 9 Ziele: (technisch; zu ökonomisch/politisch siehe 9.3.2.4) Hochfahren des Rechners mit Buchführung über die damit etablierte Systemkonfiguration (HW/SW) Betriebssystem mit Sicherheitskern ("nexus", lat.: Verbindung) bietet weitreichende Sicherheitsmechanismen Attestation: auf Anfrage (vom Benutzer, vom Anwendungsprogramm, aus dem Netz, ...) liefert das System seine Konfigurationsdaten, signiert mit dem privaten Schlüssel des Rechners (!) ... desgl. für die Konfigurationsdaten von Anwendungssoftware Verschlüsselung von Daten derart, dass sie nur auf einem bestimmten Rechner (mit bestimmter Konfiguration) und von einer bestimmten Anwendung (in bestimmter Version) entschlüsselt werden können bs-9.3 10 9.3.2.1 Hardware: der TPM-Koprozessor (Spezifikation: TCG Specification Architecture Overview) TPM Trusted Platform Module (im Jargon auch Fritz chip*) = nichtmanipulierbares Chip auf dem Motherboard besorgt Schlüssel-Erzeugung und -Speicherung, ferner Hashing, Verschlüsselung, Signieren, Verifizieren; ist an/abschaltbar durch "Eigentümer" * benannt nach dem US-Senator Fritz Hollings bs-9.3 11 bs-9.3 12 bs-9.3 (Quelle: TCG Specifications) 13 Register des TPM: PCRs Platform Configuration Registers (flüchtig) 16 à 160 Bits für Hashwerte über Software-Komponenten EK Endorsement Key (persistent) privater Schlüssel des TPM und damit "des Rechners" oder "des Eigentümers" SRK Storage Root Key (persistent) für Verschlüsselung von Speicherinhalten AIKs Attestation Identity Keys (persistent) weitere private Schlüssel für authentische Auskünfte bs-9.3 14 Weitere Komponenten des TPM: Random Number Generator für Erzeugung von Schlüsseln und Nonces RSA Key Generation für RSA-Schlüssel und symmetrische Schlüssel RSA Engine Ver/Entschlüsselung mit Storage Keys, Signieren/Verifizieren mit Signing Keys SHA-1 Engine Berechnung von Hashcodes ..... bs-9.3 15 Weitere Komponenten des TPM: Execution Engine Initialisierung; Verifizierung unter Einsatz der PCRs Input/Output Kommunikation mit der Außenwelt Opt-In bs-9.3 Interne Konfigurierung des TPM: verschiedene Möglichkeiten im Spektrum von inaktiv bis voll funktionsfähig 16 9.3.2.2 Sicherstellung der Systemintegrität Measurement = Information über Code (oder Daten) Hashwert darüber Sicherer Systemstart - oder lediglich Sicherung von Kenndaten, die das System identifizieren: jede Komponente, beginnend beim CRTM* Code im Boot ROM, ermittelt zunächst Hashwert der nächsten zu ladenden Komponente, bevor ihr die Kontrolle übergeben wird. * core root of trust for measurement bs-9.3 17 (Quelle: TCG Specifications) bs-9.3 18 Die Identität der so aufgebauten Plattform wird in einem Hashwert codiert, der sich aus einem "akkumulierenden Hashing" ("extending the digest") der Informationen X[i] (gemäß Measurement ) in einem PCR[n] wie folgt ergibt: PCR[n] := H ( PCR[n] , X[i] ) für i=1,2,... In der Regel wird die Folge der Informationen X[i] in einem Stored Measurement Log - SML - gespeichert. Die Speicherung muss nicht hundertprozentig sicher sein: Manipulationen werden über die Hashwerte erkannt, und bei Verlust ist eine Wiedergewinnung möglich. bs-9.3 19 9.3.2.3 Authentisierung der Plattform (integrity reporting) gegenüber Anwendungen: Attestation Integrity Report = digitale Unterschrift für eine SW-Komponente (oder Folge von Komponenten); genauer: ein signierter Wert (PCR[n], Nonce), signiert mittels eines Attestation Identity Key Typische Konfigurations-Anfrage liefert Konfiguration der SW-Komponente(n) Integrity Report dazu Credentials zur HW-Plattform (signiert vom Hersteller) (z.B. Endorsement Credential mit TPM-Daten und EK Public Key) bs-9.3 20 bs-9.3 (Quelle: TCG Specifications) 21 9.3.2.4 Quo vadit? Vorteile von TC: Allgemeine Verbesserung der Systemsicherheit, insbesondere im Netz, insbesondere bezüglich Authentizität und Integrität von Software und Daten Achtung: TC ist keine Allheilmittel gegen Schadsoftware (z.B. Trojanische Pferde!) oder unzuverlässige Software (Beispiel Pufferüberlauf!) bs-9.3 22 Kritik an TC: Eigentliche Motivation ist Durchsetzung eines beliebig rigorosen Umsetzung des Schutzes von Urheberrechten (Digital Rights Management - DRM). Bindung von Daten an Programme und von Programmen an Plattformen, die weit über das bisherige hinausgeht. Dadurch weitere Machtkonzentration bei Oligopolen. („customer lock-in“) Dem Benutzer wird die freie Verfügungsgewalt über seinen Rechner genommen. bs-9.3 23 Erwiderungen: Man kann den TPM ja abschalten . . . Auch Linux-Entwickler arbeiten an TC . . . Der Markt wird es richten . . . Lektüre: Spezifikation: TCG Specification Architecture Overview C. Eckert: IT-Sicherheit, Kap. 11.10 (gute Darstellung!) R. Anderson: Trusted Computing Frequently Asked Questions ... viele weitere Texte/Links in Zeitschriften, bei Wikipedia und bei Heise bs-9.3 24 9.3.3 Abschottung durch virtuelle Maschinen: Terra Ausgangspunkt: Anwendungen in getrennten Maschinen (realen oder virtuellen) laufen zu lassen ist sicherer als als nur in getrennten Prozessen in einer (realen oder virtuellen) Maschine. Zusätzlich: besondere Sicherungsmöglichkeit einer virtuellen Maschine ist wünschenswert: TVMM (trusted VMM) unterstützt „closed box“-VMs bs-9.3 T. Garfinkel et al.: Terra: a virtual-machine-based platform for trusted computing. Proc. 19. ACM Symp. on Operating System Principles, 2003 25 Fähigkeiten des TVMM zusätzlich zu „normalen“ VMMs: Selbst der Systemverwalter kann den Schutz einer closed box gegen Manipulationen nicht durchbrechen („root secure“). Eine Anwendung, die in einer closed box läuft, kann ihre Authentizität gegenüber einem entfernten Partner kryptographisch gesichert nachweisen („attestation“, vgl. 9.3.2.3). Zwischen einem menschlichen Benutzer und einer VM kann eine gesicherte Beziehung hergestellt werden („trusted path“). bs-9.3 26 Typische zu lösende Probleme: Hardware-Unterstützung: Sicherheits-Koprozessor, z.B. gemäß Spezifikation der TCG, sicherer Zeitgeber u.a. Sichere Treiber: schwieriges Problem – Treiber gibt es wie Sand am Meer, sie sind komplex und notorisch unsicher. Management der VMn: mit Operationen wie: VM erzeugen, virtuelles Gerät erzeugen, einer VM zuordnen, mit anderem (virtuellem oder realen) Gerät verbinden etc. bs-9.3 27 … und weiter: Unterstützung für attestation einer closed-box VM durch den TVMM: → closed-box VM übergibt ihren öffentlichen Schlüssel und eventuell weitere anwendungsspezifische Daten an TVMM; → TVMM plaziert diese Daten zusammen mit dem Hashwert des VM-Codes in ein Zertifikat, signiert dieses Zertifikat mit seinem privaten Schlüssel und gibt es an die VM zurück; → VM weist sich mit diesem Zertifikat gegenüber entfernten Partnern aus. bs-9.3 28 Prototyp von Terra - baut auf VMware auf - benutzt Linux in den VMs - X.509-Zertifikate (OpenSSL-Bibliothek), ohne Koprozessor für sicheres Booting - sichere Beispiel-Anwendung: Trusted Quake (Quake = Mehrpersonen-Online-Spiel, bei dem viel geschummelt wird!) bs-9.3 29 ENDE der Folien Betriebssysteme im WS 06/07 Empfohlene Fortsetzung im SS 07: Verteilte Systeme bs-9.3 30