Freitag, 8. Juni 2012


Topthema

Donnerstag, 21. September 2006 | Topthema

About Security #73: Kryptographie — Anwendungen von DES

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/031412)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Praktische Anwendungen des DES-Algorithmus sind das Thema dieser Folge. Obwohl DES, wie in About Security #71 erw�hnt, inzwischen unsicher ist, wird es weiterhin verwendet, meist in Form des noch sicheren 3DES-Verfahrens.

DES beim Einloggen

Ein leicht abge�ndertes Verfahren wird f�r die Verschl�sselung von Unix-Passw�rtern durch die Library-Funktion crypt(3) genutzt. Derartige Passw�rter werden z.B. auch in den .htaccess-Dateien des Apache-Webservers verwendet. Die Ab�nderung des DES-Verfahrens besteht in einer schl�sselabh�ngigen Eingangspermutation mit 2^12 = 4096m�glichen Permutationen. Diese soll verhindern, dass Standard-DES-Hardware zum Knacken der Passw�rter verwendet werden kann.

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

Allerdings wird nicht das Passwort selbst verschl�sselt, sondern das Passwort als Schl�ssel f�r die Verschl�sselung einer festen Zeichenkette verwendet. Der Aufruf erfolgt durch crypt(Passwort, salt).

Die traditionelle Implementierung verwendet nur die ersten acht Zeichen des Passworts, aus deren jeweils niedrigsten 7 Bit der 56-Bit-DES-Schl�ssel gebildet wird. salt, das "Salz in der Suppe", ist eine zwei Zeichen lange Zeichenkette, durch die die Eingangspermutation bestimmt wird. Mit Passwort und salt-Wert wird ein traditionell nur aus Nullen bestehender Block 25 Mal (dies dient nur der Verlangsamung) verschl�sselt und das Ergebnis als so genannter Hash-Wert (siehe About Security #102) zusammen mit dem salt-Wert in druckbarer Form gespeichert.

Neues Passwort eintragen
Neues Passwort eintragen

HTML{ -->

Neues Passwort eintragen
Neues Passwort eintragen

Soll sp�ter das Passwort gepr�ft werden, wird crypt(3) mit dem eingegebenen Passwort und dem gespeicherten salt-Wert aufgerufen und das Ergebnis der Berechnung mit dem gespeicherten Hash-Wert verglichen. Stimmen beide �berein, wird davon ausgegangen, dass auch die Passw�rter �bereinstimmen.

Gegebenes Passwort pr�fen
Gegebenes Passwort pr�fen

HTML{ -->

Gegebenes Passwort pr�fen
Gegebenes Passwort pr�fen

Aufgrund des inzwischen m�glichen Brechens von DES wurde die Funktion erweitert, sodass inzwischen je nach Implementierung zus�tzliche Algorithmen zur Berechnung des Hash-Werts zur Verf�gung stehen, die �ber spezielle salt-Werte ausgew�hlt werden.

crypt(3) kann in den meisten Programmiersprachen verwendet werden. Die Funktion darf nicht mit dem Unix-Befehl crypt(1) verwechselt werden, ein kryptographisch unbrauchbares Ver- und Entschl�sselungsprogramm.

About Security: Die komplette Serie
DES beim Onlinebanking

HBCI, das Homebanking Computer Interface, und seine Weiterentwicklung FinTS (Financial Transaction Services) verwenden 3DES im Rahmen des so genannten DES-DES-Verfahrens (DDV) zusammen mit Chipkarten (HBCI 2.2 Dokumentation (PDF), FinTS 4.0 Dokumentation (PDF)).

Elektronische Signatur
F�r die Berechnung der elektronischen Signatur wird die Hash-Funktion RIPEMD-160 (siehe About Security #102 ff.) verwendet. Deren Ergebnis wird f�r die verwendete Chipkarte passend formatiert und daraus mit dem 3DES-Verfahren mit zwei Schl�sseln mit dem Signierschl�ssel des Benutzers die elektronische Signatur berechnet.

Verschl�sselung
Jede Nachricht wird mit einem separaten Einmalschl�ssel (einer vom Sender gew�hlten Zufallszahl) mit dem 3DES-Verfahren mit zwei Schl�sseln in der Betriebsart CBC (Blockchiffre mit Blockverkettung) verschl�sselt. Der f�r die Verschl�sselung verwendete Einmalschl�ssel wird dann mit dem auf der Chipkarte gespeicherten individuellen Schl�ssel des Kunden mit dem 3DES-Verfahren mit zwei Schl�sseln in der Betriebsart ECB (Elektronisches Codebuch) verschl�sselt.

DES am Geldautomaten

DES wurde bis 1997 zur Berechnung der PIN f�r EC-Karten verwendet. Aus der vierten bis achten Ziffer der Bankleitzahl, der zehn Ziffern langen Kontonummer des Kunden und einer einstelligen Kartenfolgenummer wurde eine 16-stellige Zahl gebildet. Die Kartenfolgenummer wurde bei der Ausgabe einer neuen Karte erh�ht und sorgte daf�r, dass sich f�r jede neue Karte eine neue PIN ergab. Durch Umwandlung der Ziffern der 16-stelligen Zahl in ihre 4-Bit-Bin�rwerte (BCD, Binary Coded Decimal) entstand ein 64-Bit-Wert. Dieser wurde mit einem geheimen, nur der jeweiligen ausgebenden Bank bekannten Institutsschl�ssel mit DES verschl�sselt. Der sich ergebende 64-Bit-Schl�sseltext wurde als 16-stelliger Hexadezimalwert betrachtet. Die dritte bis sechste Hexadezimalzahl wurde f�r die PIN verwendet und in Dezimalzahlen umgewandelt. Die hexadezimalen Werte A bis F wurden in 0 bis 5 abgebildet. Als weitere Einschr�nkung wurde gefordert, dass an erster Stelle keine 0 stehen darf. Diese wurde ggf. in eine 1 umgewandelt. Mehr Infos gibt es hier (PDF).

PIN-Berechnung bis 1997
PIN-Berechnung bis 1997

HTML{ -->

PIN-Berechnung bis 1997
PIN-Berechnung bis 1997
DES beim Browsen

DES und 3DES werden vom Secure-Sockets-Layer- (SSL-)Protokoll und seinem Nachfolger Transport Layer Security (TLS) (definiert in RFC 4346) verwendet, mit dem z.B. HTTPS-Verbindungen gesichert werden. Beim Verbindungsaufbau wird immer der jeweils st�rkste bei beiden Kommunikationspartnern zur Verf�gung stehende Algorithmus ausgew�hlt. Daher kann davon ausgegangen werden, dass DES nur noch selten verwendet wird, da st�rkere Alternativen zur Verf�gung stehen. Freie Implementierungen von SSL und TLS, die auch weitere Krypto-Funktionen enthalten, sind OpenSSL und GnuTLS.

In der n�chsten Folge wird der offizielle Nachfolger von DES vorgestellt: AES.

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

About Security � �bersicht zum aktuellen Thema "Kryptographie � DES"

Kommentare

Folgende Links könnten Sie auch interessieren