Die Integrität der Blockchain wird anhand von Hashwerten überprüft

Hashwerte sind eine der wichtigsten Basistechnologien der Blockchain. Viele verwechseln das mit Kryptographie. Wer aber die Blockchain und deren Sicherheitsfeatures verstehen will, muss wissen, wie Hashwerte funktionieren und was sie sind.

Bitcoin kurz analysiert – Währung, Kapitalanlage oder Spekulation? Wie spekuliert man am besten mit der Kryptowährung? – weitere Informationen zum Thema bietet mein KOSTENLOSES WHITEPAPER! Tragen Sie hier Ihre eMail-Adresse ein

Biometrische Daten wie Fingerabdrücke oder ein Scan der Iris ermöglichen die eindeutige Identifikation von Menschen. Ebenso erlaubt die DNA-Analyse die eindeutige Identifikation von Menschen oder die fast einhundertprozentige Feststellung der Vaterschaft. Hashwerte lassen sich als das digitale Gegenstück dazu auffassen. Die in der Blockchain zum Einsatz kommenden kryptographischen Hashwerte werden dort umfassend verwendet und können aus beliebigen Daten erzeugt werden. Es ist ein verbreitetes Missverständnis, dass Hashwerte zur klassischen Verschlüsselung von Daten verwendet werden. Das ist nicht der Fall. Neben den Hashfunktionen macht die Blockchain aber sehr wohl von einer sicherheitskritischen Basistechnologie Gebrauch: der asymmetrischen Kryptographie.

Verschlüsselungsverfahren (auch Chiffrierungsverfahren genannt) verfolgen den Zweck, Daten zunächst unlesbar zu machen, um sie dann mittels eines Schlüssels wiederherzustellen. Mittels eines passenden Schlüssels können verschlüsselte Daten also wieder entschlüsselt werden. Das ist bei Hashwerten nicht der Fall. Es ist unmöglich, die ursprünglichen Daten aus den Hashwerten wiederherzustellen.

„To hash“ lässt sich mit „zerhacken“ oder „verstreuen“ übersetzen. In der Kryptographie werden Hashfunktionen angewendet, um einen Inhalt nahezu (wie auch Fingerprints mit beinahe hundertprozentiger Wahrscheinlichkeit) eindeutig zu identifizieren, ohne den Inhalt offenzulegen. Wird in einem Kriminalfall ein Fingerabdruck gefunden und stimmt er mit einem anderen Fingerabdruck überein, so weiß man auch, dass es sich um ein und demselben Täter handelt. Wie dieser aussieht, welches Gewicht er hat, ob er Österreicher oder Amerikaner ist, weiß man allerdings nicht.

Welche Bedeutung haben Hashwerte im Rahmen der Blockchain?

Hashwerte haben bei Peer-to-Peer-Anwendungen aus verschiedenen Gründen eine wichtige Aufgabe. Die Hashwerte werden hier sowohl zum Suchen und Identifizieren von Dateien als auch zum Erkennen und Prüfen von übertragenen Dateifragmenten verwendet. Zur Anwendung kommen vor allem gestufte Hashfunktionen, bei denen für kleinere Teile einer Datei jeweils ein Hashwert und dann aus diesen Werten ein Gesamtwert berechnet wird.

Zum Hashen von Passwörtern, mit dem Ziel, daraus Schlüssel zu gewinnen, werden spezielle Hashfunktionen verwendet. Diese sind besonders aufwändig zu berechnen, um Brute-Force-Angriffe zu erschweren. Wie erfolgt nun beispielsweise das gesicherte Speichern von Passwörtern mit Hilfe von Hashwerten bei Internetanbietern: Nachdem ein Passwort eingegeben wird, wird daraus ein Hashwert erzeugt. Dieser wird vom Internetunternehmen gespeichert, nicht das Passwort. Gibt ein User nun beim nächsten Anmelden auf einer Plattform wiederum sein Passwort ein, so wird daraus wieder ein Hashwert erzeugt. Stimmt dieser neue Hashwert mit dem bereits gespeicherten Hashwert überein, so weiß das System, dass die Passworteingabe korrekt war. Das echte Passwort musste niemals gespeichert werden.

Hashfunktionen erzeugen Hashwerte

Hashfunktionen werden auch als Streuwertfunktionen bezeichnet und sind Algorithmen. Ihre Aufgabe besteht darin, als Ergebnis einer Eingabe oft eine Hexadezimalzahl mit fester Länge zu erzeugen. Hexadezimalzahlen bestehen aus Werten von 0 bis 9 sowie A bis F. Ein Beispiel für einen derartigen Hexadezimalwert als Hashwert wäre also beispielsweise die Zeichenfolge „35F7A29B44“. Es gibt aber in der Praxis selbstverständlich auch Hashfunktionen, die wesentlich längere Hashwerte mit einer vielfältigeren Palette an möglichen Zeichen aufweisen. Eingegeben wird ein beliebig umfangreiches Datenpaket, ausgegeben wird ein Hashwert mit fixer Länge. Es gibt unterschiedliche Hashfunktionen, die jeweils unterschiedlich lange Hashwerte erzeugen. Kryptographische Hashfunktionen erzeugen quasi digitale Fingerabdrücke beliebiger Daten.

