Kryptografie – Was verbirgt sich hinter dem Begriff Hash?
Heutzutage ist es immer wichtiger, dass unsere sensiblen Daten im Netz sicher und geschützt sind und genau dafür sorgt die Kryptografie. Zwar müssen Entwickler:innen die zugrundeliegende Mathematik dahinter nicht in ihrer Tiefe verstehen, aber grundlegende kryptografische Konzepte sollten dennoch verstanden werden. Ohne Kryptografie wären unsere Bankkonten, E-Mails, Social-Media-Accounts nicht sicher und einfach zu hacken.
Was bedeutet Kryptografie?
Kryptografie ist die Wissenschaft vom Verschlüsseln bzw. der Geheimhaltung von Informationen. Diese Informationen/Daten werden mit Hilfe eines Algorithmus in eine Form überführt, die für Unbefugte nicht zu lesen beziehungsweise verstehen ist. Natürlich müssen Kryptografische Systeme demnach auch eine Möglichkeit für den Empfänger bieten, die verschlüsselte Botschaft wieder lesbar zu machen. Konzepte wie Caching, Verschlüsselung und Signierung sollten für Entwickler:innen in diesem Zusammenhang kein Neuland darstellen.
Was ist ein Hash?
Der Hash ist eines der gängigsten kryptografischen Konzepte. Ursprünglich bedeutet "Hash" soviel wie „kleinhacken und mischen“. Im Grunde beschreibt das auch die Funktion eines Hash sehr treffend. Der Inhalt einer Datei wird so verarbeitet, dass dem Inhalt ein eindeutiger numerischer Wert zuzuweisen ist. Anhand dessen können Suchalgorithmen den Inhalt einer Datei identifizieren.
Unter Hashing versteht man die Umwandlung einer Zeichenfolge in einen normalerweise kürzeren, numerischen Wert oder Schlüssel mit fester Länge. Dieser numerische Wert ist der Hash-Wert und eine andere Darstellung der ursprünglichen Zeichenfolge. Besonders wichtig ist diese Funktion, um Elemente in einer Datenbank zu Indizieren und abzurufen. Aufgrund der kürze des Wertes können Suchalgorithmen Elemente in einer Datenbank schneller finden. Zudem können Passwörter als Hash-Werte anstelle des Klartextpasswortes in einer Datenbank abgespeichert werden. Wichtig ist, dass der Hash schnell zu berechnen und eindeutig ist.
Reicht ein Hash zum verschlüsseln von Passwörtern aus?
Um seine Daten wirklich sicher zu speichern reicht ein Hash nicht aus. Vielmehr bedarf es einer Kombination, beispielsweise mit dem Konzept "Salt". Das Salting fügt eine zufällig erzeugte Zeichenkette dem Passwort hinzu, danach wird es über eine Hashfunktion zu einem Hash-Wert verwandelt. Dabei werden nur Hash-Wert und Salt in der Datenbank gespeichert und nicht das Klartextpasswort. Durch die Kombination aus Salt und Hash wird der Schutz der gehashten Passwörter erhöht. Für weitere Schutzmaßnahmen können Methoden wie das Hashing mit einem Pepper zum Einsatz kommen.