Vorlesung Sicherheit

Ähnliche Dokumente
Vorlesung Sicherheit

Vorlesung Sicherheit

Vorlesung Sicherheit

Vorlesung Sicherheit

Vorlesung Sicherheit

Vorlesung Sicherheit

Vorlesung Sicherheit

Vorlesung Sicherheit

Kryptologie. K l a u s u r WS 2006/2007, Prof. Dr. Harald Baier

Netzsicherheit 9: Das Internet und Public-Key-Infrastrukturen

Voll homomorpe Verschlüsselung

Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester Klausur

Effizienten MAC-Konstruktion aus der Praxis: NMAC Idee von NMAC:

Homomorphe Verschlüsselung

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Vorlesung Sicherheit

Die (Un-)Sicherheit von DES

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Vorlesung Sicherheit

Vorlesung Sicherheit

Vorlesung Sicherheit

6.3 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen. die Nachricht erreicht den Empfänger so, wie sie abgeschickt wurde

Public-Key-Verschlüsselung und Diskrete Logarithmen

Kryptographie und Komplexität

Vorlesung Datensicherheit. Sommersemester 2010

RSA Full Domain Hash (RSA-FDH) Signaturen

Einführung in die Kryptographie

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen

Kryptographie mit elliptischen Kurven

Kap. 2: Fail-Stop Unterschriften

Symmetrische und Asymmetrische Kryptographie. Technik Seminar 2012

Systemsicherheit 8: Das Internet und Public-Key-Infratrukturen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

9 Schlüsseleinigung, Schlüsselaustausch

Wiederholung: Informationssicherheit Ziele

Übung GSS Blatt 6. SVS Sicherheit in Verteilten Systemen

Aktuelle Bedrohungen im Internet

Kurze Einführung in kryptographische Grundlagen.

Aktuelle Sicherheitsprobleme im Internet

CPA-Sicherheit ist ungenügend

Kryptographie. ein erprobter Lehrgang. AG-Tagung Informatik, April 2011 Alfred Nussbaumer, LSR für NÖ. LSR für NÖ, 28. April 2011 Alfred Nussbaumer

RSA Full Domain Hash (RSA-FDH) Signaturen

PHP-5-Zertifizierung. Block 12 Security.

Grundlagen der Verschlüsselung und Authentifizierung (1)

In beiden Fällen auf Datenauthentizität und -integrität extra achten.

Prinzipien der modernen Kryptographie Sicherheit

Authentikation und digitale Signatur

Wiederholung. Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES

8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen

Technikseminar SS2012

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur

Sicherheit von ElGamal

Ein Überblick über Security-Setups von E-Banking Websites

Sicherheit von hybrider Verschlüsselung

ElGamal Verschlüsselungsverfahren (1984)

Erinnerung Blockchiffre

Übersicht. Vorlesung Netzsicherheit. Schutzziele Welche Schutzziele will ich? Wie sind diese definierbar?

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am

Einführung in die Kryptographie

Kryptographie und Komplexität

IT-Sicherheit: Übung 6

Vorlesung Sicherheit

3: Zahlentheorie / Primzahlen

Beweisbar sichere Verschlüsselung

Sicherer MAC für Nachrichten beliebiger Länge

Übungen zur Vorlesung Systemsicherheit

Kryptografie und Public-Key-lnfrastrukturen im Internet

Übungen zu. Grundlagen der Kryptologie SS Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159

Betriebssysteme und Sicherheit

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

IT-Sicherheit: Kryptographie

Vorlesung Sicherheit

Material zum Versuch. Kryptografie mit Bouncy Castle

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

Einführung in die Kryptographie ,

IT-Sicherheit Kapitel 3 Public Key Kryptographie

Digitale Signaturen. Sven Tabbert

Grundlagen der Kryptographie

Mitschrift Vorlesung Einführung in die Kryptographie vom 18. Januar 2011

Unterhalten Sie sich leise mit Ihrem Nachbarn über ein aktuelles Thema. Dauer ca. 2 Minuten

SSL/TLS. Präsentation zur Seminararbeit. im Seminar Internetsicherheit. Michael Hübschmann 26. Juni 2014 Betreuung: Dipl. Inf.

Secure Sockets Layer (SSL) Prof. Dr. P. Trommler

Einführung in Computer Microsystems

