Kryptologie (Vorlesung 8)

Skript-AnfangSkript – Seite 29
Skript-EndeSkript – Seite 32

Praktikum

  • Das was abgegeben wurde ist in Ordnung
  • Wenn etwas nicht stimmt, meldet er sich von selbst

Evaluation

  • Wurde durchgeführt

Datenauthentisierung

  • Garantiert, dass Daten nicht verändert wurden
  • Dazu:
    • Beweisender (B) ist der Sender / Erzeuger von Daten
    • B berechnet mittels eines kryptographischen Schlüssels eine Prüfsumme über die zu authentifizierenden Daten
    • Prüfer (P) überprüft die Prüfsumme mittels eines kryptographischen Schlüssels
  • Wir unterscheiden:
    1. Symmetrische Verfahren (Schlüssel zur Berechnung = Schlüssel zur Prüfung)
    2. Asymmetrische Verfahren (Schlüssel zur Berechnung ≠ Schlüssel zur Prüfung)

Message Authentication Code (MAC)

Erste Idee zur Umsetzung

  • Basierend auf einer Hash-Funktion M:{0,1}* → {0,1}n
  • B und P vereinbaren Schlüssel k ∈ {0,1}128

Erklärung

  • Hashfunktion nach Merkle-Damgard
  • || bedeutet „direkt hintereinander“
  • H(k||m) = Funktion zur Berechnung der Prüfsumme
  • k= Schlüssel
  • m = Nachricht
  • c = Prüfummse

Authentisierung

  • B authentisiert m ∈ {0,1}*
    1. Berechne c = M(k||m)
    2. Sende m und c an P

Prüfung

  • P prüft Authentizität von m
    1. Berechne c‘ = M(k||m)
    2. Prüft ob c=c‘ gilt

Dieses Verfahren ist unsicher

  • Angreifer kann weitere Blöcke an m hängen, Hashwert weiter rechnen und so eine gültige Prüfsumme berechnen
  • Schützt also nur den Anfang einer Nachricht, aber nicht das Ende
    • → „Wir greifen morgen um 10 Uhr an“
    • → „Wir greifen morgen um 10 Uhr an, wenn es nicht regnet“
  • Auch H(m||k) keine gute Idee, denn das schützt auch nur das Ende der Nachricht und nicht den Anfang

Beispiel für eine Length Extension Attack

  • Normalerweise braucht ein Angreifer den Schlüssel um eine neue Prüfsumme zu erzeugen
  • Mit einer Length Extension Attack wird die Prüfsumme wieder in die Hashfunktion eingegeben und man setzt am Ende wieder an
  • Die Länge der ursprünglichen Nachricht muss dafür bekannt sein
  • Neue Prüfsumme und Daten werden übermittelt
OriginalModifiziert
Datacount=10&lat=37.351&user_id=1&long=-119.827&waffle=eggocount=10&lat=37.351&user_id=1&long=-119.827&waffle=eggo&waffle=liege
Signature6d5f807e23db210bc254a28be2d6759a0f5f5d990e41270260895979317fff3898ab85668953aaa2

Sichere MAC-Verfahren

  1. CMAC basiert auf Blockchiffren (C=Chiffre)
  2. HMAC basiert auf Hash-Funktionen (Hash)
    • HMAC(k,m) = H((ko+opad)||H((ko+ipad)||m))
    • opad = 0x5C … 5C (Schlüssellänge)
    • ipad = 0x36 … 36 (Schlüssellänge)
    • H((ko+ipad)||m) → Sichert den Anfang der Nachricht ab
    • H((ko+opad)||H((ko+ipad)||m)) → Sichert das Ende der Nachricht ab

Verschlüsselungsverfahren und MAC-Verfahren

  • Werden häufig zusammen geschaltet
  • Secure Messaging
  • Vertraulicher und authentischer Tunnel / Kanal
  • MAC-Verfahren müssen nicht die Vertraulichkeitgarantieren
  • MAC-Verfahren erfüllen nicht das Schutzziel Nichtabstreitbarkeit
    • Prüfer und und Beweisender verwenden den gleichen Schlüssel
    • Auch P könnte die Daten authentisiert haben
    • Gegenüber Dritten ist nicht nachweisbar, ob B oder P die Daten authentisiert hat
  • Zwei Nebenbedingungen:
    1. Setze für Verschlüsselung und Datenauthentifizierung verschiedener Schlüssel ein („Trenne wo du trennen kannst“)
    2. Erst Verschlüsseln → dann verschlüsselte Daten Authentisieren (Vertraulichkeit ist ein anderes Schutzziel als Authentizität)

Signaturverfahren

  • Sind asymmetrische Authentifizierungsverfahren
  • B nutzt geheimen Schlüssel zur Berechnung der Prüfsumme
  • P prüft mittels öffentlichem Schlüssel
  • Erfüllt auch das Schutzziel Nichtabstreitbarkeit → Prüfsumme nur vom Inhaber des geheimen Schlüssels berechnet werden
  • Zum Beispiel RSA oder Digital Signature Algorithm (DSA)

RSA

  • B nutzt geheimen Schlüssel d um Prüfsumme S = md mod n zu berechnen
  • P nutzt öffentlichen Schlüssel e um m‘ = se mod n zu berechnen
  • Wegen (md)e = mod n = m akzeptiert P, wenn m‘ = m
  • Besteht aus:
    1. Hashfunktion H:{0,1}* → {0,1}n ( Um Sicherheitsniveau 100 Bit zu erreichen muss n >= 200 sein)
    2. Einem Signaturalgorithmus

Problem

  • Es können nur Nachrichten der Länge m ≤ n signiert werden
  • Für n ≈22000 als Bitlänge ≤ 2000

Lösung

  • Nachricht m wird zunächst gehasht
  • Signiert und geprüft wird dann H(m)
  • Dazu wichtig: Hashfunktion muss kollisionsresistent sein
  • Gilt für zwei Nachrichten m und m‘ → H(m) = H(m‘) → dann ist eine gültige Signatur für m auch eine für m‘

DSA

  • Sicherheit beruhrt auf der vermuteten Schwere des Diskreten Logarithmusproblems in bestimmten endlichen Gruppen
  • Diskretes Logarithmusprublem in Z*p = {1, … , p-1}
  • Gegegeben: Zwei Elemente g,h ∈ Z*p
  • Lösung: loggh (d.h. x mit gx = h)
Maximilian
Maximilian

Herzlich willkommen! Ich bin Max, ein Informatiker mit über 15 Jahren Berufserfahrung. Hier teile ich meine Leidenschaften, Erlebnisse und Perspektiven. Ich lade dich ein, gemeinsam mit mir auf eine Entdeckungsreise zu gehen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.