zur Startseitezur Glossar-Startseite

Glossar: Fingerprint

07.02.2014

Als Fingerprint bezeichnet man die (derzeit typischerweise 40 Zeichen (160 Bit) lange) Zeichenkette, mit der Schlüssel (genauer: Zertifikate) eindeutig identifiziert werden.

Die Annahme ist: Wenn zwei Datensätze denselben Fingerprint haben, dann sind auch die Daten identisch. Da die Fingerprints aber viel kürzer ist als die Daten, kann man erstere im Gegensatz zu letzteren ohne technische Hilfe (und mit vertretbarem Aufwand) vergleichen. Beispiel (SHA-1, OpenPGP):

CF51 CB88 7D9A B184 AD50 21F4 DA6B 2836 5A21 B2D0

Fingerprints werden verwendet, um Schlüssel zu verifizieren. Die Zertifikate (öffentlichen Schlüssel) besorgt man sich zumeist aus einer unsicheren Quelle (Keyserver, Webseite). Deshalb braucht man den Fingerprint aus sicherer Quelle (z.B. auf Papier übergeben; mit Abstrichen: am Telefon vorgelesen). Wenn die Fingerprints übereinstimmen, dann ist das Zertifikat authentisch.

verwandte Begriffe

Hauptschlüssel

Der Wert dieser Zeichenkette (die eine Zahl darstellt) liegt darin, dass einerseits die Art ihrer Berechnung (die Hashfunktion) es unmöglich machen soll, passende Daten zu konstruieren, um den gewünschten Wert herauszubekommen, und andererseits die von dieser Zeichenkette codierte Zahl so immens groß ist, dass es unmöglich ist, durch reines Ausprobieren auf passende Daten zu stoßen. Daraus ergeben sich zwei Anforderungen für gute (d.h. kryptografisch sichere) Hashfunktionen:

  1. Der Algorithmus muss fehlerfrei sein, d.h., er darf keine "Abkürzungen" zulassen.

  2. Die Länge des Hashwerts muss ausreichend sein, um auch mit großem Aufwand betriebenen Angriffen standzuhalten.

Es sind schon mehrere Hashfunktionen aussortiert worden, weil sie erwiesenermaßen nicht mehr sicher waren. Nicht immer ist die IT-Branche clever genug, das schon dann zu tun, wenn eine Hashfunktion theoretisch gebrochen ist; Ende 2008 gab es richtig Ärger, als ganz praktisch demonstriert wurde, dass Zertifizierungen mit der Hashfunktion MD5 nicht mehr sicher sind.

Inzwischen gilt auch die bei OpenPGP vielfach verwendete Hashfunktion SHA-1 als nicht mehr sicher, wobei zwischen Preimage- und Kollisionsangriffen unterschieden werden muss. Um den Fingerprint eines vorgegebenen OpenPGP-Zertifikats zu fälschen, ist ein Preimage-Angriff nötig, der derzeit noch als unmöglich gilt. Wenn einem aber Daten vorgelegt werden, die man nicht (komplett) selber erzeugt hat, sind Kollisionsangriffe eine Bedrohung. Man sollte also darauf achten, dass man keine Daten (und auch keine Schlüssel) mit SHA-1 signiert. Leider lässt sich das nicht trivial verhindern (ohne sich andere Ärgernisse einzuhandeln).

Es gibt eine Reihe von Hashfunktionen (hier: Hashwerte der Zeichenkette hash):

start cmd:> echo -n hash | gpg --print-mds
   MD5 = 08 00 FC 57 72 94 C3 4E  0B 28 AD 28 39 43 59 45
  SHA1 = 2346 AD27 D756 8BA9 896F  1B7D A6B5 9912 51DE BDF2
RMD160 = 7304 5E2E 25B9 531D 5CB6  76CF 73FF F291 D4A1 EE6D
SHA224 = 6221ECDB 4C229EC0 8E08313F DEBEEC46 D09031B7 8BF3907D 5FAB7202
SHA256 = D04B98F4 8E8F8BCC 15C6AE5A C050801C D6DCFD42 8FB5F9E6 5C4E16E7 807340FA
SHA384 = E8D28684 0C4A8469 76DEC3B5 FD54B712 DC90657A DC277882 308DA1B7 76B8F2A3
         97AFCF64 C153E8D0 2357BAE1 C457441F
SHA512 = 30163935 C002FC4E 1200906C 3D30A9C4 956B4AF9 F6DCAEF1 EB4B1FCB 8FBA69E7
         A7ACDC49 1EA5B1F2 864EA8C0 1B01580E F09DEFC3 B11B3F18 3CB21D23 6F7F1A6B