Lösung zur Klausur zu Krypographie Sommersemester 2005

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus?

Public-Key-Kryptographie

Terminologie. Kryptographie. Zielsetzungen in der Kryptographie. Geschichte der Kryptographie

IT-Risk-Management und Kryptographie

9.5 Blockverschlüsselung

Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester 2013.

Übungen zur Vorlesung Systemsicherheit

Angewandte Kryptographie. Mathematical Weaknesses of Cryptosystems

Beweisbar sichere Verschlüsselung

Wiederholung: Informationssicherheit Ziele

Musterlösung der Hauptklausur zur Vorlesung Sicherheit Sommersemester 2012

Digitale Unterschriften mit ElGamal

Hardcore-Prädikat. Definition Hardcore-Prädikat. Ziel: Destilliere Komplexität des Invertierens auf ein Bit.

Quantenkryptographie

Transkript:

Vorlesung Sicherheit Jörn Müller-Quade ITI, KIT basierend auf den Folien von Dennis Hofheinz, Sommersemester 2014 18.07.2016 1 / 54

Organisatorisches Wichtig: Klausuranmeldung nur noch bis 21.07 möglich! Vorlesung am Do.: Fragenstunde mit Prof. Müller-Quade, Alex & Björn Fragen können gerne vorher an uns per Mail gesendet werden! 2 / 54

Kummerkasten Übungsblatt 1: Fehler bei CTR? Ja, ist korrigiert! Einige Skriptverbesserungsvorschläge Danke! :) Hinweis: Skript wird weiterhin verbessert, beim Lernen vorsichtig sein! Socrative-Fragen überspringbar machen Geht leider nicht, bietet Socrative nicht an 3 / 54

Socrative: Kurze Umfrage https://b.socrative.com/login/student/ Room: SICHERHEIT 4 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 5 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 6 / 54

Motivation Bislang idealisierte Bausteine/Algorithmen betrachtet Insbesondere: ideale Implementierung unterstellt Frage: was kann bei Implementierung schiefgehen? Ziel nachfolgend: häufige Fehlerquellen erklären 7 / 54

Erinnerung Ziel: häufige Software-Fehlerquellen erklären Die fünf häufigsten Typen von Sicherheitsproblemen: (Buffer) Overflows (schon erklärt) Denial of Service (schon erklärt) Code Execution Cross-Site Scripting SQL Injection Bonus: schlechte Zufallsgeneratoren, schlechte APIs 8 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 9 / 54

Code Execution Ziel: lasse eigenen Code beim Opfer ausführen Beispiel: Buffer Overflow auf Stack (siehe letzte VL) Warum ist das schlimm? (Lese-/Schreib-)Zugriff auf anderes System erlangen Anderes System kontrollieren ( Botnetze) Andere impersonieren Überlappungen mit anderen Softwarefehlern Deshalb hier nicht weiter behandelt 10 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 11 / 54

Motivation Ziel: (JavaScript-)Code auf Rechner des Opfers ausführen Szenario: Opfer surft auf Websites, denen es vertraut Etwa: Opfer surft in Diskussionsforum einer seriösen Website Angriff: Angreifer postet Nachricht, die ausführbaren JS-Code enthält, als Forumsbeitrag Opfer ruft Beitrag ab, liest JS-Code, Browser des Opfers führt JS-Code aus 12 / 54

Motivation Missstand: Forenseite lässt Angreifer ausführbaren/ausgeführten JS-Code als Kommentar posten Warum ist das schlimm? JS-Code läuft in vertrauenswürdigem Kontext... hat Zugriff auf Cookies/Funktionen von grundsätzlich vertrauenswürdiger Foren-Website 13 / 54

Beispiel Szenario: Facebook-Nutzer besucht Pinnwand des Angreifers Angreifer hat auf seiner Pinnwand JS-Code platziert, der Facebook-Session-Cookie von Opfer an Angreifer sendet Effekt: Angreifer sieht mit Facebook-Session-Cookie für Facebook wie Opfer aus und kann Konto von Opfer kontrollieren Problem wurde 2010 behoben Andere Möglichkeit: Facebook-Wurm, der 1 sich das Opfer mit dem Angreifer befreunden lässt 2 und sich anschließend selbst an Freunde des Opfers sendet (Kommentarfunktion) 14 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 15 / 54

