Freitag, 10. Februar 2012

News

präsentiert von: entwickler.com
Donnerstag, 19. April 2007

About Security #101: Diffie-Hellman- Schlüsselaustausch

Der Diffie-Hellman-Schlüsselaustausch wurde von Whitfield Diffie und Martin E. Hellman 1976 in ihrem Paper "New Directions in Cryptography" (PDF) vorgestellt, der ersten Arbeit über asymmetrische Kryptographie. Das britische 'Government Communications Headquarters' (GCHQ) behauptete 1997, schon davor das RSA- und Diffie-Hellman-Verfahren erfunden, aber geheim gehalten zu haben. Das ist durchaus plausibel, die Ehre gebührt aber üblicherweise dem, der etwas zuerst veröffentlicht. Siehe dazu auch Bruce Schneiers Crypto-Gram Newsletter vom 15. Mai 1998.

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Das Prinzip des Diffie-Hellman-Schlüsselaustauschs besteht darin, dass sich die Kommunikationspartner über eine unsichere Verbindung je eine Nachricht zusenden, aus denen sie dann einen gemeinsamen Schlüssel berechnen können. Ein Dritter, der die Nachrichten belauscht, ist dazu nicht in der Lage. Das Verfahren ist allerdings unsicher, wenn der Dritte als Man-in-the-Middle die Nachrichten manipulieren kann.

Mathematische Beschreibung

Im Folgenden wird von zwei Kommunikationspartnern ausgegangen, den traditionellen Alice und Bob.

  1. Alice und Bob einigen sich auf eine Primzahl p und eine Primitivwurzel (*) g mod p mit 1 < g < p-1.
    p und g müssen nicht geheim bleiben, können also über eine unsichere Verbindung übertragen werden. Außerdem können sie vorab vereinbart und immer wieder verwendet werden.
  2. Alice wählt eine geheime Zahl a < p und sendet Bob A = g^a mod p
  3. Bob wählt eine geheime Zahl b < p und sendet Alice B = g^b mod p
    A und B müssen nicht geheim bleiben, können also über eine unsichere Verbindung übertragen werden.
  4. Alice berechnet k = B^a mod p (und kann danach a löschen).
  5. Bob berechnet k' = A^b mod p (und kann danach b löschen).

(*) g ist eine Primitivwurzel von p, wenn sich alle Zahlen von 1 bis p-1 als Reste der Form g^i mod p darstellen lassen.

k und k' sind identisch, denn es gilt k = g^ba mod p = g^ab mod p = k', und können als Sitzungsschlüssel für ein symmetrisches Verfahren verwendet werden.

Ein lauschender Angreifer (üblicherweise Eve genannt) kennt zwar p, g, A und B, aber um den Schlüssel k zu ermitteln, muss er das so genannte Diffie-Hellman-Problem lösen:
Bekannt sind g, g^xund g^y. Welchen Wert hat g^xy?
Dazu muss er diskrete Logarithmen berechnen können: Er benötigt das x aus g^x mod p (oder das y aus g^y mod p). Dies ist ein mathematisch hartes Problem und ähnlich schwer wie die Faktorisierung.

About Security: Die komplette Serie

Die Sicherheit des Verfahrens hängt entscheidend von der Größe von p ab. Außerdem sollte (p-1)/2 ebenfalls eine Primzahl sein. g kann beliebig groß gewählt werden, es muss nur eine Primitivwurzel modulo p sein. Es spricht nichts dagegen, das kleinstmögliche g zu wählen.

Man-in-the-Middle-Angriff

Kann der Angreifer Mallory als Man-in-the-Middle die ausgetauschten Nachrichten manipulieren, kann er den Schlüsselaustausch unterlaufen: Er fängt die Nachrichten ab und sendet seinen eigenen Wert M = g^m mod p mit einem beliebigen m statt A und B. Es findet also je ein Schlüsselaustausch zwischen Alice und Mallory und zwischen Mallory und Bob statt – ohne dass Alice und Bob etwas von Mallory wissen. Damit ergeben sich folgende Schlüssel:

Alice: kA = M^a mod p = g^ma mod p
Bob: kB = M^b mod p = g^mb mod p
Mallory: kA = A^m mod p = g^am mod p und kB = B^m mod p = g^bm mod p

Mallory fängt danach die symmetrisch verschlüsselten Daten ab, entschlüsselt sie mit dem zum jeweiligen Absender gehörenden Schlüssel und verschlüsselt sie vor dem Weiterleiten mit dem zum Empfänger gehörenden Schlüssel. Dabei kann er die entschlüsselten Daten beliebig manipulieren.

