© SkyPics Studio/Shutterstock.com
Teil 3: Hash-Funktionen und Message-Authentication-Codes

Welcher Hash darfs sein?


Nachrichten zu verschlüsseln schützt nicht vor Manipulation. Wie lässt sich die Integrität von Daten beweisen? Hash-Funktionen und Message-Authentication-Codes helfen.

Wer Nachrichten verschlüsselt, macht das, um ihre Inhalte vor den neugierigen Blicken Dritter zu schützen. Verwendet man dazu einen sicheren und zeitgemäßen Algorithmus wie AES oder das One-Time Pad (OTP), lässt sich das Ziel mit überschaubarem Aufwand erreichen. Allerdings wiegt man sich rasch zu sehr in Sicherheit: Denn das Verschlüsseln von Nachrichten schützt nicht vor deren Manipulation.

Das mag zunächst unerwartet sein, ist aber letztlich logisch. Beim Verschlüsseln werden nämlich lediglich die Zeichen des Klartexts durch andere Zeichen ersetzt, je nach Algorithmus auf mehr oder weniger komplizierte Art. Dabei findet aber keinerlei Plausibilitätsprüfung statt, immerhin lässt sich auch jeder beliebige Text verschlüsseln.

Greift man noch einmal auf die Cäsar-Verschlüsselung zurück, die aus dem ersten Teil dieser Serie bekannt ist, lässt sich das sehr anschaulich demonstrieren. Verschlüsselt man beispielsweise den Klartext LIEBE SUSANNA, indem man die Buchstaben um ein Zeichen im Alphabet verschiebt, erhält man den Geheimtext MJFCF TVTBOOB. Ein Angreifer kann diesen Geheimtext manipulieren, beispielsweise indem die ersten fünf Zeichen durch den Text IBMMP ersetzt werden. Man erhält so den geänderten Geheimtext IBMMP TVTBOOB.

Entschlüsselt man ihn nun wieder, indem man die Verschiebung rückgängig macht, erhält man als Klartext HALLO SUSANNA. Das erste Wort ist also erfolgreich ersetzt worden. Damit ist es theoretisch möglich, jede verschlüsselte Nachricht zu manipulieren.

Sicherheit von Text – und von Zahlen?

Zugegebenermaßen ist das bei Text wenig sinnvoll, da selten eine zielgerichtete Manipulation möglich ist. Es liegt auf der Hand, dass das vorige Beispiel entsprechend konstruiert war, damit sich wieder ein vernünftiger Klartext ergibt. Eine Manipulation ohne Kenntnis des verwendeten Schlüssels ist da schon schwieriger und führt in der Regel zu einem sinnlosen Klartext, ist also wenig erfolgversprechend.

Doch was passiert, wenn eine Nachricht keinen menschenlesbaren Text enthält, sondern beispielsweise Messdaten eines Sensors? In diesem Fall führt die Manipulation eines nahezu beliebigen Zeichens zu verfälschten Messwerten. Denkt man dabei an Szenarien, in denen zum Beispiel medizinische Daten erfasst werden, ist schnell klar, dass ein verfälschter Wert unter Umständen über Leben und Tod entscheiden kann.

Wie schwierig es ist, verfälschte Zahlen aufzudecken, zeigt der Informatiker David Kriesel in seinem äußerst unterhaltsamen und lehrreichen Vortrag „Traue keinem Scan, den du nicht selbst gefälscht hast“ [1]. Darin zeigt er, wie einige Kopierer von Xerox beim Scannen von Dokumenten unter gewissen Umständen Zahlen verfälschen, die zu allem Unglück auch noch perfekt ins Layout des gescannten Dokuments passen.

Solche Fehler fallen nur auf, wenn die Daten semantisch nicht mehr sinnvoll sind – wenn also beispielsweise die Abstellkammer auf einem Grundriss mehr Quadratmeter aufweist als der nebenan liegende Ballsaal. Doch solche verhältnismäßig offensichtlichen Fehler sind selten, und müssen zudem trotzdem erst einmal auffallen. Wie lässt sich also die Integrität von Nachrichten sicherstellen und überprüfen?

Ein digitaler Fingerabdruck

Abhilfe schaffen hier die sogenannten Hash-Funktionen. Dabei handelt es sich um mathematische Funktionen, die zu einem gegebenen Ei...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang