Folien - Freie Universität Berlin
Transcription
Folien - Freie Universität Berlin
Schutz und Sicherheit Teil 3 Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012 - M. Esponda-Argüero 1 Kryptographie als Sicherheits-Tool - Sicherheit innerhalb von lokalen Rechnernetzen ist "relativ einfach" - ein Betriebssystem kann theoretisch alle Kommunikationskanäle kontrollieren. - Sobald ein Rechner nach außen kommuniziert, ist die Sicherheit des Systems nicht mehr so einfach zu garantieren. - Eine vertrauenswürdige Netzverbindung ist heutzutage nicht machtbar. - Eine verbreitete Lösung ist es, allen zu misstrauen und die Anzahl von Sendern und Empfängern mit Hilfe von Kyptographie zu beschränken. - M. Esponda-Argüero 2 Grundlegende Prinzipien der Kryptographie Zweck: • Nachrichten sicher durch ein unsicheres Medium zu senden. • Die Verschlüsselungs- und Entschlüsselungs-Algorithmen (Funktionen) sollen öffentlich sein. • Die Geheimhaltung hängt von den Parametern des Algorithmus ab, die als Schlüssel bezeichnet werden. • Ziel ist es, eine Nachricht oder Datei zu verschlüsseln, so dass nur autorisierte Personen diesen Chiffretext wieder entschlüsseln können. - M. Esponda-Argüero 3 Encryption Ein Verschlüsselungsalgorithmus besteht aus: Einer Menge K von Schlüsseln Einer Menge M von Nachrichten Einer Menge C von Chiffretexten (verschlüsselte Nachrichten) Einer Funktion E : K → (M→C). so dass für jedes k ∈ K, E(k) eine Funktion für die Generierung von Chiffretexte aus den Nachrichten ist. Einer Funktion D : K → (C→M). so dass für jede k ∈ K, D(k) eine Funktion für die Generierung von Nachrichten aus den Chiffretexten ist. - M. Esponda-Argüero 4 Encryption E und E(k) soll für beliebige k effizient berechenbar sein. D und D(k) soll für beliebige k effizient berechenbar sein. Grundlegende Eigenschaft: Gegeben sei ein Chiffretext c ∈ C. Ein Rechner kann m berechnen, so dass E(k)(m) = c nur wenn sie im Besitz von D(k) ist. - M. Esponda-Argüero 5 Grundlegende Prinzipien der Verschlüsselung Nachricht m EncryptionAlgorithmus E c = E(k)(m)) Verschlüsselte Nachricht DencryptionAlgorithmus D Schreibe Nachricht Encryption Schüssel k unsicherer Bereich Schüssel Austausch Decryption Schüssel k m = E(k)(c)) Nachricht Nachricht m - Lese Nachricht M. Esponda-Argüero 6 Symmetrische Kryptografie • Aus dem gegebenen Verschlüsselungsschlüssel kann der Entschlüsselungsschlüssel bestimmt werden und umgekehrt. • Das bedeutet E(k) kann von D(k) abgeleitet werden und umgekehrt. • DES (Data Encryption Standard) ist in den letzten Jahren der meist verwendete symmetrische Algorithmus gewesen. - M. Esponda-Argüero 7 Das DES-Algorithmus 64 Bits (chunk) cipher-block-chaining Erzeugt 16 Schlüssel 56 Bits Schlüssel Eingangspermutation K1 . . . K16 1. Verschlüsselungsschritt . . . S-Boxes 16. Verschlüsselungsschritt Ausgangspermutation - M. Esponda-Argüero 8 DES-Verfahrens Probleme des DES-Verfahrens Weil die Schlüssellänge nur 56 Bit beträgt, konnte DES bereits durch Brute-Force-Angriffe gebrochen werden, indem alle möglichen Schlüssel (ca. 72 Billiarden) getestet wurden - M. Esponda-Argüero 9 Symmetrische Kryptografie Nachfolger - Triple DES Triple Data Encryption Algorithm (TDEA) - DES wird 3 Mal wiederholt - c = E(k3)(D(k2)(E(k1)(m))) - 168 Schlüssel-Länge (3x56 Bits) - m = D(k1)(E(k2)(D(k1)(m))) - AES Advanced Encryption Standard. - Ab 2001 neue Standard - 128, 192 und 256 Schlüssel-Länge - 10-14 Verschlüsselungs-Schritt - M. Esponda-Argüero 10 Public-Key-Kryptografie Grundlegender Nachteil des DES-Verfahrens Der Sender und der Empfänger müssen beide im Besitz des gemeinsamen geheimen Schüssels sein. Um das Problem des Schlüsselumtausches zu umgehen, wird Public-Key-Kryptografie benutzt (Diffie und Hellman, 1976). Unterschiedliche Schlüssel für die Verschlüsselung und die Entschlüsselung werden verwendet. - M. Esponda-Argüero 11 Public-Key-Kryptografie Jeder Benutzer hat zwei Schlüssel, einen öffentlichen und einen privaten. Der offene Schlüssel wird für die Verschlüsselung verwendet und der private Schlüssel für die Entschlüsselung. Beispiel: RSA-Algorithmus (Rivest, Shamir und Adleman) Basiert auf der Tatsache, dass es effiziente Algorithmen gibt, die feststellen können, ob eine Zahl eine Primzahl ist, es aber keine effizienten Algorithmen gibt, die die Primfaktoren einer Zahl finden. - M. Esponda-Argüero 12 Asymmetrische Verschlüsselung Weil es praktisch unmöglich ist, D(kd , N) von E(ke , N) abzuleiten, muss E(ke , N) nicht geheim sein. E(ke , N) (oder einfach ke) ist die public key D(kd , N) (oder einfach kd) ist die private key N ist das Produkt von zwei großen zufälligen Primzahlen p und q (p und q können jeweils 512 Bits haben) Der Verschlüsselungsalgorithmus ist: E(ke , N)(m) = mke mod N, mit ke so dass kekd mod (p−1)(q −1) = 1 gilt Der Entschlüsselungs-Algorithmus ist: D(kd , N)(c) = ckd mod N - M. Esponda-Argüero 13 Asymmetrische Verschlüsselung Beispiel: Nehmen wir an p = 7 und q = 13 dann N = 7∗13 = 91 und (p−1)(q−1) = 72 Wir wählen ke eine relative Primzahl zu 72 und <72, ergebend 5 dann berechnen wir kd , so dass kekd mod 72 = 1, ergebend 29 Dann haben wir folgende Schlüssel Public key, (ke, , N) = (5, 91) Private key, (kd , N) = (29, 91) Die Verschlüsselung der Nachricht 69 mit dem public key ergibt die 62 (Chiffretext) Der Chiffretext kann mit dem private key entschlüsselt werden. - M. Esponda-Argüero 14 RSA-Algorithmus Beispiel Nachricht 69 695 mod 91 Schreibe Nachricht Encryption Schüssel k5,91 public key unsicherer Bereich 62 6229 mod 91 Decryption Schüssel k29,91 69 - private key Lese Nachricht M. Esponda-Argüero 15 RSA vs. DES - RSA ist viel sicherer als DES - RSA einmalige Anwendung von Mathematischen Funktionen vs. DES mehrfache Anwendung von Transformationen. - RSA fördert zwischen 100 und 1000 Mal mehr Rechenaufwand als DES. - RSA kann verwendet werden, um die Schlüssel für den DESAlgorithmus sicher zu übertragen. - RSA ist nicht für größere Datenmengen geeignet, sondern für Authentifizierung sehr gut geeignet. - M. Esponda-Argüero 16 Verteilung der Schlüssel - die Übergabe der Schlüssel beim symmetrischen Verfahren ist ein Problem. - machmal wir out-of-band gemacht (in Papierform). .- nicht immer praktikabel - die Schlüsselübergabe von Asymmetrischen Verfahren muss auch vorsichtig gemacht werden. man-in-the-middle-attack - M. Esponda-Argüero 17 Angriff auf Asymmetrische Verfahren Schreibe Nachricht Nachricht m Schüssel kbad EncryptionAlgorithmus E 3.E(kbad)(m) Lösung: Digitales Zertifikat 2.Öffentlicher Schlüssel Kbad Decryption Schlüssel kbad DencryptionAlgorithmus D Lese Nachricht Nachricht m 1 Öffentlicher Schlüssel Ke Decryption Schlüssel kd - DencryptionAlgorithmus D Man-in-the-middle M. Esponda-Argüero 18 Authentifizierung Ein Authentifizieruns-Algorithmus besteht aus folgende Komponenten: - Einer Menge K von Schlüsseln - Einer Menge M von Nachrichten - Einer Menge A von Authentifizierern (Authenticators) - Einer Funktion S : K → (M→A) so dass, für jedes k ∈ K, S(k) eine Funktion für die Generierung von Authentifizierer aus der Nachrichten ist. S und S(k) soll für beliebige k effizient berechenbar sein. - Einer Funktion V : K → (M×A→ {true, false}) so dass, für jedes k ∈ K, V(k) eine Funktion für die Verifizierung der Authentifizierer aus der Nachrichten ist. V und V(k) soll für beliebige k effizient berechenbar sein. - M. Esponda-Argüero 19 Authentifizierung - für eine Nachricht m kann ein Rechner ein Authentifizierer a ∈A so dass V(k)(m, a) = true erzeugen, nur wenn dieser im Besitz von S(k) ist. - - Rechner im Besitz von S(k) können Authentifizierer von Nachrichten erzeugen, so dass beliebige Rechner, die V(k) besitzen, die Authentifizierung verifizieren können. - es soll nicht machbar sein, S(k) aus dem Authentifizierer ableiten zu können. M. Esponda-Argüero 20 Authentifizierung - mit Hash-Funktionen Motivation: - Verschlüsselte Nachrichten können eigentlich nicht manipuliert werden. - mit Hilfe von Hash-Funktionen kann verifiziert werden, dass Nachrichten tatsächlich nicht manipuliert worden sind. - Hash-Funktionen können Datenblöcke mit fester Größe aus einer Nachricht m erzeugen. Hash-Funktion H( m ) erzeugt n-Bit Zahl (message digest) - M. Esponda-Argüero 21 Authentifizierung mit Hash-Funktionen Eigenschaften der Hash-Funktionen: - die Hash-Funktion H muss kollisionsfrei sein Wenn H(m) = H(m') ⇒ m = m' Es existiert kein m und m' so dass m = m' und H(m) = H(m') - soll nicht umkehrbar sein. - Verbreitete Message-Digest-Funktionen MD5 in MIT entwickelt, 128 Bit SHA-1 160 Bit Nachfolgerfunktionen SHA-2 und SHA-3 in Entwicklung - M. Esponda-Argüero 22 MAC-Authentifizierung Massage Authentication Code (MAC) verwendet symmetrische Verschlüsselung Einfaches Beispiel: - MAC definiert S(k)(m) = f (k, H(m)) - wobei f eine Einwegfunktion nach ihrem ersten Argument ist - k kann nicht aus f (k, H(m)) abgeleitet werden - Aufgrund des Kollitions-Freiheit von H können wir behaupten, dass keine andere Nachricht dasselbe MAC produziert. - - ein geeigneter Verifikations-Algorithmus ist V(k)(m, a) ≡ (f (k,m) = a) M. Esponda-Argüero 23 Digitale Signatur - asymmetrisches kryptografisches Verfahren - zu einer Nachricht wird eine Zahl berechnet - in dem Digitale-Signatur-Verfahren kann S(ks) aus V(kv) nicht abgeleitet werden - V ist eine Einwegfunktion - ks ist der öffentliche Schlüssel und kv ist der private Schlüssel - Betrachten wir die RSA-Digitale-Signatur - Digitale Signatur der Nachricht wir aus S(ks )(m) = H(m)ks mod N abgeleitet - Der Schlüssel besteht aus den Zahlen (d, N), in dem N das Produkt der zwei zufällig ausgewählten großen Primzahlen p und q ist - Der Verifizierungs-Algorithmus ist V(kv)(m, a) ≡ (akv mod N = H(m)) - - in dem kv die Gleichung kvks mod (p − 1)(q − 1) = 1 erfüllt M. Esponda-Argüero 24 Signatur von Programmen Software-Anbieter Applet Signatur Signatur-Erzeugung Benutzer HA = hash(Applet) Applet Signature = encrypt( HA) Signatur-Verifizierung Signatur H1 = hash(Applet) H2 = dencrypt( Signature) Wenn H1==H2 wird die Signatur akzeptiert Internet - M. Esponda-Argüero 25 SSL Verschlüsselung kann fast auf jeder Ebene (Layer) des ISO-Modells eingeführt werden. Beispiel: - SSL Secure Socket Layer - entwickelt von den Firmen Netscape und RSA Data Security - Beschränkt die Kommunikation auf nur zwei Rechner - Wird für die Kommunikation zwischen Webserver und Browser verwendet, wenn Kreditkarten-Transaktionen statt finden. - Asymmetrische Verschlüsselung für die Übergabe der Schlüssel - die für die Kommunikation mit Symmetrischer Verschlüsselung benötigt wird. - M. Esponda-Argüero 26 Benutzer Authentifizierung - entscheidet für die korrekte Identifikation von Benutzern - Alle Schutz-Systeme hängen von eine korrekten BenutzerIdentifizierung ab - Passworte müssen geheim gehalten werden - sollen oft verändert werden - sollen nicht leicht zu erraten sein - ungültige Login-Versuche sollen protokoliert werden - M. Esponda-Argüero 27 Authentifizierung • Der meist verwendete Authentifizierung-Mechanismus wird durch die Aufforderung vom Login-Namen und Passwort realisiert. • Das Passwortsystem ist die erste Verteidigung gegen Angreifer. • Die Login-ID wird für die DAC Discretionary Access Control verwendet • Der Eigentümer eines Objekts bestimmt, welche Rechte andere Benutzer über das Objekt haben. - M. Esponda-Argüero 28 Authentifizierung Das Passwortverfahren von UNIX-Systemen Salt-Wert 12 Bits Passwort 56 Bits Benutzer ID Verschlüsseltes Passwort Salt [Salt,0] Laden crypt(3) 11 Zeichen Laden eines Passworts - M. Esponda-Argüero 29 Authentifizierung Das Passwortverfahren von UNIX-Systemen Benutzer-ID Benutzer ID Verschlüsseltes Passwort Salt [Salt,0] Salt Passwort Crypt(3) Verschlüsseltes Passwort Vergleich Prüfen eines Passworts - M. Esponda-Argüero 30 Das Passwortverfahren von UNIX-Systemen - Veränderte DES (Data Encryption Standard) - Crypt(3) Einweg-Hashfunktion - sehr langsam - 12 Bit Salt-Wert aus der Uhrzeit abgeleitet - verhindert Passwort-Duplikate - verlängert das Passwort - Modifikation des Verschlüsselungsalgorithmus - 25 Wiederholungen - Bedrohungen - Kopieren der Passwortdatei - M. Esponda-Argüero 31 Sichere Hash-Salt-Schemas - Empfehlung in Linux, Solaris und FreeBSD - basiert auf das MD5-Hash-Algorithmus - MD5-crypt - Salt mit 48 Bits - keine Einschränkung der Password-Länge - erzeugt einen Hash-Wert mit einer Länge von 128 Bits - langsamer als crypt(3) - M. Esponda-Argüero 32 Sicherste Version eines Hash-Salt-Schemas - für OpenBSD entwickelt - Hash-Funktion basiert auf Blowfish symmetric block cipher - Bcrypt ist auch sehr langsam - Passworte bis 55 Zeichen - Salt-Wert mit 128 Bits - erzeugt einen Hash-Wert mit 192 Bits - Kostenvariable (Zeit um die Bcrypt Funktion zu berechnen) - die Kostenvariable kann je nach User-ID unterschiedlich gesetzt werden. - M. Esponda-Argüero 33 Sicherheitssoftware Spezielle Software-Tools, die die Rechteverwaltung des Betriebssystems erweitern. Beispiele: AppArmor (Linux) - Entwickelt von Novell - Basiert auf Datei-System SELinux (Linux) - Entwickelt von der NSA - Basiert auf Sicherheitslabeln, die Dateien mitgegeben werden - komplexer - M. Esponda-Argüero 34 Grundlegende Antivirentechniken Virenscanner finden die spezifischen Codestruktur in jeder infizierten Datei Überwachungssysteme (Monitoring) Überwachung des Systems auf ungewöhnliche Aktivitäten oder Operationen - M. Esponda-Argüero 35 Implementierung von Sicherheitssystemen - Sicherheit auf verschiedene Ebenen - Sicherheitspolitik sagt was geschützt werden soll - Das Vulnerability-Assessment vergleicht der wirklichen Status des Systems mit der Sicherheitspolitik - Intrusion-Detection-Systeme um Angriffe zu erkennen - durch Erkennung von Anomalien - durch Kontrolle der Signaturen - Virenschutz-Software - Buchhaltung und Protokollierung aller oder spezifischer System und Netzwerk-Aktivitäten - M. Esponda-Argüero 36 Intrusion-Detection-Systeme Der komplette Prozess unterteilt sich dabei in drei Schritte. • Wahrnehmung durch Sensoren, die Logdaten (HIDS) oder Daten des Netzwerkverkehrs (NIDS) sammeln. • Mustererkennung überprüft und verarbeitet die gesammelten Daten und vergleicht sie mit Signaturen aus der Musterdatenbank. • Reaktion - M. Esponda-Argüero 37 Intrusion-Detection-Systeme Quelle: Bundesamt für Sicherheit in der Informationstechnik http://www.bsi.bund.de/literat/studien/ids02/index.htm - M. Esponda-Argüero 38 Intrusion-Detection-Systeme Quelle: Bundesamt für Sicherheit in der Informationstechnik http://www.bsi.bund.de/literat/studien/ids02/index.htm - M. Esponda-Argüero 39 Angriffs-Trends - Webserver - Handys - Soziale Netze - Blogs - viele neue Geräte mit Betriebssystemen - ... - M. Esponda-Argüero 40 Diebstahl mit Laptops? Im April 2007 haben Kriminelle zum zweiten Mal mit einer Laptop und einem Sender den BMW X5 von Beckham öffnen und starten können. - M. Esponda-Argüero 41 3 Steganographie nur ein Bild Bild + Text von Hamlet, Macbeth, Julius Cesar, Der Kaufman von Venedig und König Lear. Es werden die Bits mit dem niedrigsten Stellenwert dafür verwendet. - M. Esponda-Argüero 42 Steganographie Die Katze ist in den letzten zwei Bits aller Pixel-Farben vom originalen Bild versteckt. - M. Esponda-Argüero 43 Literatur Ken Thompson. Reflections on Trusting Trust. Communications of the ACM 27, 8 (August 1984) pages 761-763. Eugene H. Spafford. Crisis and aftermath. Communications of the ACM 32, 6 (June, 1989) pages 678-687. Steven R. Lerman, James D. Bruce, and Jerome H. Saltzer. Teaching students about responsible use of computers. Communications of the ACM 32, 6 (June, 1989) page 704. Ross J. Anderson. Why cryptosystems fail. Communications of the ACM 37, 11 (November 1994) pages 32-40. - M. Esponda-Argüero 44