SQL Was ist SQL? (Structured Query Language) Sprache, um Abfragen von Datenbanken zu formulieren Beispiel: SELECT * FROM cd WHERE interpret = "Doktor Meta"; wählt alle CDs von Doktor Meta aus Nicht nur Queries möglich, sondern auch Anweisungen: DROP TABLE cd; löscht Datenbank aller CDs (aufpassen hiermit!) 16 / 54

Beispiel Beispiel: Nutzer wird nach Interpret gefragt Frage an Nutzer: Nach welchem Album suchen? Nutzereingabe über Webinterface, Adresszeile o.ä. PHP auf Webserver redet mit SQL-Server Was intern damit passieren könnte: $alb = $_GET[ album ]; sql_query($db, SELECT * FROM cd WHERE album = "$alb"; ); Erste Zeile setzt $alb auf HTTP-Parameter album Zweite Zeile kommuniziert mit SQL-Server, soll nach allen Alben mit Namen $alb suchen 17 / 54

Beispiel Beispiel: PHP-Skript, um nach von Benutzer gewähltem Album zu suchen: $alb = $_GET[ album ]; sql_query($db,"select * FROM cd WHERE album = $alb ;"); Erwartete Eingabe (Beispiel): Evil Mastermind Tatsächliche Eingabe: ; DROP TABLE cd; # Konsequenz: PHP-Code setzt zwei SQL-Anfragen ab 1 SELECT * FROM cd WHERE album = 2 DROP TABLE cd Zweite Anfrage löscht Datenbank aller CDs 18 / 54

SQL Injection Problem: Nutzereingaben werden intern weiterverarbeitet, ohne geeignet zu escapen Kann dazu führen, dass auf Server beliebiger SQL-Code ausgeführt wird Mögliche Effekte: Löschen von Datenbanken Datenzugriff auf andere Datenbank (z.b. DB aller Passwörter) Gegenmaßnahme: jede Nutzereingabe escapen/kontrollieren 19 / 54

SQL Injection: Demo (xkcd.com) 20 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 21 / 54

Schlechter Zufall Kryptographie braucht guten (d.h. unabhängig gleichverteilten) Zufall Besonders kritisch bei Schlüsselgenerierung (z.b. für PKE) Schlüssel einmal generiert, sehr oft benutzt Schlechter Zufall bei Verschlüsselung Chiffrat unsicher Schlechter Zufall bei Schlüsselgenerierung alle Chiffrate unsicher Viele mögliche Gründe für schlechten Zufall: fehlende Entropie, physikalischer Angriff, Implementierungsfehler 22 / 54

Was kann passieren? Erinnerung ElGamal-/DSA-Signaturen: pk = (G, g, g x ) sk = (G, g, x) Sig(sk, M) = (a, b) mit a := g e für zufälliges e und b als Lösung von a x + e b = M mod G Zweimal derselbe Zufall (d.h. dasselbe e) für Signaturen (a, b) und (a, b ) verschiedener Nachrichten M, M verwendet: a x + e b = M mod G a x + e b = M mod G Lineare Algebra liefert zunächst e und dann x (also sk!) Real: Sony hat für PS3 so Code signiert ( Linux auf PS3) 23 / 54

Was kann passieren? Schlechter Zufall bei Schlüsselgenerierung verheerend Im Extremfall nur, sagen wir, 2 16 mögliche Schlüsselpaare (Brute-Force-Suche über alle Schlüssel möglich) Leider realistisch: Debian-OpenSSL-Problem September 2006: Debian-Maintainer patcht OpenSSL-Paket, damit Valgrind-Analyse-Tool keine Zugriffe auf undefinierten Speicher meldet Problem: OpenSSL greift gezielt auf undefinierten Speicher zu, um Zufall für Schlüsselgenerierung zu erzeugen Effekt: Debian-OpenSSL-Schlüsselgenerierung nutzt (für anfällige Versionen) nur Prozess-ID (16 Bit) als Zufall Im Mai 2008 bemerkt und korrigiert 24 / 54

