Kapitel 3 Kryptografische Hashfunktion, MAC, digitale Signatur PDF

Document Details

Uploaded by Deleted User

Technische Universität München

C. Eckert

Tags

Hashfunktionen Kryptografie Sicherheit IT-Sicherheit

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

Use Quizgecko on...
Browser
Browser