Handouts - Prof. Dr. Christoph Karg
Transcription
Handouts - Prof. Dr. Christoph Karg
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¨ussel • 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¨orter • Besitz (What you have!) . Ausweis . Zertifikat . Smartcard • Physikalische Eigenschaft (What you are!) . Biometrische Eigenschaften . Aussehen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Einleitung Authentifizierung 3 / 64 Arten von Authentifizierungsprotokollen Authentisierungsprotokolle Unterscheidung 1: • Einseitige Authentifizierung: Ein Benutzer authentifiziert sich gegen¨uber einem anderen • Gegenseitige Authentifizierung: Zwei Benutzer authentifizieren sich gegenseitig Unterscheidung 2: • Private Key Protokoll: Die Teilnehmer vereinbaren vorab einen gemeinsamen geheimen Schl¨ussel k, der w¨ahrend der Authentifizierung eingesetzt wird • Public Key Protokoll: Die Authentifizierung erfolgt unter Einsatz eines Public-Key Schl¨usselpaars 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¨alt, • alle Berechnungen korrekt ausf¨uhrt, 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 Einleitung Authentifizierung 5 / 64 Arten von Authentifizierungsprotokollen Angriffsarten Ziel: Angreifer will sich gegen¨uber dem Initiator des Protokolls mit einer falschen Identit¨at authentifizieren Angriffsarten: • Passiver Angriff • Aktiver Angriff . Einspeisen von neuen Nachrichten . Ver¨andern einer abgefangenen Nachricht . Umleiten von Nachrichten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 6 / 64 Challenge Response Verfahren mit privatem Schl¨ ussel Einseitige Authentifizierung Einseitige Authentifizierung Ziel: Alice authentifiziert sich gegen¨uber Bob Annahmen: • Alice und Bob sind aufrichtig • Das Protokoll l¨auft korrekt ab Sicherheitsanforderungen: • Bei einem passiven Angriff die Authentifizierung von Alice gegen¨uber Bob erfolgreich • Bei einem aktiven Angriff scheitert die Authentifizierung von Alice gegen¨uber Bob Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 7 / 64 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 0 = mac (k, r ). Falls y 0 = 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¨ ussel Einseitige Authentifizierung Unsicheres Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r r Berechnet y = mac (k, r ) y Pr¨ uft, ob y = mac (k, r ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 9 / 64 Einseitige Authentifizierung Parallel Session Angriff Ziel: Oskar will sich gegen¨uber Bob als Alice ausgeben Problem: Oskar kennt den privaten Schl¨ussel k nicht Angriff: 1. Oskar f¨angt 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¨uber Oskar authentisiert 3. Bob berechnet y = mac (k, r ) und sendet y an Oskar 4. Oskar verwendet y , um sich gegen¨uber Bob als Alice auszugeben Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 10 / 64 Challenge Response Verfahren mit privatem Schl¨ ussel Einseitige Authentifizierung Parallel Session Angriff: Ablauf Oskar Bob Generiert eine Zufallzahl r Parallele Session r r Berechnet y = mac (k, r ) y y Pr¨ uft, ob y = mac (k, r ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 11 / 64 Einseitige Authentifizierung Analyse des Angriffs Schwachstelle: Die Pr¨ufsumme y h¨angt nur von r ab und enth¨alt keine Informationen u¨ber den zu authentifizierenden Nutzer Verbesserung: • Jeder Benutzer U hat eine eindeutige Identifikationsnummer ID(U) • Die IDs der Nutzer sind ¨offentlich bekannt • Alice berechnet die Pr¨ufsumme u¨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¨ ussel Einseitige Authentifizierung Sicheres Challenge Response Protokoll Challenge Response Protokoll 1. Bob generiert eine `-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¨ur die Konkatenation der Byte-Kodierungen von ID(Alice) und r 3. Bob berechnet y 0 = mac (k, ID(Alice))||r ) Falls y 0 = y , dann akzeptiert Bob Alice als Kommunikationspartner. Andernfalls beendet er die Kommunikation Bemerkung: Aus praktischer Sicht ist ein Wert von ` = 100 f¨ur die Sicherheit des Protokolls ausreichend Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 13 / 64 Einseitige Authentifizierung Sicheres Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r r Berechnet y = mac (k, ID(Alice)||r ) y Pr¨ uft, ob y = mac (k, ID(Alice)||r ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 14 / 64 Challenge Response Verfahren mit privatem Schl¨ ussel Einseitige Authentifizierung Bemerkungen • Das Challenge-Response Verfahren ist ein einseitiges Authentifizierungsverfahren • Die Pr¨ufsumme wird anhand einer zuf¨alligen 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¨ussel 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 Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 15 / 64 Gegenseitige Authentifizierung Gegenseitige Authentifizierung Ziel: Beide Teilnehmer authentifizieren sich gegenseitig Annahmen: • Beide Teilnehmer sind aufrichtig • Das Protokoll l¨auft korrekt ab Sicherheitsanforderungen: • Bei einem passiven Angriff ist die gegenseitige Authentifizierung erfolgreich • Bei einem aktiven Angriff akzeptiert keiner der Teilnehmer sein Gegen¨uber 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¨ ussel Gegenseitige Authentifizierung Unsicheres Mutual Challenge Response Protokoll Mutual Challenge Response Protokoll (unsicher) 1. Bob generiert eine Zufallszahl r1 und sendet diese an Alice 2. Alice berechnet y1 = mac (k, IDAlice||r1 ), generiert eine Zufallszahl r2 und sendet y1 und r2 an Bob 3. Bob berechnet y2 = mac (k, IDBob||r2 ) und sendet y2 an Alice Anschließend berechnet Bob y10 = mac (k, IDAlice||r1 ). Falls y1 = y10 , dann akzeptiert er Alice als Kommunikationspartner. Ansonsten verwirft er 4. Alice berechnet y20 = mac (k, IDBob||r2 ). Falls y2 = y20 , dann akzeptiert sie Bob als Kommunikationspartner. Ansonsten verwirft sie Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 17 / 64 Gegenseitige Authentifizierung Unsicheres Mutual Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r1 r1 Generiert eine Zufallzahl r2 Berechnet y1 = mac (k, ID(Alice)||r1 ) y1 , r2 Pr¨ uft, ob y1 = mac (k, ID(Alice)||r1 ) Berechnet y2 = mac (k, ID(Bob)||r2 ) y2 Pr¨ uft, ob y2 = mac (k, ID(Bob)||r2 ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 18 / 64 Challenge Response Verfahren mit privatem Schl¨ ussel Gegenseitige Authentifizierung Parallel Session Angriff Alice Oskar Bob r1 mac (k, ID(Alice)||r1 ), r2 r2 mac (k, ID(Bob)||r2 ), r3 mac (k, ID(Bob)||r2 ) Ergebnis: Alice akzeptiert Oskar als Bob Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 19 / 64 Gegenseitige Authentifizierung Analyse des Angriffs Beobachtung: • Die Pr¨ufsumme y1 stellt keine Verbindung zwischen der Nonce r1 und der Nonce r2 her • Konsequenz: die Nonce r2 kann in mehreren Sitzungen eingesetzt werden Verbesserung: Sowohl die Nonce r1 als auch die Nonce r2 fließt in die Berechnung der Pr¨ufsumme ein Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 20 / 64 Challenge Response Verfahren mit privatem Schl¨ ussel Gegenseitige Authentifizierung Sicheres Mutual Challenge Response Protokoll Mutual Challenge Response Protokoll (sicher) 1. Bob berechnet y10 = mac (k, ID(Alice)||r1 ||r2 ). Falls y1 = y10 , dann akzeptiert er Alice als Kommunikationspartner. Ansonsten verwirft er Anschließend generiert Bob eine Zufallszahl r1 und sendet diese an Alice 2. Alice berechnet y1 = mac (k, ID(Alice)||r1 ||r2 ), generiert eine Zufallszahl r2 und sendet y1 und r2 an Bob 3. Bob berechnet y2 = mac (k, ID(Bob)||r2 ) und sendet y2 an Alice 4. Alice berechnet y20 = mac (k, ID(Bob)||r2 ). Falls y2 = y20 , dann akzeptiert sie Bob als Kommunikationspartner. Ansonsten verwirft sie Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Challenge Response Verfahren mit privatem Schl¨ ussel Authentifizierung 21 / 64 Gegenseitige Authentifizierung Sicheres Mutual Challenge Response (Ablauf) Alice Bob Generiert eine Zufallzahl r1 r1 Generiert eine Zufallzahl r2 Berechnet y1 = mac (k, ID(Alice)||r1 ||r2 ) y1 , r2 Pr¨ uft, ob y1 = mac (k, ID(Alice)||r1 ||r2 ) Berechnet y2 = mac (k, ID(Bob)||r2 ) y2 Pr¨ uft, ob y2 = mac (k, ID(Bob)||r2 ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 22 / 64 Challenge Response Verfahren mit privatem Schl¨ ussel Gegenseitige Authentifizierung Bemerkungen • Das Mutual Challenge Response Protokoll ist ein gegenseitiges Authentisierungsprotokoll • Oskar kann unter anderem folgende Angriffe ausf¨uhren: . Er tritt gegen¨uber Bob als Alice auf . Er tritt gegen¨uber Alice als Bob auf . Er agiert als Man In The Middle und versucht beide Teilnehmer zu t¨auschen • 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 Public Key Verfahren Authentifizierung 23 / 64 Einleitung Authentifizierung mit Public Key Mechanismen Ansatz: Einsatz von digitalen Signaturen f¨ur die Authentifizierung • Jeder Benutzer besitzt ein Schl¨usselpaar bestehend aus einem ¨offentlichen und geheimen Schl¨ussel • Der ¨offentliche Schl¨ussel wird in einem Verzeichnis publiziert • Anstatt einen Pr¨ufsumme MAC zu berechnen, signiert ein Benutzer die von ihm versendeten Nachrichten mit seinem geheimen Schl¨ussel • Mit dem ¨offentlichen Schl¨ussel kann jeder die Signatur des Benutzers auf Korrektheit pr¨ufen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 24 / 64 Public Key Verfahren Einleitung Anwendung einer digitalen Signatur Alice Oskar Bob x x, s sign ke unsicherer Kanal x yes x, s ver kv kv usselverzeichnis Schl¨ Prof. Dr. C. Karg (HS Aalen) Benutzer Schl¨ ussel Alice kv Kryptografische Protokolle Public Key Verfahren Authentifizierung 25 / 64 Einleitung Aufbau einer digitalen Signatur Algorithmen: • Signaturalgorithmus sign • Verifikationsalgorithmus ver Notation: • s = signU (x): Berechnung der Signatur der Daten x unter Einsatz des geheimen Schl¨ussels des Benutzers U nur von U ausf¨uhrbar • verU (x, s): Verifikation der Signatur s der Daten x unter Einsatz des ¨offentlichen Schl¨ussels des Benutzers U von allen Benutzern ausf¨uhrbar Anforderung: F¨ur alle Daten x gilt: true falls s = signU (x) verU (x, s) = false falls s 6= signU (x) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 26 / 64 Public Key Verfahren Zertifikate Zertifikate Anforderung: Die Echtheit des ¨offentlichen Schl¨ussels eines Benutzers muss u¨berpr¨ufbar sein L¨osung: Eine Trusted Authority (TA) signiert die ¨offentlichen Schl¨ussel der Benutzer Technische Umsetzung: Einsatz von Zertifikaten Inhalt des Zertifikats des Benutzers U: • Eindeutige Benutzerkennung ID(U) ¨ • Offentlicher Schl¨ussel von U • Von der TA ausgestellte Signatur u¨ber die obigen Daten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 27 / 64 Zertifikate Ausstellung eines Zertifikats Erstellung eines Zertifikats f¨ur Alice: 1. Alice erzeugt ein Paar (sA , vA ) bestehend aus einem privaten Schl¨ussel sA und einem ¨offentlichen Schl¨ussel vA 2. Die TA u¨berpr¨uft die Identit¨at von Alice anhand eines konventionellen Dokuments (z.B. Ausweis, Reisepass, . . . ) 3. Die TA erstellt f¨ur Alice eine eindeutige Kennung ID(Alice) 4. Die TA signiert die Daten ID(Alice)||vA : s = signTA (ID(Alice)||vA ) 5. Die TA stellt das Zertifikat Cert(Alice) = (ID(Alice), vA , s) aus sendet es an Alice oder stellt es in einem Verzeichnis bereit Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 28 / 64 Public Key Verfahren Protokolle Protokolle fu¨r Public Key Authentifizierung • Challenge Response Protokoll • Schnorr Protokoll • Guillou-Quisquater Protokoll Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 29 / 64 Challenge Response Protokoll Public Key Challenge Response Protokoll 1. Bob generiert eine Zufallszahl r1 . Dann sendet er Cert(Bob) und r1 an Alice 2. Alice generiert eine Zufallszahl r2 . Sie berechnet y1 = signAlice (ID(Bob)||r1 ||r2 ) und sendet Cert(Alice), r2 und y1 an Bob 3. Bob verifiziert das Zertifikat Cert(Alice). Dann u¨berpr¨uft er, ob verAlice (ID(Bob)||r1 ||r2 , y1 ) = true ist. Falls ja, dann akzeptiert er Alice und berechnet er y2 = signBob (ID(Alice)||r2 ) und sendet y2 an Alice. Andernfalls bricht er das Protokoll ab 4. Alice verifiziert das Zertifikat Cert(Bob). Dann u¨berpr¨uft sie, ob verBob (ID(Alice)||r2 , y2 ) = 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 Public Key Verfahren Challenge Response Protokoll Public Key Challenge Response Protokoll (Ablauf) Alice Bob Generiert eine Zufallzahl r1 Cert(Bob), r1 Generiert eine Zufallzahl r2 Berechnet y1 = signAlice (ID(Bob)||r1 ||r2 ) Cert(Alice), r2 , y1 Pr¨ uft, ob verAlice (ID(Bob)||r1 ||r2 , y1 ) = true Berechnet y2 = signBob (ID(Alice)||r2 ) y2 Pr¨ uft, ob verBob (ID(Alice)||r2 , y2 ) = true Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren 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¨ussels 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 Public Key Verfahren Das Protokoll von Schnorr Das Protokoll von Schnorr • Protokoll zur einseitigen Authentifizierung • From Scratch“ Entwicklung auf Basis des diskreten ” Logarithmus-Problems • Effiziente Durchf¨uhrbarkeit • Voraussetzung: Trusted Authority • Aufgaben der Trusted Authority . Festlegung der ¨offentlichen Parameter . Ausstellung von Zertifikaten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 33 / 64 Das Protokoll von Schnorr Parameter des Schnorr Protokolls ¨ Offentliche 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 > 2t (Empfehlung: t = 40) Schl¨ussel eines Benutzers • Privater Schl¨ussel: sU = a ∈ {1, . . . , q − 1} ¨ • Offentlicher Schl¨ussel: vU ≡ (αa )−1 ≡ αq−a (mod p) Zertifikat eines Benutzers • Identit¨at des Benutzers ¨ • Offentlicher Schl¨ussel vU Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 34 / 64 Public Key Verfahren Das Protokoll von Schnorr 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 u¨berpr¨uft anhand Cert(Alice) Alices ¨offentlichen Schl¨ussel v . Falls dieser in Ordnung ist, dann generiert er eine Zufallszahl r ∈ {1, . . . , 2t } und sendet r an Alice. 3. Alice berechnet y = (k + ar ) mod q und sendet y an Bob. 4. Bob u¨berpr¨uft, 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 Public Key Verfahren Authentifizierung 35 / 64 Das Protokoll von Schnorr Schnorr Protokoll (Ablauf) Alice Bob Generiert eine Zufallzahl k ∈ {1, . . . , q − 1} Berechnet γ = αk mod p Cert(Alice), γ Pr¨ uft die Echtheit von Cert(Alice) Extrahiert v aus Cert(Alice) Generiert eine Zufallzahl r ∈ {1, . . . , 2t } r Berechnet y = (k + ar ) mod q y Pr¨ uft, ob γ ≡ αy v r (mod p) ¨ Offentliche Parameter: p, q, α, t Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 36 / 64 Public Key Verfahren Das Protokoll von Schnorr Schnorr Protokoll Beispiel ¨ Beispiel: Offentliche Parameter: p = 88667, q = 1031 und t = 10. Das Element α = 70322 hat die Ordnung q in Z∗p . Alice hat den privaten Schl¨ussel a = 755 erzeugt. Dann ist v = αq−a mod p = 703221031−755 mod 88667 = 13136 Angenommen, die von Alice generierte Zufallszahl ist k = 543. Dann berechnet sie γ = αk mod p = 70322543 mod 88667 = 84109 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 37 / 64 Das Protokoll von Schnorr Schnorr Protokoll Beispiel (Forts.) Anschließend sendet Alice den Wert γ an Bob. Angenommen, Bob sendet die Challenge r = 1000 an Alice. Dann berechnet Alice y = k + ar mod q = 543 + 755 · 1000 mod 1031 = 851 und sendet y an Bob. Bob u¨berpr¨uft, ob 84109 ≡ 70322851 · 131361000 (mod 88667). Da dies der Fall ist, akzeptiert Bob die Echtheit von Alice. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 38 / 64 Public Key Verfahren Das Protokoll von Schnorr Proof Of Knowledge Eigenschaft Definition. Ein Authentisierungsprotokoll besitzt die Proof Of Knowledge Eigenschaft, falls es folgende Eigenschaften besitzt: • Vollst¨andigkeit: Alice kann sich immer erfolgreich gegen¨uber Bob authentifizieren • Korrektheit: Die Wahrscheinlichkeit, dass sich Oskar gegen¨uber Bob erfolgreich als Alice autentifiziert, ist sehr gering Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 39 / 64 Das Protokoll von Schnorr Sicherheitsanalyse Annahmen • Alice und Bob sind aufrichtige Benutzer • Die ¨offentlichen Parameter sind gut gew¨ahlt Eigenschaften des Schnorr Protokolls 1. F¨ur alle alle gew¨ahlten Werte f¨ur k und r ist die Authentifizierung von Alice gegen¨uber Bob erfolgreich 2. Die Wahrscheinlichkeit, dass Oskar sich gegen¨uber 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 Public Key Verfahren Das Protokoll von Schnorr Sicherheitsanalyse (Forts.) Nachweis Punkt 1: Seien k ∈ {1, . . . , q − 1} und r ∈ {1, . . . , 2t } beliebig gew¨ahlt. Es gilt: αy v r ≡ ≡ ≡ ≡ ≡ αk+ar v r αk αar (αq−a )r αk αar αqr −ar αk αar +qr −ar αk (αq )r | {z } k (mod (mod (mod (mod (mod p) p) p) p) p) ≡1 ≡ α ≡ γ (mod p) (mod p) Also ist die Authentifizierung von Alice gegen¨uber Bob immer erfolgreich Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 41 / 64 Das Protokoll von Schnorr Sicherheitsanalyse (Forts.) Nachweis Punkt 2: Angenommen, Oskar kennt die Zufallszahl r vor Ablauf des Protokolls. Dann kann er sich gegen¨uber Bob als Alice ausweisen. Hierzu geht er folgendermaßen vor: 1. Er w¨ahlt eine beliebige Zahl y und berechnet γ = αy v r mod p 2. Er sendet Cert(Alice) und γ an Bob und erh¨alt 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 Public Key Verfahren Das Protokoll von Schnorr Sicherheitsanalyse (Forts.) Bemerkungen • Kennt Oskar r nicht, dann hat er immer noch die M¨oglichkeit, obigen Angriff mit einem zuf¨alligen Wert f¨ur r durchzuf¨uhren • Der Angriff ist erfolgreich, falls die von Bob generierte Zufallszahl mit r u¨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 u¨bertragenden Bits) • Wichtig: Bob darf nicht immer denselben Wert f¨ur r w¨ahlen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 43 / 64 Das Protokoll von Schnorr Sicherheitsanalyse (Forts.) Annahme: Die Erfolgschancen von Oskar sind gr¨oßer als 2t Dann muss Oskar ein γ und (mindestens) zwei Werte r1 und r2 kennen, f¨ur die er passende y1 und y2 berechnen kann, mit denen der obige Angriff erfolgreich durchf¨uhrbar ist F¨ur γ, r1 , r2 , y1 , y2 gilt: γ ≡ αy1 v r1 ≡ αy2 v r2 (mod p) Hieraus folgt: αy1 −y2 ≡ v r2 −r1 Prof. Dr. C. Karg (HS Aalen) (mod p) Kryptografische Protokolle Authentifizierung 44 / 64 Public Key Verfahren Das Protokoll von Schnorr Sicherheitsanalyse (Forts.) Da v ≡ α−a (mod p), folgt: αy1 −y2 ≡ α−a(r2 −r1 ) (mod p) Da α die Ordnung q in Z∗p hat, kann man hieraus folgern, dass y1 − y2 ≡ a(r1 − r2 ) (mod q) Da 0 < |r2 − r1 | < 2t und q > 2t eine Primzahl ist, ist gcd(r2 − r1 , q) = 1. Also existiert ein multiplikatives Inverses (r2 − r1 )−1 modulo q Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 45 / 64 Das Protokoll von Schnorr Sicherheitsanalyse (Forts.) Anhand von (r2 − r1 )−1 kann Oskar den geheimen Schl¨ussel von Alice berechnen: a ≡ (y1 − y2 )(r1 − r2 )−1 (mod q) Konsequenz: Die F¨ahigkeit von Oskar, einen Angriff mit einer Erfolgswahrscheinlichkeit > 2−t auszuf¨uhren, ist gleichbedeutend mit der Tatsache, dass Oskar den geheimen Schl¨ussel von Alice kennt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 46 / 64 Public Key Verfahren Das Protokoll von Schnorr Zero Knowledge Eigenschaft Beobachtung: Die Proof Of Knowledge Eigenschaft ist f¨ur die Sicherheit eines Authentisierungsprotokolls nicht ausreichend Begr¨undung: Oskar kann sich gegen¨uber Alice als Bob ausgeben und durch wiederholte Ausf¨uhrung des Protokols gen¨ugend Informationen zur Berechnung des geheimen Schl¨ussels von Alice sammeln Definition. Ein Authentisierungsprotokoll besitzt die Zero Knowledge Eigenschaft, falls die Anwendung des obigen Angriffs die Berechnung des geheimen Schl¨ussels nicht vereinfacht Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 47 / 64 Das Protokoll von Schnorr Sicherheitsanalyse Teil 2 Ziel: Nachweis der Zero Knowledge Eigenschaft f¨ur das Schnorr Protokoll Annahme: Oskar generiert r zuf¨allig unter Gleichverteilung Das Tupel (γ, r , y ) beinhaltet alle Informationen, die w¨ahrend einer Session u¨bertragen werden Die Menge aller m¨oglichen Abl¨aufe des Protokolls ist: T = {(γ, r , y ) | 1 ≤ r ≤ 2t , 0 ≤ y ≤ q − 1, γ ≡ αy v r (mod p)} Es gilt: kTk = q2t 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 Public Key Verfahren Das Protokoll von Schnorr Sicherheitsanalyse Teil 2 (Forts.) Beobachtung: • Der Wert von y ist durch die Wahl von γ und r eindeutig festgelegt • Alice zieht k zuf¨allig unter Gleichverteilung aus {0, . . . , q − 1} und berechnet αk mod p. Da α die Ordnung q hat, ist jedes Element in hαi gleichwahrscheinlich • Bob zieht r zuf¨allig unter Gleichverteilung aus {1, . . . , 2t } Folgerung: Die Wahrscheinlichkeit, dass das Tupel T = (γ, r , y ) in einer Session auftritt, ist gleich q21 t Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 49 / 64 Das Protokoll von Schnorr Sicherheitsanalyse Teil 2 (Forts.) Der Ablauf von mehreren Sessions des Schnorr Protokolls ist mit folgendem Zufallsprozess P simulierbar: 1. W¨ahle zuf¨allig unter Gleichverteilung ein r ∈ {1, . . . , 2t } 2. W¨ahle zuf¨allig unter Gleichverteilung ein y ∈ {0, . . . , q − 1} 3. Berechne γ = αy v r mod p 4. Gib das Tupel T = (γ, r , y ) zur¨uck F¨ur alle T ∈ T gilt: Prob[T tritt in einer Session auf] = Prob[T wird vom Zufallsprozess P erzeugt] 1 = q2t Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 50 / 64 Public Key Verfahren Das Protokoll von Schnorr Sicherheitsanalyse Teil 2 (Forts.) Ergebnis: Die Tatsache, dass Oskar sich gegen¨uber Alice als Bob ausgibt, vereinfacht nicht die Berechnung des geheimen Schl¨ussels Bemerkungen • F¨ur den Fall, dass Oskar r nicht unter Gleichverteilung zieht, konnte f¨ur 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 Public Key Verfahren 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 ¨offentlichen Parameter . Ausstellung von Zertifikaten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 52 / 64 Public Key Verfahren Das Protokoll von Guillou-Quisquater Parameter des Guillou-Quisquater Protokolls ¨ Offentliche Parameter: • Zahl n = p · q, wobei p und q geheime Primzahlen sind • Primzahl b mit der Eigenschaft b ≡ 1 (mod φ(n)) (Gr¨oße:40 Bit) Schl¨ussel eines Benutzers: • Privater Schl¨ussel: uU ∈ {0, 1, . . . , n − 1} ¨ • Offentlicher Schl¨ussel: vU = (u −1 )b mod n Zertifikat eines Benutzers: • Identit¨at des Benutzers Cert(U) ¨ • Offentlicher Schl¨ussel vU Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 53 / 64 Das Protokoll von Guillou-Quisquater Guillou-Quisquater Protokoll 1. Alice w¨ahlt 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 u¨berpr¨uft 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 u¨berpr¨uft, dass y ≡ v r y b (mod n). Falls ja, dass akzeptiert er die Authentizit¨at von Alice Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 54 / 64 Public Key Verfahren 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), γ Pr¨ uft die Echtheit von Cert(Alice) Extrahiert v aus Cert(Alice) Generiert eine Zufallzahl r ∈ {0, . . . , b − 1} r Berechnet y = ku r mod n y Pr¨ uft, ob γ ≡ v r y b (mod n) ¨ Offentliche Parameter: n, b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren 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¨offentlicht die Parameter n = 223693 und b. Alice erzeugt sich den privaten Schl¨ussel u = 101576 berechnet v = (u −1 )b mod n = (101576−1 )5 02 mod 223693 = 89888 und l¨asst sich von der TA ein entsprechendes Zertifikat ausstellen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 56 / 64 Public Key Verfahren Das Protokoll von Guillou-Quisquater Guillou-Quisquater Protokoll – Beispiel (Forts.) Um sich gegen¨uber Bob zu authentifizieren, generiert Alice den Wert k = 187485 und berechnet 187485503 γ = k b mod n mod 223693 = 24412 sendet Cert(Alice) und γ an Bob Bob sendet u¨berpr¨uft Cert(Alice). Ist das Zertifikat nicht in Ordnung, dann bricht er die Authentifizierung ab. Andernfalls w¨urfelt er den Challenge r = 375 und sendet diesen an Alice Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren 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 · 101576375 mod 223693 = 93725 und sendet y an Bob Bob u¨berpr¨uft, dass γ ≡ 24412 ≡ 89888375 · 93725503 ≡ v r · y b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle (mod 223693) Authentifizierung 58 / 64 Public Key Verfahren Das Protokoll von Guillou-Quisquater Sicherheitsanalyse Ziel: Nachweis der Proof Of Knowledge Eigenschaft f¨ur das Guillou-Quisquater Protokoll Zu zeigen: • F¨ur alle Werte von k und r kann sich Alice gegen¨uber Bob erfolgreich authentifizieren • Die Wahrscheinlichkeit, dass sich Oskar gegen¨uber Bob als Alice ausgeben kann, ist gleich 2−b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Public Key Verfahren Authentifizierung 59 / 64 Das Protokoll von Guillou-Quisquater Sicherheitsanalyse (Forts.) Nachweis Punkt 1: Seien k und r beliebig gew¨ahlt. Es gilt: vryb ≡ ≡ ≡ ≡ (u −b )r (ku r )b u −br k b u br kb γ (mod (mod (mod (mod n) n) n) n) Also arbeitet das Protokoll f¨ur alle Werte von k und r korrekt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 60 / 64 Public Key Verfahren Das Protokoll von Guillou-Quisquater Sicherheitsanalyse (Forts.) Nachweis Punkt 2: Angenommen, Oskar kennt einen Wert γ, f¨ur den er mit einer Wahrscheinlichkeit ε ≥ 2/b gegen¨uber Bob als Alice ausgeben kann Dann kann man annehmen, dass Oskar f¨ur dieses γ Werte y1 , y2 , r1 und r2 , wobei r1 6= r2 , berechnen kann, so dass γ ≡ v r1 y1b ≡ v r2 y2b (mod n) Der Einfachheit wird angenommen, dass r1 > r2 ist. Hieraus folgt: v r1 −r2 ≡ y2b (y1b )−1 ≡ (y2 y1−1 )b Prof. Dr. C. Karg (HS Aalen) (mod n) Kryptografische Protokolle Public Key Verfahren Authentifizierung 61 / 64 Das Protokoll von Guillou-Quisquater Sicherheitsanalyse (Forts.) Da 0 < r1 − r2 < b und b eine Primzahl ist, existiert t = (r1 − r2 )−1 mod b Oskar kann t mit dem Erweiterten Algorithmus von Euklid berechnen Folglich gilt: v (r1 −r2 )t ≡ (y2 y1−1 )bt (mod n) Da (r1 − r2 )t = `b + 1 f¨ur eine ganze Zahl `, ist v `b+1 ≡ (y2 y1−1 )bt (mod n) und somit v ≡ (y2 y1−1 )bt (v −1 )`b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle (mod n) Authentifizierung 62 / 64 Public Key Verfahren Das Protokoll von Guillou-Quisquater Sicherheitsanalyse (Forts.) Potenziert man beide Seiten dieser Gleichung mit b −1 mod φ(n), dann erh¨alt mann u −1 ≡ (y2 y1−1 )t (v −1 )` (mod n) Berechnet man das multiplikative Inverse auf beiden Seiten, dann erh¨alt man: u ≡ ((y2 y1−1 )t (v −1 )` )−1 ≡ (y2−1 y1 )t (v )` (mod n) (mod n) Also kann Oskar den geheimen Schl¨ussel von Alice effizient berechnen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 63 / 64 Zusammenfassung Zusammenfassung • Die Aufgabe eines Authentisierungsprotokolls besteht in der ¨ Uberpr¨ ufung der Echtheit eines Benutzers • Man unterscheidet: . Einseitige Authentifizierung . Gegenseitige Authentifizierung • Voraussetzungen f¨ur Authentisierungsprotokolle sind . Kenntnis eines gemeinsamen Schl¨ussels, oder . Besitz eines Public Key Schl¨usselpaars • Neben den in dieser Lerneinheit pr¨asentierten Verfahren existieren noch zahlreiche weitere Verfahren zur Authentifizierung Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Authentifizierung 64 / 64