Um diesen Angriff zu verhindern, müssen die ausgetauschten Nachrichten durch eine digitale Signatur oder einen Message Authentication Code authentisiert werden.

Zwei Zahlenbeispiele
1) Diffie-Hellman-Schlüsselaustausch mit Lauscher
Alice Eve Bob
Lass uns p=23 nehmen.
p=23 p=23
Einverstanden. Und g=5.
g=5 g=5
Wählt geheime Zahl a=6
Berechnet 5^6 mod 23 = 8 = A
Meine Zahl: A=8
A=8 A=8
Wählt geheime Zahl b=15
Berechnet 5^15 mod 23 = 19 = B
Meine Zahl: B=19
B=19 B=19
Berechnet 19^6 mod 23 = 2 = k Berechnet 8^15 mod 23 = 2 = k
k=???
2) Diffie-Hellman-Schlüsselaustausch mit Man-in-the-Middle
Alice Mallory Bob
Lass uns p=23 nehmen.
p=23 p=23
Einverstanden. Und g=5.
g=5 g=5
Wählt geheime Zahl a=6
5^6 mod 23 = 8 = A
Meine Zahl: A=8
A=8
Wählt m=3
Berechnet M = 5^3 mod 23 = 10
Fälscht A=10
A=10
Wählt geheime Zahl b=15
Berechnet 5^15 mod 23 = 19 = B
Meine Zahl: B=19
B=19
Fälscht B=10
B=10
Berechnet 10^6 mod 23 = 6
 
Berechnet 8^3 mod 23 = 6 (Schlüssel mit Alice)
Berechnet 19^3 mod 23 = 5 (Schlüssel mit Bob)
 
Berechnet 10^15 mod 23 = 5
Diffie-Hellman-Schlüsselaustausch mit mehr als 2 Partnern

Das Protokoll lässt sich auch so erweitern, dass mehr als 2 Kommunikationspartner einen Schlüssel austauschen können. Im Folgenden wird das Verfahren für drei Partner, Alice, Bob und Carol, beschrieben. Entsprechend kann es auch auf mehr Partner erweitert werden.

  1. Alice wählt a und sendet Bob A = g^a mod p
  2. Bob wählt b und sendet Carol B = g^b mod p
  3. Carol wählt c und sendet Alice C = g^c mod p
  4. Alice sendet Bob C' = C^a mod p
  5. Bob sendet Carol A' = A^b mod p
  6. Carol sendet Alice B' = B^c mod p
  7. Alice berechnet k = B'^a mod p
  8. Bob berechnet k = C'^b mod p
  9. Carol berechnet k = A'^c mod p

Der geheime Schlüssel k ist g^abc mod p.

In der nächsten Folge werden die schon mehrmals erwähnten Hashfunktionen vorgestellt.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

Kommentare

Gravatar Gabber 25.05.2009
um 03:05 Uhr
"Um diesen Angriff zu verhindern, müssen die ausgetauschten Nachrichten durch eine digitale Signatur oder einen Message Authentication Code authentisiert werden. "
Genau dazu hätte ich hier gerne mehr gelesen
#zitieren

Konferenzen

BASTA! 2012

BASTA! 2012

27.- 2. März 2012
Maritim Hotel Darmstadt

MobileTech Conference

MobileTech Conference

26.-28. März 2012
München

JAX 2012

JAX 2012

16.-20. April 2012
Rheingoldhalle, Mainz

BigData Con 2012

BigData Con 2012

16.-18. April 2012
Rheingoldhalle, Mainz

Business Technology Days

Business Technology Days

17.-19. April 2012
Rheingoldhalle, Mainz

International PHP Conference

International PHP Conference

3.- 6. Juni 2012
Maritim proArte, Berlin

webinale 2012

webinale 2012

4.- 6. Juni 2012
Maritim proArte Berlin

RailswayCon

RailswayCon

4.- 6. Juni 2012
Maritim proArte, Berlin

Werbung
Top-Jobs

Fraunhofer-Institut für Windenergie und Energiesystemtechnik IWES

Informatikerin / Informatiker

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

Sharepoint

Sharepoint Magazin

Sharepoint

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

PHP User - Praktische Referenz für Internetenthusiasten

PHP User

Praktische Referenz für Internetenthusiasten

Bücher




Webhosting mit Host Europe