Kryptografische Protokolle Lerneinheit 5: Authentifizierung Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2015 19.6.2015 Einleitung Einleitung Diese Lerneinheit hat Protokolle zur Authentizierung von Benutzern zum Thema. Die Lerneinheit besteht aus folgenden Abschnitten: Allgemeine Informationen zur Authentifikation Challenge Response Verfahren mit geheimem Schlüssel Challenge Response Verfahren mit Public Key Kryptografie Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 2 / 64
Einleitung Arten von Authentizierung Arten von Authentisierung Wissen (What you know!) Passwörter Besitz (What you have!) Ausweis Zertifikat Smartcard Physikalische Eigenschaft (What you are!) Biometrische Eigenschaften Aussehen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 3 / 64 Einleitung Arten von Authentifizierungsprotokollen Authentisierungsprotokolle Unterscheidung 1: Einseitige Authentifizierung: Ein Benutzer authentifiziert sich gegenüber einem anderen Gegenseitige Authentifizierung: Zwei Benutzer authentifizieren sich gegenseitig Unterscheidung 2: Private Key Protokoll: Die Teilnehmer vereinbaren vorab einen gemeinsamen geheimen Schlüssel k, der während der Authentifizierung eingesetzt wird Public Key Protokoll: Die Authentifizierung erfolgt unter Einsatz eines Public-Key Schlüsselpaars Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 4 / 64
Einleitung Arten von Authentifizierungsprotokollen Anforderungen an Authentisierungsprotokolle Aufrichtige Benutzer: Ein Teilnehmer an einem Authentisierungsprotokoll ist aufrichtig (honest), falls er den vorgegebenen Ablauf des Protokolls einhält, alle Berechnungen korrekt ausführt, und vertrauliche Informationen nicht an Dritte weitergibt Korrekter Ablauf des Protokolls: Es tritt kein Nachrichtenverlust auf Die Reihenfolge der versendeten Nachrichten wird eingehalten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 5 / 64 Einleitung Arten von Authentifizierungsprotokollen Angriffsarten Ziel: Angreifer will sich gegenüber dem Initiator des Protokolls mit einer falschen Identität authentifizieren Angriffsarten: Passiver Angriff Aktiver Angriff Einspeisen von neuen Nachrichten Verändern einer abgefangenen Nachricht Umleiten von Nachrichten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 6 / 64
Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Einseitige Authentifizierung Ziel: Alice authentifiziert sich gegenüber Bob Annahmen: Alice und Bob sind aufrichtig Das Protokoll läuft korrekt ab Sicherheitsanforderungen: Bei einem passiven Angriff die Authentifizierung von Alice gegenüber Bob erfolgreich Bei einem aktiven Angriff scheitert die Authentifizierung von Alice gegenüber Bob Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 7 / 64 Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Unsicheres Challenge Response Protokoll Challenge Response Protokoll (unsicher) 1. Bob generiert eine Zufallszahl r und sendet diese an Alice 2. Alice berechnet y = mac (k, r) und sendet y an Bob 3. Bob berechnet y = mac (k, r). Falls y = y, dann akzeptiert Bob Alice als Kommunikationspartner. Andernfalls beendet er die Kommunikation Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 8 / 64
Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Unsicheres Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r r Berechnet y = mac (k, r) y Prüft, ob y = mac (k, r) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 9 / 64 Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Parallel Session Angriff Ziel: Oskar will sich gegenüber Bob als Alice ausgeben Problem: Oskar kennt den privaten Schlüssel k nicht Angriff: 1. Oskar fängt die Nonce r ab, die Bob zwecks Authentisierung an Alice sendet 2. Oskar sendet die Nonce r in zweiten Session an Bob, damit dieser sich gegenüber Oskar authentisiert 3. Bob berechnet y = mac (k, r) und sendet y an Oskar 4. Oskar verwendet y, um sich gegenüber Bob als Alice auszugeben Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 10 / 64
Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Parallel Session Angriff: Ablauf Oskar Bob Generiert eine Zufallzahl r r Parallele Session r y Berechnet y = mac (k, r) y Prüft, ob y = mac (k, r) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 11 / 64 Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Analyse des Angriffs Schwachstelle: Die Prüfsumme y hängt nur von r ab und enthält keine Informationen über den zu authentifizierenden Nutzer Verbesserung: Jeder Benutzer U hat eine eindeutige Identifikationsnummer ID(U) Die IDs der Nutzer sind öffentlich bekannt Alice berechnet die Prüfsumme über die Nonce r und ihre ID ID(Alice) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 12 / 64
Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Sicheres Challenge Response Protokoll Challenge Response Protokoll 1. Bob generiert eine l-bit Zufallszahl r und sendet diese an Alice 2. Alice berechnet y = mac (k, ID(Alice) r) und sendet y an Bob Der Term ID(Alice) r steht für die Konkatenation der Byte-Kodierungen von ID(Alice) und r 3. Bob berechnet y = mac (k, ID(Alice)) r) Falls y = y, dann akzeptiert Bob Alice als Kommunikationspartner. Andernfalls beendet er die Kommunikation Bemerkung: Aus praktischer Sicht ist ein Wert von l = 100 für die Sicherheit des Protokolls ausreichend Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 13 / 64 Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Sicheres Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r r Berechnet y = mac (k, ID(Alice) r) y Prüft, ob y = mac (k, ID(Alice) r) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 14 / 64
Challenge Response Verfahren mit privatem Schlüssel Einseitige Authentifizierung Bemerkungen Das Challenge-Response Verfahren ist ein einseitiges Authentifizierungsverfahren Die Prüfsumme wird anhand einer zufälligen Nonce und der Benutzer-ID berechnet Das Protokoll von Folie 15 gilt als sicher, falls folgende Annahmen zutreffen: Alice und Bob sind aufrichtige Teilnehmer Der Schlüssel k ist geheim und nur Alice und Bob bekannt Jeder Benutzer setzt einen kryptografisch sicheren Pseudozufallszahlengenerator ein Die verwendete Hashfunktion zur Berechnung des MAC ist sicher Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 15 / 64 Challenge Response Verfahren mit privatem Schlüssel Gegenseitige Authentifizierung Gegenseitige Authentifizierung Ziel: Beide Teilnehmer authentifizieren sich gegenseitig Annahmen: Beide Teilnehmer sind aufrichtig Das Protokoll läuft korrekt ab Sicherheitsanforderungen: Bei einem passiven Angriff ist die gegenseitige Authentifizierung erfolgreich Bei einem aktiven Angriff akzeptiert keiner der Teilnehmer sein Gegenüber als Kommunikationspartner Beachte: Ein Angriff gilt an dieser Stelle als aktiv, wenn Oskar bei der ersten Authentisierungssitzung aktiv eingreift Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 16 / 64
Challenge Response Verfahren mit privatem Schlüssel Gegenseitige Authentifizierung Unsicheres Mutual Challenge Response Protokoll Mutual Challenge Response Protokoll (unsicher) 1. Bob generiert eine Zufallszahl r 1 und sendet diese an Alice 2. Alice berechnet y 1 = mac (k, IDAlice r 1 ), generiert eine Zufallszahl r 2 und sendet y 1 und r 2 an Bob 3. Bob berechnet y 2 = mac (k, IDBob r 2 ) und sendet y 2 an Alice Anschließend berechnet Bob y 1 = mac (k, IDAlice r 1 ). Falls y 1 = y 1, dann akzeptiert er Alice als Kommunikationspartner. Ansonsten verwirft er 4. Alice berechnet y 2 = mac (k, IDBob r 2 ). Falls y 2 = y 2, dann akzeptiert sie Bob als Kommunikationspartner. Ansonsten verwirft sie Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 17 / 64 Challenge Response Verfahren mit privatem Schlüssel Gegenseitige Authentifizierung Unsicheres Mutual Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r 1 r 1 Generiert eine Zufallzahl r 2 Berechnet y 1 = mac (k, ID(Alice) r 1 ) y 1, r 2 y 2 Prüft, ob y 1 = mac (k, ID(Alice) r 1 ) Berechnet y 2 = mac (k, ID(Bob) r 2 ) Prüft, ob y 2 = mac (k, ID(Bob) r 2 ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 18 / 64
Challenge Response Verfahren mit privatem Schlüssel Parallel Session Angriff Gegenseitige Authentifizierung Alice Oskar Bob r 1 mac (k, ID(Alice) r 1 ), r 2 r 2 mac (k, ID(Bob) r 2 ), r 3 mac (k, ID(Bob) r 2 ) Ergebnis: Alice akzeptiert Oskar als Bob Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 19 / 64 Challenge Response Verfahren mit privatem Schlüssel Analyse des Angriffs Gegenseitige Authentifizierung Beobachtung: Die Prüfsumme y 1 stellt keine Verbindung zwischen der Nonce r 1 und der Nonce r 2 her Konsequenz: die Nonce r 2 kann in mehreren Sitzungen eingesetzt werden Verbesserung: Sowohl die Nonce r 1 als auch die Nonce r 2 fließt in die Berechnung der Prüfsumme ein Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 20 / 64
Challenge Response Verfahren mit privatem Schlüssel Gegenseitige Authentifizierung Sicheres Mutual Challenge Response Protokoll Mutual Challenge Response Protokoll (sicher) 1. Bob berechnet y 1 = mac (k, ID(Alice) r 1 r 2 ). Falls y 1 = y 1, dann akzeptiert er Alice als Kommunikationspartner. Ansonsten verwirft er Anschließend generiert Bob eine Zufallszahl r 1 und sendet diese an Alice 2. Alice berechnet y 1 = mac (k, ID(Alice) r 1 r 2 ), generiert eine Zufallszahl r 2 und sendet y 1 und r 2 an Bob 3. Bob berechnet y 2 = mac (k, ID(Bob) r 2 ) und sendet y 2 an Alice 4. Alice berechnet y 2 = mac (k, ID(Bob) r 2 ). Falls y 2 = y 2, dann akzeptiert sie Bob als Kommunikationspartner. Ansonsten verwirft sie Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 21 / 64 Challenge Response Verfahren mit privatem Schlüssel Gegenseitige Authentifizierung Sicheres Mutual Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r 1 r 1 Generiert eine Zufallzahl r 2 Berechnet y 1 = mac (k, ID(Alice) r 1 r 2 ) y 1, r 2 Prüft, ob y 1 = mac (k, ID(Alice) r 1 r 2 ) Berechnet y 2 = mac (k, ID(Bob) r 2 ) y 2 Prüft, ob y 2 = mac (k, ID(Bob) r 2 ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 22 / 64
Challenge Response Verfahren mit privatem Schlüssel Gegenseitige Authentifizierung Bemerkungen Das Mutual Challenge Response Protokoll ist ein gegenseitiges Authentisierungsprotokoll Oskar kann unter anderem folgende Angriffe ausführen: Er tritt gegenüber Bob als Alice auf Er tritt gegenüber Alice als Bob auf Er agiert als Man In The Middle und versucht beide Teilnehmer zu täuschen Gelten dieselben Annahmen wie beim einseitgen Challenge Response Protokoll (siehe Folie 17), dann gilt das Protokoll von Folie 23 als sicher Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 23 / 64 Einleitung Authentifizierung mit Public Key Mechanismen Ansatz: Einsatz von digitalen Signaturen für die Authentifizierung Jeder Benutzer besitzt ein Schlüsselpaar bestehend aus einem öffentlichen und geheimen Schlüssel Der öffentliche Schlüssel wird in einem Verzeichnis publiziert Anstatt einen Prüfsumme MAC zu berechnen, signiert ein Benutzer die von ihm versendeten Nachrichten mit seinem geheimen Schlüssel Mit dem öffentlichen Schlüssel kann jeder die Signatur des Benutzers auf Korrektheit prüfen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 24 / 64
Einleitung Anwendung einer digitalen Signatur Alice Oskar Bob x x yes sign x, s unsicherer Kanal x, s ver k e k v k v Schlüsselverzeichnis Benutzer Schlüssel Alice k v Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 25 / 64 Einleitung Aufbau einer digitalen Signatur Algorithmen: Signaturalgorithmus sign Verifikationsalgorithmus ver Notation: s = sign U (x): Berechnung der Signatur der Daten x unter Einsatz des geheimen Schlüssels des Benutzers U nur von U ausführbar ver U (x, s): Verifikation der Signatur s der Daten x unter Einsatz des öffentlichen Schlüssels des Benutzers U von allen Benutzern ausführbar Anforderung: Für alle Daten x gilt: { true ver U (x, s) = false falls s = sign U (x) falls s sign U (x) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 26 / 64
Zertifikate Zertifikate Anforderung: Die Echtheit des öffentlichen Schlüssels eines Benutzers muss überprüfbar sein Lösung: Eine Trusted Authority (TA) signiert die öffentlichen Schlüssel der Benutzer Technische Umsetzung: Einsatz von Zertifikaten Inhalt des Zertifikats des Benutzers U: Eindeutige Benutzerkennung ID(U) Öffentlicher Schlüssel von U Von der TA ausgestellte Signatur über die obigen Daten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 27 / 64 Zertifikate Ausstellung eines Zertifikats Erstellung eines Zertifikats für Alice: 1. Alice erzeugt ein Paar (s A, v A ) bestehend aus einem privaten Schlüssel s A und einem öffentlichen Schlüssel v A 2. Die TA überprüft die Identität von Alice anhand eines konventionellen Dokuments (z.b. Ausweis, Reisepass,... ) 3. Die TA erstellt für Alice eine eindeutige Kennung ID(Alice) 4. Die TA signiert die Daten ID(Alice) v A : 5. Die TA stellt das Zertifikat s = sign TA (ID(Alice) v A ) Cert(Alice) = (ID(Alice), v A, s) aus sendet es an Alice oder stellt es in einem Verzeichnis bereit Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 28 / 64
Protokolle Protokolle für Public Key Authentifizierung Challenge Response Protokoll Schnorr Protokoll Guillou-Quisquater Protokoll Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 29 / 64 Challenge Response Protokoll Public Key Challenge Response Protokoll 1. Bob generiert eine Zufallszahl r 1. Dann sendet er Cert(Bob) und r 1 an Alice 2. Alice generiert eine Zufallszahl r 2. Sie berechnet y 1 = sign Alice (ID(Bob) r 1 r 2 ) und sendet Cert(Alice), r 2 und y 1 an Bob 3. Bob verifiziert das Zertifikat Cert(Alice). Dann überprüft er, ob ver Alice (ID(Bob) r 1 r 2, y 1 ) = true ist. Falls ja, dann akzeptiert er Alice und berechnet er y 2 = sign Bob (ID(Alice) r 2 ) und sendet y 2 an Alice. Andernfalls bricht er das Protokoll ab 4. Alice verifiziert das Zertifikat Cert(Bob). Dann überprüft sie, ob ver Bob (ID(Alice) r 2, y 2 ) = true ist. Falls ja, dann akzeptiert sie Bob. Andernfalls bricht sie das Protokoll ab Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 30 / 64
Challenge Response Protokoll Public Key Challenge Response Protokoll (Ablauf) Alice Bob Generiert eine Zufallzahl r 1 Cert(Bob), r 1 Generiert eine Zufallzahl r 2 Berechnet y 1 = sign Alice (ID(Bob) r 1 r 2 ) Cert(Alice), r 2, y 1 y 2 Prüft, ob ver Alice (ID(Bob) r 1 r 2, y 1 ) = true Berechnet y 2 = sign Bob (ID(Alice) r 2 ) Prüft, ob ver Bob (ID(Alice) r 2, y 2 ) = true Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 31 / 64 Challenge Response Protokoll Bemerkungen Das obige Protokoll ist eine Modifikation des Mutual Challenge Response Protokoll Die Message Authentication Codes auf Basis des geheimen Schlüssels wurden durch digitale Signaturen ersetzt Das Protokoll ist sicher, falls folgende Annahmen zutreffen: Das eingesetzte Signaturverfahren ist sicher Die Zufallszahlen werden auf eine kryptografisch sichere Art und Weise erzeugt Es gibt verschiedene Abwandlungen dieses Protokolls. Manche sind jedoch nicht sicher Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 32 / 64
Protokoll zur einseitigen Authentifizierung From Scratch Entwicklung auf Basis des diskreten Logarithmus-Problems Effiziente Durchführbarkeit Voraussetzung: Trusted Authority Aufgaben der Trusted Authority Festlegung der öffentlichen Parameter Ausstellung von Zertifikaten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 33 / 64 Parameter des Schnorr Protokolls Öffentliche Parameter Eine Primzahl p (Empfehlung: 1024 Bit) Eine Primteiler q von p 1 (Empfehlung: 160 Bit) Element α Z p der Ordnung q Sicherheitsparameter t so dass q > 2 t (Empfehlung: t = 40) Schlüssel eines Benutzers Privater Schlüssel: s U = a {1,..., q 1} Öffentlicher Schlüssel: v U (α a ) 1 α q a (mod p) Zertifikat eines Benutzers Identität des Benutzers Öffentlicher Schlüssel v U Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 34 / 64
Schnorr Protokoll 1. Alice generiert eine Zufallszahl k {1,..., q 1} und berechnet γ = α k mod p. Dann sendet sie Cert(Alice) und γ an Bob. 2. Bob überprüft anhand Cert(Alice) Alices öffentlichen Schlüssel v. Falls dieser in Ordnung ist, dann generiert er eine Zufallszahl r {1,..., 2 t } und sendet r an Alice. 3. Alice berechnet y = (k + ar) mod q und sendet y an Bob. 4. Bob überprüft, ob γ α y v r (mod p). Falls ja, dann akzeptiert er Alice. Ansonsten bricht er das Protokoll ab. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 35 / 64 Schnorr Protokoll (Ablauf) Alice Bob Generiert eine Zufallzahl k {1,..., q 1} Berechnet γ = α k mod p Cert(Alice), γ r Prüft die Echtheit von Cert(Alice) Extrahiert v aus Cert(Alice) Generiert eine Zufallzahl r {1,..., 2 t } Berechnet y = (k + ar) mod q y Prüft, ob γ α y v r (mod p) Öffentliche Parameter: p, q, α, t Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 36 / 64
Schnorr Protokoll Beispiel Beispiel: Öffentliche Parameter: p = 88667, q = 1031 und t = 10. Das Element α = 70322 hat die Ordnung q in Z p. Alice hat den privaten Schlüssel a = 755 erzeugt. Dann ist v = α q a mod p = 70322 1031 755 mod 88667 = 13136 Angenommen, die von Alice generierte Zufallszahl ist k = 543. Dann berechnet sie γ = α k mod p = 70322 543 mod 88667 = 84109 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 37 / 64 Schnorr Protokoll Beispiel (Forts.) Anschließend sendet Alice den Wert γ an Bob. Angenommen, Bob sendet die Challenge r = 1000 an Alice. Dann berechnet Alice und sendet y an Bob. y = k + ar mod q = 543 + 755 1000 mod 1031 = 851 Bob überprüft, ob 84109 70322 851 13136 1000 (mod 88667). Da dies der Fall ist, akzeptiert Bob die Echtheit von Alice. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 38 / 64
Proof Of Knowledge Eigenschaft Definition. Ein Authentisierungsprotokoll besitzt die Proof Of Knowledge Eigenschaft, falls es folgende Eigenschaften besitzt: Vollständigkeit: Alice kann sich immer erfolgreich gegenüber Bob authentifizieren Korrektheit: Die Wahrscheinlichkeit, dass sich Oskar gegenüber Bob erfolgreich als Alice autentifiziert, ist sehr gering Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 39 / 64 Sicherheitsanalyse Annahmen Alice und Bob sind aufrichtige Benutzer Die öffentlichen Parameter sind gut gewählt Eigenschaften des Schnorr Protokolls 1. Für alle alle gewählten Werte für k und r ist die Authentifizierung von Alice gegenüber Bob erfolgreich 2. Die Wahrscheinlichkeit, dass Oskar sich gegenüber Bob als Alice ausgeben kann, ist gleich 2 t Ergebnis: das Schnorr Protokoll besitzt die Proof Of Knowledge Eigenschaft Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 40 / 64
Sicherheitsanalyse (Forts.) Nachweis Punkt 1: Seien k {1,..., q 1} und r {1,..., 2 t } beliebig gewählt. Es gilt: α y v r α k+ar v r (mod p) α k α ar (α q a ) r (mod p) α k α ar α qr ar (mod p) α k α ar+qr ar (mod p) α k (α q ) r } {{ } 1 (mod p) α k (mod p) γ (mod p) Also ist die Authentifizierung von Alice gegenüber Bob immer erfolgreich Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 41 / 64 Sicherheitsanalyse (Forts.) Nachweis Punkt 2: Angenommen, Oskar kennt die Zufallszahl r vor Ablauf des Protokolls. Dann kann er sich gegenüber Bob als Alice ausweisen. Hierzu geht er folgendermaßen vor: 1. Er wählt eine beliebige Zahl y und berechnet γ = α y v r mod p 2. Er sendet Cert(Alice) und γ an Bob und erhält im Gegenzug den ihm schon bekannten Wert r 3. Nun sendet er y an Bob 4. Bob akzeptiert Oskar, denn γ = α y v r mod p Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 42 / 64
Sicherheitsanalyse (Forts.) Bemerkungen Kennt Oskar r nicht, dann hat er immer noch die Möglichkeit, obigen Angriff mit einem zufälligen Wert für r durchzuführen Der Angriff ist erfolgreich, falls die von Bob generierte Zufallszahl mit r übereinstimmt Die Wahrscheinlichkeit, dass der Angriff erfolgreich ist, ist gleich 2 t Durch die Wahl von t kann man diese Wahrscheinlichkeit beliebig verkleinern (auf Kosten der Laufzeit der zahlentheoretischen Algorithmen und der Anzahl der zu übertragenden Bits) Wichtig: Bob darf nicht immer denselben Wert für r wählen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 43 / 64 Sicherheitsanalyse (Forts.) Annahme: Die Erfolgschancen von Oskar sind größer als 2 t Dann muss Oskar ein γ und (mindestens) zwei Werte r 1 und r 2 kennen, für die er passende y 1 und y 2 berechnen kann, mit denen der obige Angriff erfolgreich durchführbar ist Für γ, r 1, r 2, y 1, y 2 gilt: γ α y 1 v r 1 α y 2 v r 2 (mod p) Hieraus folgt: α y 1 y 2 v r 2 r 1 (mod p) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 44 / 64
Sicherheitsanalyse (Forts.) Da v α a (mod p), folgt: α y 1 y 2 α a(r 2 r 1 ) (mod p) Da α die Ordnung q in Z p hat, kann man hieraus folgern, dass y 1 y 2 a(r 1 r 2 ) (mod q) Da 0 < r 2 r 1 < 2 t und q > 2 t eine Primzahl ist, ist gcd(r 2 r 1, q) = 1. Also existiert ein multiplikatives Inverses (r 2 r 1 ) 1 modulo q Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 45 / 64 Sicherheitsanalyse (Forts.) Anhand von (r 2 r 1 ) 1 kann Oskar den geheimen Schlüssel von Alice berechnen: a (y 1 y 2 )(r 1 r 2 ) 1 (mod q) Konsequenz: Die Fähigkeit von Oskar, einen Angriff mit einer Erfolgswahrscheinlichkeit > 2 t auszuführen, ist gleichbedeutend mit der Tatsache, dass Oskar den geheimen Schlüssel von Alice kennt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 46 / 64
Zero Knowledge Eigenschaft Beobachtung: Die Proof Of Knowledge Eigenschaft ist für die Sicherheit eines Authentisierungsprotokolls nicht ausreichend Begründung: Oskar kann sich gegenüber Alice als Bob ausgeben und durch wiederholte Ausführung des Protokols genügend Informationen zur Berechnung des geheimen Schlüssels von Alice sammeln Definition. Ein Authentisierungsprotokoll besitzt die Zero Knowledge Eigenschaft, falls die Anwendung des obigen Angriffs die Berechnung des geheimen Schlüssels nicht vereinfacht Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 47 / 64 Sicherheitsanalyse Teil 2 Ziel: Nachweis der Zero Knowledge Eigenschaft für das Schnorr Protokoll Annahme: Oskar generiert r zufällig unter Gleichverteilung Das Tupel (γ, r, y) beinhaltet alle Informationen, die während einer Session übertragen werden Die Menge aller möglichen Abläufe des Protokolls ist: T = {(γ, r, y) 1 r 2 t, 0 y q 1, γ α y v r (mod p)} Es gilt: T = q2 t Frage: Mit welcher Wahrscheinlichkeit tritt das Tupel T = (γ, r, y) in einer Session auf? Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 48 / 64
Sicherheitsanalyse Teil 2 (Forts.) Beobachtung: Der Wert von y ist durch die Wahl von γ und r eindeutig festgelegt Alice zieht k zufällig unter Gleichverteilung aus {0,..., q 1} und berechnet α k mod p. Da α die Ordnung q hat, ist jedes Element in α gleichwahrscheinlich Bob zieht r zufällig unter Gleichverteilung aus {1,..., 2 t } Folgerung: Die Wahrscheinlichkeit, dass das Tupel T = (γ, r, y) in einer Session auftritt, ist gleich 1 q2 t Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 49 / 64 Sicherheitsanalyse Teil 2 (Forts.) Der Ablauf von mehreren Sessions des Schnorr Protokolls ist mit folgendem Zufallsprozess P simulierbar: 1. Wähle zufällig unter Gleichverteilung ein r {1,..., 2 t } 2. Wähle zufällig unter Gleichverteilung ein y {0,..., q 1} 3. Berechne γ = α y v r mod p 4. Gib das Tupel T = (γ, r, y) zurück Für alle T T gilt: Prob[T tritt in einer Session auf] = Prob[T wird vom Zufallsprozess P erzeugt] = 1 q2 t Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 50 / 64
Sicherheitsanalyse Teil 2 (Forts.) Ergebnis: Die Tatsache, dass Oskar sich gegenüber Alice als Bob ausgibt, vereinfacht nicht die Berechnung des geheimen Schlüssels Bemerkungen Für den Fall, dass Oskar r nicht unter Gleichverteilung zieht, konnte für das Schnorr Protokoll nicht die Zero Knowledge Eigenschaft nachgewiesen werden Bisher ist kein erfolgreicher Angriff auf das Schnorr Protokoll bekannt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 51 / 64 Das Protokoll von Guillou-Quisquater Das Protokoll von Guillou-Quisquater Protokoll zur Authentifizierung Grundlage: RSA Voraussetzung: Trusted Authority Aufgaben der Trusted Authority Festlegung der öffentlichen Parameter Ausstellung von Zertifikaten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 52 / 64
Das Protokoll von Guillou-Quisquater Parameter des Guillou-Quisquater Protokolls Öffentliche Parameter: Zahl n = p q, wobei p und q geheime Primzahlen sind Primzahl b mit der Eigenschaft b 1 (mod φ(n)) (Größe:40 Bit) Schlüssel eines Benutzers: Privater Schlüssel: u U {0, 1,..., n 1} Öffentlicher Schlüssel: v U = (u 1 ) b mod n Zertifikat eines Benutzers: Identität des Benutzers Cert(U) Öffentlicher Schlüssel v U Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 53 / 64 Das Protokoll von Guillou-Quisquater Guillou-Quisquater Protokoll 1. Alice wählt eine Zufallszahl k {0, 1,..., n 1} und berechnet γ = k b mod n 2. Alice sendet ihr Zertifikat Cert(Alice) und γ an Bob 3. Bob überprüft die Echtheit von Cert(Alice) 4. Bob generiert eine Zufallszahl r {0, 1,..., b 1} und sendet diese an Alice 5. Alice berechnet y = k u r mod n und sendet diesen Wert an Bob. 6. Bob überprüft, dass y v r y b (mod n). Falls ja, dass akzeptiert er die Authentizität von Alice Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 54 / 64
Das Protokoll von Guillou-Quisquater Guillou-Quisquater Protokoll (Ablauf) Alice Bob Generiert eine Zufallzahl k {0,..., n 1} Berechnet γ = k b mod n Cert(Alice), γ r Prüft die Echtheit von Cert(Alice) Extrahiert v aus Cert(Alice) Generiert eine Zufallzahl r {0,..., b 1} Berechnet y = ku r mod n y Prüft, ob γ v r y b (mod n) Öffentliche Parameter: n, b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 55 / 64 Das Protokoll von Guillou-Quisquater Guillou-Quisquater Protokoll Beispiel Beispiel. Die TA generiert die Primzahlen p = 467, q = 479 und b = 503 und veröffentlicht die Parameter n = 223693 und b. Alice erzeugt sich den privaten Schlüssel u = 101576 berechnet v = (u 1 ) b mod n = (101576 1 ) 5 02 mod 223693 = 89888 und lässt sich von der TA ein entsprechendes Zertifikat ausstellen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 56 / 64
Das Protokoll von Guillou-Quisquater Guillou-Quisquater Protokoll Beispiel (Forts.) Um sich gegenüber Bob zu authentifizieren, generiert Alice den Wert k = 187485 und berechnet 187485 503 mod 223693 sendet Cert(Alice) und γ an Bob γ = k b mod n = 24412 Bob sendet überprüft Cert(Alice). Ist das Zertifikat nicht in Ordnung, dann bricht er die Authentifizierung ab. Andernfalls würfelt er den Challenge r = 375 und sendet diesen an Alice Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 57 / 64 Das Protokoll von Guillou-Quisquater Guillou-Quisquater Protokoll Beispiel (Forts.) Nach Empfang von r berechnet Alice y = ku r mod n = 187485 101576 375 mod 223693 = 93725 und sendet y an Bob Bob überprüft, dass γ 24412 89888 375 93725 503 v r y b (mod 223693) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 58 / 64
Sicherheitsanalyse Das Protokoll von Guillou-Quisquater Ziel: Nachweis der Proof Of Knowledge Eigenschaft für das Guillou-Quisquater Protokoll Zu zeigen: Für alle Werte von k und r kann sich Alice gegenüber Bob erfolgreich authentifizieren Die Wahrscheinlichkeit, dass sich Oskar gegenüber Bob als Alice ausgeben kann, ist gleich 2 b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 59 / 64 Sicherheitsanalyse (Forts.) Das Protokoll von Guillou-Quisquater Nachweis Punkt 1: Seien k und r beliebig gewählt. Es gilt: v r y b (u b ) r (ku r ) b (mod n) u br k b u br (mod n) k b (mod n) γ (mod n) Also arbeitet das Protokoll für alle Werte von k und r korrekt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 60 / 64
Das Protokoll von Guillou-Quisquater Sicherheitsanalyse (Forts.) Nachweis Punkt 2: Angenommen, Oskar kennt einen Wert γ, für den er mit einer Wahrscheinlichkeit ε 2/b gegenüber Bob als Alice ausgeben kann Dann kann man annehmen, dass Oskar für dieses γ Werte y 1, y 2, r 1 und r 2, wobei r 1 r 2, berechnen kann, so dass γ v r 1 y b 1 v r 2 y b 2 (mod n) Der Einfachheit wird angenommen, dass r 1 > r 2 ist. Hieraus folgt: v r 1 r 2 y b 2 (y b 1 ) 1 (y 2 y 1 1 ) b (mod n) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 61 / 64 Das Protokoll von Guillou-Quisquater Sicherheitsanalyse (Forts.) Da 0 < r 1 r 2 < b und b eine Primzahl ist, existiert t = (r 1 r 2 ) 1 mod b Oskar kann t mit dem Erweiterten Algorithmus von Euklid berechnen Folglich gilt: v (r 1 r 2 )t (y 2 y 1 1 ) bt (mod n) Da (r 1 r 2 )t = lb + 1 für eine ganze Zahl l, ist v lb+1 (y 2 y 1 1 ) bt (mod n) und somit v (y 2 y 1 1 ) bt (v 1 ) lb (mod n) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 62 / 64
Sicherheitsanalyse (Forts.) Das Protokoll von Guillou-Quisquater Potenziert man beide Seiten dieser Gleichung mit b 1 mod φ(n), dann erhält mann u 1 (y 2 y 1 1 ) t (v 1 ) l (mod n) Berechnet man das multiplikative Inverse auf beiden Seiten, dann erhält man: u ((y 2 y1 1)t (v 1 ) l ) 1 (mod n) (y2 1y 1) t (v) l (mod n) Also kann Oskar den geheimen Schlüssel von Alice effizient berechnen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 63 / 64 Zusammenfassung Zusammenfassung Die Aufgabe eines Authentisierungsprotokolls besteht in der Überprüfung der Echtheit eines Benutzers Man unterscheidet: Einseitige Authentifizierung Gegenseitige Authentifizierung Voraussetzungen für Authentisierungsprotokolle sind Kenntnis eines gemeinsamen Schlüssels, oder Besitz eines Public Key Schlüsselpaars Neben den in dieser Lerneinheit präsentierten Verfahren existieren noch zahlreiche weitere Verfahren zur Authentifizierung Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 64 / 64