Schlechte APIs API (Application Programming Interface): Programmierschnittstelle Viele APIs kompliziert, unübersichtlich, ändern sich Ähnlich (strenggenommen keine API): Kommandozeilenoptionen von komplexen Programmen Typisches Vorgehen bei Versuch, unbekannte API zu nutzen 1 Rumprobieren 2 Versuchen, Dokumentation zu lesen 3 Vorwärtsblättern zu den Beispielen 4 Versuch, Beispiel auf eigene Bedürfnisse anzupassen 5 Sofort aufhören, sobald erwünschter Effekt eintritt Sehr problematisch bei kryptographischen APIs 25 / 54

Schlechte APIs Erinnerung RSA: (oder, besser:) pk = (N, e) sk = (N, d) C = M e mod N C = pad(m) e mod N Beispiel: https://github.com/saltstack/salt/commit/ 5dd304276ba5745ec21fc1e6686a0b28da29e6fc Verwendet eine RSA-Implementation API überlässt Wahl von e bei Schlüsselerzeugung dem Benutzer und erzeugt e nicht selbst Ursprüngliche wurde im Projekt e = 1 gewählt... 26 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 27 / 54

Zusammenfassung Häufig sicherheitsrelevante Probleme bei Implementierung Wiederkehrendes Problem: Eingabe (z.b. über Webinterface) wird nicht geeignet geparst/überprüft/escaped Ermöglicht Angreifer oft sogar, Code einzuschleusen Kryptographiespezifisch: schlechter Zufall, schlechte APIs Vermeidung der Probleme: Eingaben immer konservativ parsen, Standardmethoden/-APIs/-pakete benutzen 28 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 29 / 54

Allgemeine Hinweise Verschlüsselung benutzen Standardverfahren benutzen (RSA-/ECC-Varianten, AES, Keccak, TLS) Bei TLS in aktueller Version, mit aktuellen Patches Nicht: schnell selbst in obskurem Artikel vorgeschlagenes chaosbasiertes Verschlüsselungsverfahren implementieren 30 / 54

Bei Interesse... Veranstaltungen im kommenden Semester (WS16/17): Vorlesung: Beweisbare Sicherheit in der Kryptographie Vorlesung: Digitale Signaturen (mit Björn) Vorlesung: Asymm. Verschlüsselungsverfahren (mit Prof. Müller-Quade) Vorlesung: Signale und Codes Vorlesung: Kryptographische Wahlverfahren Vorlesung: Komplexitätstheorie mit Anw. in der Krypto Seminar: Pairing-basierte Kryptographie (mit Alex) Praktikum: Kryptographie & Datensicherheit (fast ausgebucht) Praktikum: Capture the flag -Praktikum Praktikum: KASTEL-Praktikum Sicherheit 31 / 54

Überblick 1 Kurzüberblick häufige Sicherheitslücken Erinnerung Code Execution Cross-Site Scripting SQL Injection Bonus: kryptographische Implementierungsprobleme Zusammenfassung 2 Allgemeine Bemerkungen 3 Überblick über die Vorlesung 32 / 54

Symmetrische Verschlüsselung Verschlüsselung: C = Enc(K, M) Entschlüsselung: Dec(K, C) = M One-Time-Pad C = M K (veränderbar, unhandlich) OTP unhandlich: Stromchiffre simuliert OTP Setze C = M G(K) für Pseudozufallsgenerator G G(K) := (b (1),..., b (n) ) mit (b (i+1), K (i+1) ) := SC(K (i) ) Beispiel: LFSRs (unsicher, deshalb LFSRs kombinieren) Stromchiffre schnell, braucht Synchronisation, verwundbar 33 / 54

Blockchiffren Blockchiffre besteht aus E : {0, 1} k {0, 1} k {0, 1} k (invertierbare Funktion), die in Betriebsmodus genutzt wird Beispiele Betriebsmodus: ECB: C = (C 1,...) mit C i = E(K, M i ), simpel, schwach CBC besser: C 0 := IV, C i := E(K, M i C i 1 ) Beispiel E: DES (Feistelstruktur, mittlerweile zu schwach) Angriffe: Meet-in-the-Middle, differentielle/lineare Analyse 34 / 54

Sicherheit von Verschlüsselungsverfahren Semantische Sicherheit: Chiffrat hilft nicht bei Berechnungen über Klartext, äquivalent zu IND-CPA IND-CPA: Chiffrate von verschiedenen Klartexten nicht unterscheidbar Blockchiffre im CBC-Modus (mit zufälligem IV) IND-CPA Feistel-Rundenfunktion pseudozufällig Feistel-Ausgabe pseudozufällig (und invertierbar!) 35 / 54