Bitcoin kurz analysiert – Währung, Kapitalanlage oder Spekulation? Wie spekuliert man am besten mit der Kryptowährung? – weitere Informationen zum Thema bietet mein KOSTENLOSES WHITEPAPER! Tragen Sie hier Ihre eMail-Adresse ein

Hashfunktionen ermöglichen die schnelle Bereitstellung von Hashwerten für beliebige Daten. Wichtig sind beide Aspekte, sowohl die Anwendbarkeit der Hashfunktion auf beliebige Daten als auch die Geschwindigkeit der Berechnung. Entscheidend ist, dass bei Anwendung einer Hashfunktion auf ein konkretes Datenpaket immer dasselbe Ergebnis als Hashwert resultiert. Die Hashfunktion wird deshalb als „deterministisch“ bezeichnet. Gibt es auch nur minimale Abweichungen bei den Eingabedaten, so muss sich der erzeugte Hashwert aber auf unvorhersehbare Art ändern. Man sagt deshalb, dass die Hashfunktion „pseudozufällig“ ist.

Die Hashfunktion erzeugt weiters Hashwerte, aus denen sich nicht die zugrundeliegenden Eingabedaten ableiten lassen. Es handelt sich daher um eine „Einwegfunktion“, die unumkehrbar ist. Man kann sich das so vorstellen: Wenn in der realen Welt umfangreiche Dokumente ausgetauscht wurden, so genügt es, wenn die Tauschpartner über eine Hashfunktion aus den übermittelten Daten einen Hashwert erzeugen. Am Telefon können sie dann den erzeugten Hashwert vergleichen. Stimmt der bei beiden Partnern überein, so wissen sie, dass exakt das selbe Dokument bei beiden Parteien vorliegt. Das ist vergleichbar mit einem Codewort in alten Agentenfilmen. Was dahintersteckt, lässt sich alleine aus dem Codewort nicht ableiten.

Die Hashfunktion muss darüber hinaus „kollisionsresistent“ sein. Es muss nahezu unmöglich sein, zwei oder mehrere unterschiedliche Datensätze zu finden, aus denen derselbe Hashwert errechnet wird. Passiert das trotzdem, so liegt eine extrem seltene „Hashkollision“ vor. Dazu finden sie in diesem Blogpost noch ein Beispiel. Es soll ja auch extrem selten zwei Menschen mit demselben biometrischen Daten geben. Diese Kollisionsresistenz ist in Peer-to-Peer-Systemen wichtig, um die Integrität von Daten sicherzustellen und digitale Signaturen zu ermöglichen.

Verschiedene Hashfunktionen sind allgemein in Verwendung, insbesondere:

Kryptographische Hashfunktionen für Blockchain-Anwendungen erfordern allerdings ein besonderes Maß an Sicherheit. Sonst wären Kryptowährungen nicht möglich. Bitcoin nutzt beispielsweise den SHA256-Algorithmus, um Überweisungen in Bitcoin in Hash-Blöcken zusammenfassen zu können.

Risiken treten auf, wenn Hashfunktionen einmal geknackt wurden

Wurden Hashfunktionen einmal geknackt, dann ist keine Sicherheit mehr gegeben. Im Internet sind Listen mit geknackten Hashfunktionen zu finden. Man sollte bei der Anwendung von Hashfunktionen daher immer auf dem letzten Stand sein. Ist eine Hashfunktion einmal geknackt, dann ist auch ein Rückschluss auf die Originaldaten, beispielsweise Passwörter möglich. Es gibt sogenannte „Regenbogentabellen“, bei denen geklaute Datenbanken mit den Hashwerten von Plattformen auf unsichere Passwörter hin mittels eines Hashgenerators automatisch untersucht werden. Wird nach dem Trial & Error Verfahren eine Übereinstimmung zwischen den gestohlenen Hashwerten und den neu ermittelten gefunden, dann liegt auch das Originalpasswort offen da und steht für Missbrauch offen. Auf diesem Weg gelangen kriminelle Hacker auch immer wieder an Passworte.

Das könnte theoretisch auch mit Schlüsseln innerhalb der Blockchain passieren. Kryptographische Hashfunktionen gelten allerdings bislang als sicher. Hier dürfte es wohl die Rechenleistung von noch zu entwickelnden Quantencomputern erfordern, um diese Hashfunktionen zu knacken. Dies ist aber noch Zukunftsmusik. Allerdings ist damit zu rechnen, dass dies irgendwann einmal der Fall sein dürfte.

Ein praktisches Beispiel zeigt, wie sich Hashwerte erzeugen lassen

