Verteilte Systeme Sicherheit - Prof. Dr. Oliver Haase
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Einführung ‣ weitere Anforderung neben Verlässlichkeit (zur Erinnerung: Verfügbarkeit, Zuverlässigkeit, Funktionssicherheit (Safety) und Wartbarkeit) → Sicherheit vor Angriffen von außen (Security) ‣ Sicherheit umfasst: • Vertraulichkeit (Confidentiality): System gibt Informationen nur an autorisierte Parteien → lesender Zugriff • Integrität (Integrity): System lasst Änderungen nur durch autorisierte Parteien zu → schreibender Zugriff 2
Sicherheitsbedrohungen 1) Abfangen (intercept) • unautorisierter Zugriff auf Dienst oder Daten, z.B. - Abhören von Kommunikation - Illegales Kopieren von Daten nach Eindringen in Dateisystem 2) Stören (interrupt) • Daten/Dienste beschädigen, unzugreifbar machen, zerstören, z.B. - Denial of Service Attack 3
Sicherheitsbedrohungen 3) Verändern (modify) • Abändern von Diensten/Daten, z.B. - schadhafter Dienst, der Aktivitäten des Benutzers aufzeichnet 4) Einbringen (fabricate) • Hinzufügen falscher Daten / Aktivitäten, z.B. - zusätzlicher Eintrag in Passworddatei oder DBMS • manchmal möglich durch erneutes Senden einer abgefangenen Nachricht → Replay Attack Sicherheitsrichtlinien (Security Policies) definieren, welche Entitäten (Benutzer, Dienste, Rechner) welche Aktivitäten durchführen dürfen. 4
Sicherheitsmechanismen ‣ Verschlüsselung ‣ Authentisierung • handelt es sich tatsächlich um die vorgegebene Entität? ‣ Autorisierung • hat die Entität das Recht, die gewünschte Aktivität durchzuführen? ‣ Überprüfung (Auditing) • Nachverfolgung, wer worauf zugegriffen hat • Keine direkte Massnahme zur Abwehr von Angriffen, sondern zur Aufklärung und Verfolgung → durch Abschreckung indirekte Schutzmassnahme 5
Kontrollfokus ‣ beschreibt, wo sich der Fokus der Schutzmechanismen eines Systems befinden: • direkter Schutz der Daten, z.B. Integritätsbedingungen in DBMS aus: [Tanenbaum, van Steen. Verteilte Systeme: Grundlagen und Paradigmen] 6
Kontrollfokus • Fokus auf Zugriffskontrolle: für jede Operation wird spezifiziert, von wem sie ausgeführt werden darf. aus: [Tanenbaum, van Steen. Verteilte Systeme: Grundlagen und Paradigmen] 7
Kontrollfokus • Fokus auf Benutzer und Rollen: Nur bestimmten Rollen wird Zugriff auf die Daten gewährt. aus: [Tanenbaum, van Steen. Verteilte Systeme: Grundlagen und Paradigmen] 8
Sicherheit: Schichten ‣ Kombination von Kommunikationsschichtenmodell und Plattform für VS (siehe Vorlesung verteilte Architekturen) ‣ In welchen Schichten Sicherheitsmechanismen benötigt werden, hängt vom Vertrauensmodell ab, d.h. ob in die Sicherheit niedrigerer Dienste vertraut wird. 9
Kryptografie ‣ Sender verwendet Verfahren E und Schlüssel KE, um P zu verschlüsseln: • C = E(KE, P) ‣ Empfänger verwendet Verfahren D und Schlüssel KD, um C zu entschlüsseln: • P = D(KD, C) ‣ Passiver Eindringling kann nicht einfach lesen (→ aber: Existenz der Nachricht an sich hat schon Informationsgehalt!) ‣ Aktiver Eindringling kann nicht einfach Nachrichten ändern oder erzeugen 11
symmetrische Verschlüsselung ‣ KE = KD = K → D(K, E(K,P)) = P ‣ erfordert Verwaltung eines eigenen Schlüssels pro Kommunikationspartner ‣ zahlreiche Verfahren, z.B. • DES (Data Encryption Standard): US-amerik. Verschlüsselungsstandard, Ergebnis einer NSA-Ausschreibung, nicht sicher aufgrund geringer Schlüssellänge (56-Bit) • AES (Advanced Encryption Standard): Nachfolger von DES, Schlüssellänge 128, 160, 192, 224 oder 256 Bit. • Blowfish: Public Domain, Schlüssellänge zwischen 32 und 448 Bit, verwendet von GNU Privacy Guard und Cryptographic File System (CFS). • Twofish: Nachfolger von Blowfish, Public Domain, Schlüssellänge 128, 192 oder 256 Bit, verwendet in FreeOTFE, GNU Privacy Guard, TrueCrypt, KeePass, CrossCrypt, DiskCryptor, dm-crypt 12
asymmetrische Verschlüsselung ‣ Schlüsselpaar bestehend aus privatem Schlüssel K- und öffentlichen Schlüssel K+, so dass • D(K-, E(K+, P)) = P und • D(K +, E(K-, P)) = P ‣ Nur ein Schlüsselpaar pro Besitzer, da öffentlicher Schlüssel geteilt werden kann. ‣ Privater Schlüssel darf nicht aus öffentlichem Schlüssel berechnet werden können ‣ typische Verfahren: • RSA • Merkle-Hellman • Chor-Rivest 13
sichere Kanäle ‣ Client-Server-Systeme basieren auf der Annahme sicherer Kanäle: • Authentisierung von Server und Client, Nachrichtenintegrität, Vertraulichkeit • feststellen, ob ein Klient autorisiert ist, eine bestimmte Anfrage zu senden ‣ Techniken zum Aufsetzen eines sicheren Kanals: 1) mit Hilfe gemeinsamer Schlüssel 2) unter Verwendung eines Key Distribution Center (KDC) 3) mittels asymmetrischer Schlüsselpaare 14
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels Alice möchte sicheren Kanal zu Bob aufbauen, sendet ihre Identität A. 15
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels Bob antwortet mit Challenge RB (Zufallszahl), die Alice korrekt verschlüsseln soll. 16
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels Alice antwortet mit verschlüsselter Challenge; KA,B → gemeinsamer geheimer Schlüssel 17
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels dito in umgekehrter Richtung 18
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels 19
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels ‣ Variante: verkürzt auf 3 Schritte 20
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels ‣ Reflektionsangriff: Chuck gibt Bob gegenüber vor, Alice zu sein. C kennt KA,B nicht, und kann deshalb die Challenge RB nicht beantworten. 21
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels ‣ Reflektionsangriff: Chuck gibt Bob gegenüber vor, Alice zu sein. C startet eine andere Sitzung mit B’s Challenge RB und kennt anschließend die Antwort darauf. 22
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels ‣ Reflektionsangriff: Chuck gibt Bob gegenüber vor, Alice zu sein. de r n i c h t in n i e r t n k t i o m ? ri f f fu W a r u n san g an t e . ek t i o a l v ar i Refl Or i gi n C kann nun die erste Sitzung erfolgreich beenden. 23
Aufsetzen eines sicheren Kanals 1) auf Basis eines gemeinsamen Schlüssels ‣ Reflektionsangriff: Chuck gibt Bob gegenüber vor, Alice zu sein. ‣ Sicherheitsprobleme mit der 3-Schritt-Variante: • C darf B’s Challenge RB verwenden - Abhilfe: Clients verwenden z.B. ungerade Zahlen, Server gerade Zahlen • B gibt wertvolle Information preis bevor C authentisiert ist. 24
Aufsetzen eines sicheren Kanals 2) mit Hilfe eines Key Distribution Center (KDC) ‣ Jeder Kommunikationspartner verwaltet nur einen gemeinsamen geheimen Schlüssel mit KDC 25
Aufsetzen eines sicheren Kanals 2) mit Hilfe eines Key Distribution Center (KDC) ‣ Variante: KDC sendet A ein Ticket 26
Aufsetzen eines sicheren Kanals 3) mit Hilfe asymmetrischer Schlüssel ‣ B entschlüsselt A’s Challenge, sendet selbst eines sowie einen Sessionschlüssel. 27
Digitale Signaturen ‣ für Nachrichtenintegrität (A sendet Nachricht an B): • B (und kein Dritter unterwegs!) kann erhaltene Nachricht nicht verändern; • A kann nicht leugnen, Nachricht gesendet zu haben. ‣ Beispielanwendungsgebiet: E-Commerce ‣ Nachricht digital signieren: • A verschlüsselt Nachricht mit KA- verschlüsseln • Wenn B Nachricht mit KA+ entschlüsseln kann, dann muss sie zuvor mit KA- verschlüsselt worden sein 28
Digitale Signaturen Öffentlicher Privater Schlüssel Schlüssel von Bob von Bob KB+ KB- ‣ Signatur und Verschlüsselung können kombiniert werden ‣ Bob stellt durch Vergleich von m und KA -(m) fest, dass Alice tatsächlich der Sender sein muss. 29
Digitale Zertifikate ‣ Elektronisches Dokument, das durch eine digitale Signatur einen öffentlichen Schlüssel an einen Namen (Schlüsselinhaber) bindet ‣ In einer Public Key Infrastructure (PKI) gehört die Signatur einer Certificate Authority (CA). ‣ Digitale Zertifikate können genutzt werden, um öffentliche Schlüssel zu tauschen und die Authentizität der Sender sicherzustellen. 30
Transport Layer Security (TLS) ‣ Authentisierungsprotokoll für sichere Internet- Kommunikation ‣ ehemals Secure Socket Layer (SSL) ‣ fügt eine sichere Transportschicht zwischen Transport- und Anwendungsschicht ein 31
Transport Layer Security (TLS) Übereinkunft über kryptographische und Komprimierungsverfahren 32
Transport Layer Security (TLS) Server schickt Client sein von CA (Certification Authority) erstelltes Zertifikat, das seinen öffentlichen Schlüssel enthält. 33
Transport Layer Security (TLS) Clientauthentisierung nur, wenn vom Server verlangt, siehe 1. Phase. 34
Transport Layer Security (TLS) Client schickt Server einen zufällig erzeugten Sitzungsschlüssel. 35
Sie können auch lesen