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