Kapitel 3 Kryptografische Hashfunktion, MAC, digitale Signatur PDF
Document Details
Uploaded by Deleted User
Technische Universität München
C. Eckert
Tags
Summary
This document provides an overview of cryptographic hash functions, MACs, and digital signatures. It covers the concepts of integrity, authentication, and non-repudiation. The document discusses the Merkle-Damgård construction and various hash function classes, such as those based on block ciphers. It also explores password hashing and message authentication codes (MACs).
Full Transcript
Technische Universität München Kapitel 3 Kryptografische Hashfunktion, MAC, digitale Signatur Bislang: Schutzziel Vertraulichkeit. Jetzt: Schutzziele Integrität, Authentizität und Nicht Abstreitbarkeit 3.1 Kryptografische Hashfunktion m...
Technische Universität München Kapitel 3 Kryptografische Hashfunktion, MAC, digitale Signatur Bislang: Schutzziel Vertraulichkeit. Jetzt: Schutzziele Integrität, Authentizität und Nicht Abstreitbarkeit 3.1 Kryptografische Hashfunktion m h Idee: Erstellen eines „digitalen“ Fingerabdrucks h für ein Dokument / eine Nachricht m, so dass h das Dokument m repräsentiert. Vorgehen: Gegeben Hashfunktion H und Ganzzahlwert n Nachricht m M*, Nachricht mit beliebiger Länge. Hashfunktion H, H: M*→ Mn , z.B. n = 128, h der Länge n-Bit Hashwert h h = H(m), h nennt man auch Message Digest. Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 1 Technische Universität München Bem.: der Hashwert h, mit h = H(m), ist kein vertraulicher Wert. 3.1.1 Konstruktion von H mit Kompressionsfunktion f Häufig genutzt: Merkle-Damgård Konstruktion, z.B. MD5 (veraltet), SHA-1 (veraltet, wird noch genutzt), SHA-2 Zerlegen der Eingabe m in Blöcke: m = m1 || m2|| …. || mn Blockweises komprimieren mit Kompressionsfunktion f: IV ist ein Initialisierungsblock für die Verarbeitung von Block m1 Schritt i: f verarbeitet den Eingabeblock mi zusammen mit f(mi-1) h = H(m) h ist der Hashwert Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 2 Technische Universität München Schutzziel: Integrität Nutzen von Hashfunktionen für Integritätsüberprüfung Anforderung: 1. Hashwert h = H(m) charakterisiert Nachricht m eindeutig. 2. Eine Modifikation von m ergibt Nachricht m‘ mit H(m‘) = h‘. 3. Damit eine Modifikation erkannt werden kann, muss gelten: wenn m ≠ m‘, dann gilt auch h ≠ h'. Problem: H ist nicht injektiv, deshalb sind prinzipiell Kollisionen möglich! Gegeben seien m1, m2 mit m1 ≠ m2 : was ist eine Kollision: Frage: Welche der Anforderungen 1-3 sind von Kollisionen betroffen? Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 3 Technische Universität München 3.1.2. Anforderungen an eine kryptografische Hashfunktion H 1. m M* gilt: H(m) = h ist einfach zu berechnen. 2. Einwegeigenschaft (preimage resistance): Gegeben sei h = H(m). Das Bestimmen des Wertes m M*, mit m = H-1(h), ist nicht effizient möglich. 3. Schwache Kollisionsresistenz (second-preimage resistance) Gegeben m M*. Es ist nicht effizient möglich, ein m' M* zu finden, so dass gilt: m ≠ m' und H(m) = H(m‘). 4. Starke Kollisionsresistenz (collision resistance) Das Finden von Paaren m, m' M*, mit H(m) = H(m‘) ist nicht effizient möglich. Bem.: Das BSI empfiehlt eine Hashwertlänge von n ≥ 256 bit. Frage: Die starke Kollisionsresistenz (4) macht es Angreifern schwerer als die schwache Resistenz (3), warum? Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 4 Technische Universität München 3.1.3 Drei Klassen von Hashfunktionen 1. Basierend auf Block-Chiffren: Beispiel: H = AES-CBC (für Integrität, hier nicht Vertraulichkeit) k muss nicht geheim sein, wenn nur Integrität geprüft wird. Der letzte Block (128 Bit) dient als Hashwert h = H(m) m1 m2 … mn IV = 0 … k AES k AES k AES c1 c2 … Cn Cn = H(m), 128 Bit Hashwert von m Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 5 Technische Universität München 2. Dedizierte Hashfunktionen SHA-1 (Secure Hash Algorithm),160-Bit, unsicher! SHA-2-Familie: SHA-256 Bit, SHA-512 Bit Basierend auf Merkle-Damgård Konstruktion Problem bei Merkle-Damgård: length extension (wird später erklärt) SHA-512/256 ist resistent gegen length extension. Von 512 Bit werden lediglich 256 Bit für Hashbildung genutzt. SHA-3: aktueller Standard Basiert auf dem sogenannten Sponge-Prinzip: „Aufsaugen“ der Eingabe, „Ausquetschen“ der Ausgabe Länge des Hash wählbar: 224 – 512 Bit. Resilient gegen length extension Angriffe Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 6 Technische Universität München 3. Passworthashfunktionen Background: Passworte sollten gehasht abgespeichert werden. Passwortfestlegung und Hash-Speicherung: h = H(PWD): Beim Login: Eingeben des Passworts PWD, hashen h‘ = H(PWD), Abgleich mit gespeichertem Wert: h = h‘? Spezielle Anforderungen an H, um Angriffe zu erschweren: Abgleich soll „langsam“ sein: Abwehr von Brute-Force Angriffen Abgleich soll viel Speicher und viel CPU-Zeit benötigen. Lösung: parametrisierbare Hashfunktionen, die man bei Bedarf „abbremsen“ kann. Bsp.: bcrypt, Anzahl der Iterationen ist wählbar Beispiele: SHA-256 ~ 2900 MH/s (Mio Hashes/s), bcrypt 1.3 KH/s Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 7 Technische Universität München 3.2 Message-Authentication-Code (MAC) Bislang: Hashfunktion für Integritätsnachweise, aber: einen Hashwert berechnen, das kann jeder, das ist kein Ursprungsnachweis! Jetzt: Zusätzlich zu Integrität auch Authentizität des Datenursprungs. 3.2.1 Idee für Ursprungsnachweis: Einbringen eines gemeinsamen Geheimnisses in die Hash- Berechnung. Geheimnis ist i.d.R ein shared Key kAB, Partner A und B kennen kAB Authentizitätnachweis: Partner A oder B weisen Kenntnis von kAB nach. Bem.: Geheimnis wird zwar als Schlüssel bezeichnet, aber: Schlüssel wird hier nicht zum Verschlüsseln genutzt! Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 8 Technische Universität München Message Auhentication Code MAC: Hashfunktion mit Schlüssel: H: EK × M* → Mn Einsatz eines MAC-Verfahrens H: Ziel: Nachweis der Authentizität des Datenursprungs der Nachricht m: Basis: Geheimer (pre-shared) Schlüssel kAB zwischen Partnern A,B oBdA: Partner A führt MAC-Berechnung für Nachricht m aus: mac = H(m'), mit 𝑚′ = k𝐴𝐵||m. Partner A sendet an Partner B: mac, Nachricht m Empfänger (Partner B) prüft unter Nutzung des pre-shared k𝐴𝐵 B berechnet mac‘ = H(m‘‘), mit 𝑚′′ = k𝐴𝐵||m, B vergleicht: mac = mac‘? Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 9 Technische Universität München Erweiterung des Szenarios um Verschlüsselung: Basis: Einsatz von AES-CTR, SHA-256, m sei der Klartext. kmac ist gemeinsamer MAC-Key, kenc ist ein gemeinsamer AES-Key A sendet an B (B könnte auch starten und etwas an A senden) Ablauf: Encrypt-then-MAC 1. Encrypt: A berechnet c = AES-CTRk_enc(m) 2. Then MAC: A berechnet: mac = SHA-256(kmac || c) 3. Transfer: A sendet c, mac an Partner B 4. B berechnet mit shared kmac : mac‘ = SHA-256(kmac || c) 5. B prüft: mac‘ = mac? (aus Schritt 3), falls false, dann Abbruch 6. B entschlüsselt, nur wenn authentisch: m = AES-CTR-1k_enc(c) Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 10 Technische Universität München 3.2.2 Sicherheitsproblem bei Merkle-Damgård: length extension-Angriff Basis: Merkle-Damgård Konstruktion bedeutet: Der Hash des vorherigen Blocks h (das ist ein interner Zustand) wird mit dem neuen Inputblock zum neuen internen Zustand h‘ gehasht. Notation: h‘ = SHA-1(h)(m) bedeutet: aus dem internen Zustand h und dem neuen Input m wird neuer Hashwert h‘ berechnet. Angriffsablauf vergröbert: Sei kmac der MAC Key von A und B. A sendet: m, h, mit h = SHA-1(kmac ∥ m ∥ padding(m)). Angreifer hängt fake-Daten an, berechnet h‘ ohne Kenntnis von kmac: h‘ = SHA-1(h)(fake), m‘ = m ∥ padding(m) ∥ fake B prüft mit shared kmac: SHA-1(kmac ∥ m‘) = h‘‘, h‘‘ = h‘ korrekt Ursache: Der interne Zustand wird am Ende als Hashwert h ausgegeben. Lösung: Internen Zustand nicht als Ausgabe heraus geben. Beispiel: SHA-512/256: Von den 512 Bit nur 256 Bit für hextern genutzt. Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 11 Technische Universität München 3.2.3 HMAC-Verfahren RFC 2104 ipad, opad: Ziel: festgelegte Bitfolgen, Härten existierender Verfahren, z.B. SHA-1, nicht geheim SHA-2) gegen length extension Angriffe. K1 m1 m2 mn HMAC-Konstruktion: Gegeben Hashfunktion H, Key k, Nachricht m H 𝐻𝑀𝐴𝐶 𝑚, 𝑘 = H(𝑘 ′ ⨁ 𝑜𝑝𝑎𝑑 | (H(𝑘 ′ ⨁ 𝑖𝑝𝑎𝑑 | 𝑚)), k‘ = k|| padding, damit k‘ Blockgröße hat. 2 Schlüssel: K1 = 𝑘 ′ ⨁ 𝑖𝑝𝑎𝑑 , K2 = 𝑘 ′ ⨁ 𝑜𝑝𝑎𝑑 K2 H(Sj || m) Phase 1: H(𝐾1| 𝑚), berechnet internen Hash. Phase 2: H(𝐾2| interner Hash), berechnet H externen Hashwert hextern Beispiele: HMAC-SHA-1, HMAC-SHA-2 HMAC(m,k) Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 12 Technische Universität München 3.3 AEAD (Authenticated Encryption with Associated Data) Bislang: Einzelne Krypto-Primitive (z.B. AES, SHA-3) für CIA Ziele. Kombinationen in Anwendungen: z.B. erst encrypt, dann MAC. Problem: häufig falsche Verwendung, das führt ggf. zu Schwachstellen. z.B. erst MAC, dann encrypt ermöglicht u.U. Padding Oracle-Angriff. Lösung: AE bzw. AEAD-Modi einer Blockchiffre AE-Modus: Integration von Verschlüsselung und Authentizität in einen Mechanismus. AEAD-Modus: unverschlüsselte, assoziierte Daten (AD) Authentisierte AD durch Verknüpfung mit Ciphertext. z.B. Header Daten, wie IP-Adresse: unverschlüsselt aber authentisch. Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 13. Technische Universität München Konstruktionsprinzip von AEAD-Verfahren: Reihenfolge wichtig: Encrypt-then-MAC! Beispiele: ChaCha20-Poly1305 (RFC 8439): Stromchiffre ChaCha20 und MAC-Verfahren Poly1305 AES-GCM Modus: AES-CTR und MAC-Verfahren Multiplikation im Galois Feld 2128 Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 14 Technische Universität München 3.4 Elektronische (digitale) Signatur Ziel: Nachweis der nicht-abstreitbaren Urheberschaft eines Dokuments, einer Nachricht, … Frage: Mit den MAC-Verfahren kennen wir bereits Verfahren, um Urhebernachweise nicht abstreitbar zu erbringen. (ja,nein)? 3.4.1 Funktionsprinzip Basis: Spezielle Klassen von Public-Key Verfahren, z.B. RSA Achtung: die Schlüssel dienen hier NICHT zur Verschlüsselung! Gegeben sei Nutzerin Alice: Alice besitze Public-Key Schlüsselpaar: (kveri , ksig ), wobei gilt: Privater Signaturschlüssel ksig bei RSA: ksig = d Öffentlicher Verifikationsschlüssel kveri bei RSA: kveri = e Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 15 Technische Universität München Erstellung einer elektronischen/digitalen Signatur: Sei m das Dokument/Nachricht/Datum, das signiert werden soll. Sei oBdA RSA das genutzte Signaturverfahren. Sei SHA-256 das Hashverfahren für die Datenintegrität. Ablauf: 1. Hashen: SHA-256(m) = h 2. Signieren: RSAd(h) = hd mod n = sig, d ist privater ksig von A. Validieren der elektronischen Signatur Beliebige Instanz B erhält Nachricht m und sig, die Signatur von m. B besitzt öffentlichen Key e = kveri von A (kein Geheimnis!) B berechnet h‘, mit RSAe(sig) = sige mod n = h‘. B berechnet den Hashwert h der Nachricht m: h = SHA-256(m). B validiert, indem er vergleicht h‘ = h? Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 16 Technische Universität München 3.4.2 Einsatzbereich von digitalen Signaturen: u.a. signierte e-Mails, signierte Verträge, Angebote, Bestellvorgänge signierte Finanzdaten bei Geldspielautomaten signierte Nachrichten bei der Car-to-Car Kommunikation Klassen von Signaturverfahren: analog zu Hashfunktionen Dedizierte Signaturverfahren: z.B. DSA, ECDSA Public Key Verschlüsselung: z.B. RSA Beispiel-Szenario: Sei m eine Nachricht, die Partner A zu Partner B vertraulich, integritätsgeschützt und nicht-abstreitbar senden möchte. Erforderlich: z.B. AES-CTR, SHA-3, RSA, kA,B , (kveri, dsig) von A. Ablauf: Partner A Partner B Vorlesung IT-Sicherheit, WS 24/25, C. Eckert, Kapitel 3: Hashfunktion und MAC 17