Information: Schlüssellängen Symmetrisches Verfahren gilt als gebrochen, wenn besserer Angriff als Brute Force bekannt Manchmal strittig, ob Angriffsvoraussetzungen zu absurd (Differentielle Analyse von DES, Related-Key-Angriff auf AES-256) Populäre ungebrochene Schemata: AES, 3DES 36 / 54

Hashfunktionen Hashfunktion H : {0, 1} {0, 1} k : Daten-Fingerabdruck Kollisionsresistenz: kein effizienter Angreifer kann mit nicht-vernachlässigbarer Wahrscheinlichkeit Kollision finden Einwegeigenschaft (bzgl. {0, 1} 2k ) impliziert von Koll.-res. Merkle-Damgård-Konstruktion (Kompressionsfunktion H) F kollisionsresistent H kollisionsresistent Wichtige MD-Instanzen: MD5, SHA-1 (beide gebrochen) 37 / 54

Information: Aktuelle Hashfunktionen Die zwei populärsten Hashfunktionen gebrochen (MD5, SHA-1) Hashfunktion gebrochen es gibt nichttrivialen Angriff Trivialer und generischer Angriff: Birthday Attack (viele Paare hashen, nach Kollision suchen) Aktuell ungebrochen: Keccak (SHA-3) Bei Keccak: Ausgabelänge variabel (sollte 200 Bits oder mehr sein, wenn Kollisionsresistenz gewünscht) 38 / 54

Asymmetrische Verschlüsselung Schlüsselgenerierung: (pk, sk) Gen(1 k ) Verschlüsseln: C Enc(pk, M) Entschlüsseln: Dec(sk, C) = M RSA: C = M e mod N (so unsicher, homomorph) besser C = pad(m) e mod N RSA-OAEP unter RSA-Annahme aktiv sicher (nur im Random Oracle Model) ElGamal: pk = (G, g, g x ), C = (g y, g xy M) (homomorph, besonders effizient auf elliptischen Kurven) unter DDH-Annahme IND-CPA-sicher (im Standardmodell) 39 / 54

Information: Parameter Bester Angriff auf RSA(-Varianten): Faktorisieren Bester Faktorisierungsalgorithmus: Zahlkörpersieb Komplexer, zweistufiger Algorithmus Nur erster Teil parallelisierbar Implementierung auf Standardrechnern: 700-800-Bit-Zahlen Vorgeschlagene Spezialhardware für 1024 Bit: 1 Jahr, viele M$ Deshalb vorgeschlagene Parameter: 2048-Bit-N 40 / 54

Information: Parameter Bester Angriff auf ElGamal: diskrete Logarithmen berechnen Nur generische Algorithmen für (geeignete) elliptische Kurven In G Z p Index-Calculus-Algorithmus IC zweistufig: einmalige Vorberechnung, dann DLog Parameter: elliptische Kurven 200-300 Bit, Z p 2048 Bit Diskussion gilt auch für Varianten und Signaturschemata 41 / 54

Symmetrische Nachrichtenauthentifikation (MACs) Signieren: σ Sig(K, M) Verifizieren: Ver(K, σ) (gibt 0 oder 1 aus) EUF-CMA-Sicherheit: effizienter Angreifer, der Signaturen erfragen kann, kann kein σ für neue Nachricht fälschen PRF als MAC, Kandidat: PRF(K, M) = H(K M) Achtung: Kandidat keine PRF, wenn M-Länge variabel, und wenn H nach Merkle-Damgård-Prinzip aufgebaut 42 / 54

Symmetrische Nachrichtenauthentifikation (MACs) Hash-Then-Sign: signiere H(M) (erhält EUF-CMA, Vorteil: Sig muss nur kurze Nachricht signieren) Praxis: HMAC (Sig(K, M) = H(K opad H(K ipad M))) 43 / 54

Asymmetrische Nachrichtenauthentifikation (Signaturen) Schlüsselgenerierung: (pk, sk) Gen(1 k ) Signieren: σ Sig(sk, M) Verifizieren: Ver(pk, σ) (gibt 0 oder 1 aus) EUF-CMA und Hash-Then-Sign (fast wie bei MACs) EUF-CMA-Unterschied: Angreifer erhält pk (zu Beginn) 44 / 54

