© SkyPics Studio/Shutterstock.com
Entwickler Magazin
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.

Artikelserie

Teil 1: Grundlagen

Teil 2: Zufallszahlengeneratoren und symmetrische Verschlüsselung

Teil 3: Hash-Funktionen und Message-Authentication-Codes

Teil 4: Asymmetrische Verschlüsselung

Teil 5: Zertifikate, HTTPS und Co.

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 Manipul...

Entwickler Magazin
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.

Golo Roden


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.

Artikelserie

Teil 1: Grundlagen

Teil 2: Zufallszahlengeneratoren und symmetrische Verschlüsselung

Teil 3: Hash-Funktionen und Message-Authentication-Codes

Teil 4: Asymmetrische Verschlüsselung

Teil 5: Zertifikate, HTTPS und Co.

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 Manipul...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang