Skip to content

Verfahren der Kryptographie, Teil 4: Anwendungsbeispiele für den Data Encryption Standard (DES)

DES war lange Zeit der Standard (da der einzige offizielle) für die symmetrische Verschlüsselung von Daten. Entsprechend gross war seine Verbreitung. Und auch als schon absehbar, war, dass die Sicherheit schon bald nicht mehr ausreichend war wurde es weiter eingesetzt - selbst dann noch, als mit AES der Nachfolger veröffentlicht wurde. Inzwischen ist das Geschichte, trotzdem möchte ich einige Beispiele hier vorstellen.

DES beim Einloggen

Eine leicht abgeänderte Version des DES-Verfahren wird für die Verschlüsselung von Unix-Passwörtern durch die Library-Funktion crypt(3) genutzt. Derartige Passwörter werden zum Beispiel auch in den .htaccess-Dateien des Apache-Webservers verwendet. Die Abänderung des DES-Verfahrens besteht in einer schlüsselabhängigen Eingangspermutation mit 212 = 4096 möglichen Permutationen. Diese soll verhindern, dass Standard-DES-Hardware zum Knacken der Passwörter verwendet werden kann.

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 sog. Hash-Wert zusammen mit dem salt-Wert in druckbarer Form gespeichert, siehe Abbildung 1.

crypt(3): Neues Passwort eintragen
Abb. 1: crypt(3): 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, siehe Abbildung 2.

crypt(3): Gegebenes Passwort prüfen
Abb. 2: crypt(3): 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-Wertes 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.

DES beim Online-Banking

HBCI, das Homebanking Computer Interface, und seine Weiterentwicklung FinTS (Financial Transaction Services) verwenden 3DES im Rahmen des sog. DES-DES-Verfahrens (DDV) und des RSA-DES-Hybridverfahrens zusammen mit Chipkarten (siehe "HBCI 2.2 Dokumentation", PDF, und "FinTS V4.0 Kompendium", PDF).

Elektronische Signatur
Für die Berechnung der elektronischen Signatur wird die Hash-Funktion RIPEMD-160 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, das 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, siehe Abbildung 3. 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.

Weitere Informationen gibt es im Paper "Probability Theory for Pickpockets— ec-PIN Guessing" (PDF) von Markus G. Kuhn.

PIN-Berechnung bis 1997
Abb. 3: PIN-Berechnung bis 1997

DES beim Browsen

DES und 3DES werden vom Secure Sockets Layer (SSL) Protokoll und seinem Nachfolger Transport Layer Security (TLS) bis TLS 1.1 (definiert in RFC 4346) verwendet, mit dem zum Beispiel HTTPS-Verbindungen gesichert werden. Im aktuellen Standard TLS 1.2 (RFC 5246) wurde DES als "deprecated" markiert, es sollte nicht mehr verwendet werden.

Da beim Verbindungsaufbau immer der jeweils stärkste bei beiden Kommunikationspartnern zur Verfügung stehende Algorithmus ausgewählt wird, sollte davon ausgegangen werden, dass DES nur noch äußerst selten verwendet wird, da stärkere Alternativen zur Verfügung stehen. Leider gab es in den letzten Jahren immer wieder Downgrade-Angriffe auf HTTPS-Verbindunen, so dass man sich darauf wohl besser nicht verlassen und ggf. vorsichtshalber alle DES nutzenden Chipersuiten manuell löschen sollte.

DES verschlüsselt 64 Bit lange Klartextblöcke. Da die zu verschlüsselnden Daten i.d.R. deutlich länger sind und nicht zwingend Blockweise vorliegen, wurden verschiedene Betriebsarten für Blockchiffren entwickelt und teilweise genormt. Diese Betriebsarten werden in der nächsten Folge vorgestellt.

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : Kryptographie - Ein Überblick

Vorschau anzeigen
Die Kryptographie ist ein ein sehr umfangreiches Themengebiet, und obwohl ich mich jetzt seit 30 Artikeln damit befasst habe sind längst nicht alle Themen vorgestellt worden. Aber zumindest die wichtigsten habe ich beschrieben, und damit soll e