Die Website http://www.blockchain-basics.com/HashFunctions.html ermöglicht das Ausprobieren vier verschiedener Hashfunktionen auf ein Datenpaket. Rufen Sie einfach einmal die Seite auf und geben sie als Input einen beliebigen Text ein. Dann bestätigen Sie mit „Calculate Hash Value“. Als Output erhalten Sie vier verschiedene Hashwerte. Jede der vier Hashfunktionen liefert jeweils einen anderen Hashwert.

Quelle: http://www.blockchain-basics.com/HashFunctions.html, Zugriff 17.05.2018

Wenn sie Guten Morgen! exakt so eingeben wie hier im Bild (Ohne Anführungszeichen, mit Abstand zwischen den Worten und Rufezeichen am Ende), dann erhalten Sie exakt dieselben Hashwerte wie hier oben im Bild dargestellt. Vergleichbar funktionieren auch die Hashfunktionen in der Blockchain mit jeder beliebigen Dateneingabe.

Die Anwendung von Hashfunktionen lässt sich verschieden kombinieren

Für jeden eingegebenen Datensatz existiert ein eindeutiger Hashwert. Hashfunktionen akzeptieren aber jeweils nur einen konkreten Datensatz als Input, nicht mehrere voneinander unabhängige. Nachdem in der Praxis oft auch für große Datensammlungen ein Hashwert benötigt wird, wird die Hashfunktion in der Realität auch mehrfach auf verschiedene Daten angewandt. So kann eine Hashfunktion auch auf einen Hashwert als Eingabe angewendet werden, denn auch ein Hashwert ist ein Datensatz. Das kann auch beliebig oft hintereinander geschehen.

In der Praxis üblich ist auch das kombinierte Anwenden von Hashfunktionen. Werden mehrere unabhängige Datensätze vor Anwendung der Hashfunktion zu einem Datensatz zusammengeführt („kombiniert“) und wird dieser dann gehasht, so ergibt sich als Ergebnis ein einziger Hashwert. Einer dieser zusammengefügten Datensätze kann dabei durchaus ein Hashwert sein, der aus einem anderen Datensatz erzeugt worden ist. Aber es können auch beide kombinierten Datensätze selbst jeweils Hashwerte sein, aus denen dann wiederum ein einziger neuer Hashwert erzeugt wird.

Hashfunktionen erfüllen im Rahmen der Blockchain verschiedene Aufgaben. Auf diese werde ich in einem weiteren Blogpost demnächst eingehen.

Was ist eine Hashkollision und wie wird sie bei Bitcoin verhindert?

Ich habe bereits ausgeführt, dass eine Hashkollision vorliegt, wenn zwei unterschiedliche Datensätze den selben Hashwert ergeben. Das ist bei kryptographischen Hashfunktionen sehr, sehr selten der Fall. Es ist ja auch selten der Fall, dass zwei Menschen denselben Fingerabruck aufweisen, allerdings kann man es auch nicht gänzlich ausschließen. Tritt es auf, dann ist die Hashfunktion nicht mehr sicher. Ein sehr vereinfachtes Beispiel für eine Hashkollision würde etwa so aussehen:

Quelle: https://www.datenschutzbeauftragter-info.de/hashwerte-und-hashfunktionen-einfach-erklaert/, Zugriff 17.05.2018

Eine derartige Hashkollision wird von Hackern immer wieder angestrebt, um dadurch eine Hashfunktion zu knacken. Besonders problematisch wäre das beispielsweise im Rahmen der Bitcoin-Blockchain, wenn bei einer digitalen Signatur eine Hashkollision vorkäme. Dann nämlich könnte ein Hacker dies benutzen, um von einem Benutzerkonto einen anderen Betrag abzubuchen, ohne dass dies jemand anderer entdecken würde. Erfreulicherweise ist dies so gut wie unmöglich. Gerade bei Bitcoin werden Hashfunktionen doppelt angewendet, um eine weitere Hürde aufzubauen. Das bedeutet, dass der erste Hashwert erneut gehasht wird.

Bitcoin verwendet ein asymmetrisches Kryptosystem, das „Elliptic Curve Cryptography“ (ECC) genannt wird. Bei diesem Verfahren reichen bereits kurze Schlüssellängen zu einer enormen Sicherheit. Bei Bitcoin werden öffentliche Schlüssel mit einer Länge von 160 Bit eingesetzt. Das entspricht in etwa der Sicherheit einer Schlüssellänge von 1024 Bit beim bekannten Algorithmus RSA. (zum Vergleich: Die SSL-Verschlüsselung für HTTPS – typisch für Online-Banking – ist mit RSA und 128-Bit-langen Schlüsseln abgesichert.)

Bitcoin kurz analysiert – Währung, Kapitalanlage oder Spekulation? Wie spekuliert man am besten mit der Kryptowährung? – weitere Informationen zum Thema bietet mein KOSTENLOSES WHITEPAPER! Tragen Sie hier Ihre eMail-Adresse ein

 

 

 

Hat Ihnen der Artikel gefallen? Dann fühlen Sie sich frei, ihn zu teilen!

Was brennt Ihnen unter den Nägeln?

Ihre Email-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit einem Stern (*) markiert.