Asymmetrische Nachrichtenauthentifikation (Signaturen) RSA als Signaturschema (σ = M d mod N): Ungepaddet nicht EUF-CMA-sicher (homomorph!) Besser: RSA-PSS ElGamal-Signaturen: nicht EUF-CMA-sicher DSA: quasi ElGamal-Signaturen gehasht, Sicherheit unklar 45 / 54

Schlüsselaustauschprotokolle Mit Schlüsselzentrum: Kerberos (mit symm. Verschlüsselung) Kerberos praktikabel, stellt Authentifikation sicher Mit PK-Infrastruktur: PK-Transport, Diffie-Hellman Formale Sicherheitsmodelle komplex, viele Angriffsszenarien In Praxis benutzt: TLS (Transport Layer Security) Schlüsselaustausch mit anschließender Verschlüsselung Meistens nur ältere Versionen benutzt, viele Patches Viele Angriffe: ChangeCipherSpec Drop, Angriff auf RSA-Padding, CRIME,... Historisch gewachsen, theoretisch unbefriedigend, Standard 46 / 54

Identifikationsprotokolle Ziel: PK-Infrastruktur gegeben, Partei identifiziert sich mit sk PK-ID-Sicherheit: Angreifer kann niemanden impersonieren, selbst wenn er vorher mit vielen Provern geredet hat Für PK-ID-Sicherheit Signaturprotokoll genug 1 P 2 P R σ:=sig(sk A,R) Funktioniert auch mit (aktiv sicherer!) Verschlüsselung V V 47 / 54

Zero-Knowledge-Protokolle Idee: Prover beweist, dass er sk kennt, aber Verifier lernt nichts (außer, dass Prover sk kennt) Zero-Knowledge: Transkripte (mit beliebigem Verifier) können simuliert werden Proof of Knowledge: sk kann aus jedem erfolgreichen Prover extrahiert werden Beispielprotokoll mit pk = Graph, sk = Dreifärbung ZK+PoK PK-ID-Sicherheit nur, wenn pk sk schwer Konzept nützlich, um beliebige NP-Aussagen zu zeigen 48 / 54

Benutzerauthentifikation Standard: Nutzerauthentifikation mit Passwort pw Möglich: Server kennt H(pw) Wörterbuchangriff möglich, wenn Server korrumpiert Effizienter: Wörterbuch komprimieren (Rainbow Tables), Grundidee: Wörterbuch gezielt dynamisch bei Angriff ergänzen Modern: Brute-Force-Suche mit vielen GPUs 49 / 54

Benutzerauthentifikation Besser: gesalzene Hashes H(pw, salt) (verhindert zumindest Komprimierung von Wörterbuch, nicht aber GPU-Angriff) Weitere Maßnahmen: Key Strengthening, bessere Passwortwahl Weitere Authenfikationstypen möglich (z.b. positionsbasierte Authentifikation) 50 / 54

Zugriffskontrolle Ziel: Subjekten Rechte auf Objekte gewähren/verweigern Rechteverwaltung von Dateisystem statisch Bell-LaPadula: dynamische Rechteverwaltung (ds-, NoReadUp-, NoWriteDown-Eigenschaft), nur Secrecy Chinese Wall (ss-, Star-Property): vollkommen dynamisch, erkennt/verwaltet potentielle Interessenskonflikte 51 / 54

Hinweis zu Bell-LaPadula Achtung: Klausuraufgaben vor Sommersemester 2013 zu Bell-LaPadula nicht prüfungsrelevant, da Modell damals leicht anders definiert. 52 / 54

Analyse größerer Systeme CIA-Paradigma: Eigenschaften überprüfen (Confidentiality, Integrity, Availability), sehr anwendungsspezifisch Simulierbarkeit: Sicherheit durch Vergleich mit Idealisierung der Protokollaufgabe definieren Relation auf Protokollen Modulares Design durch Kompositionstheorem 53 / 54

Häufige Sicherheitslücken Software-Sicherheitslücken in CVE-Datenbank gesammelt https://cve.mitre.org/ Häufige Probleme: Buffer Overflows, Denial of Service, Code Execution, Cross-Site-Scripting, SQL-Injection Wichtig: mit Nutzereingaben vorsichtig umgehen Weitere Probleme: schlechter kryptographischer Zufall, schlechte APIs 54 / 54