Definition Hash, Hashwert und Hashfunktion

Was ist ein Hash?

| Autor / Redakteur: Linefeed / Peter Schmitz

Hashwerte und Hashfunktionen werden an vielen Stellen in der Informatik eingesetzt, unter anderem in der Kryptografie und zum Schutz von Passwörtern.
Hashwerte und Hashfunktionen werden an vielen Stellen in der Informatik eingesetzt, unter anderem in der Kryptografie und zum Schutz von Passwörtern. (Bild: gemeinfrei / CC0)

Hashwerte und Hashfunktionen spielen bei der Verschlüsselung eine wichtige Rolle, jedoch nicht nur in der Kryptographie. Programmierer begegnen dem Hash bereits bei den grundlegenden Datentypen. Es gibt aber auch verwandte Konzepte, die leicht verwechselt werden.

Als Hash oder Hashwert bezeichnet die Informatik die Ausgabe einer Hashfunktion, als Hash aber auch einen listenartigen Datentyp, bei dem der Zugriff auf die Elemente über deren Hashwert erfolgt, die Hashtabelle.

Die Hashfunktion bildet allgemein einen beliebigen Datenraum auf Daten fester Größe ab. Ihre typischen Eigenschaften unterscheiden sich teilweise in verschiedenen Anwendungsbereichen. Der Name leitet sich vom englischen Begriff für Zerhacken und Gehacktem ab und bietet eine anschauliche Analogie für die Arbeitsweise einer Hashfunktion beim Berechnen von Hashes aus den Informationen der Eingabewerte.

Für welche Anwendungen wird der Hash genutzt?

  • Datentyp Hashtabelle
  • Caching
  • Schutz sensibler Daten
  • Auffinden von Duplikaten
  • Suche nach ähnlichen Datensätzen oder Substrings in Zeichenketten
  • Test auf Enthaltensein in einer Menge
  • verschiedene Anwendungen in der Kryptographie

Die Basisanforderungen an eine Hashfunktion

Jede Hashfunktion muss zunächst bei mehrfacher Anwendung für jede Eingabe immer wieder dasselbe Ergebnis liefern, sie muss deterministisch sein. Das unterscheidet sie von einer Randomisierungsfunktion. In die Berechnung von Hashwerten dürfen also keine zufälligen Elemente einfließen, es sei denn, diese bleiben für die Nutzungsdauer des Hashs konstant. Das ist beispielsweise bei der Programmiersprache Python der Fall, deren Interpreter beim Start einen Zufallswert für die Randomisierung der Hashwerte generiert, sodass diese nur innerhalb eines Programmmablaufs gültig sind.

Weiterhin sollten sich die Ergebnisse, die eine Hashfunktion für ihre erwartbaren Eingaben liefert, möglichst gleichmäßig auf ihren Wertebereich verteilen. Insbesondere unterschiedliche Datensätze mit demselben Hashwert, sogenannte Kollisionen, sind meist unerwünscht. Beim Datentyp Hash erhöhen sie den Aufwand für das Auffinden der entsprechenden Elemente. In der Kryptographie stellen sie potentielle Angriffsvektoren dar. Kollisionen lassen sich aber nur in Sonderfällen vollständig vermeiden, man spricht dann von einem perfekten Hash und mathematisch betrachtet ist die Hashfunktion injektiv. Bei manchen Anwendungen sind Kollisionen sogar nützlich. Das ist der Fall, wenn sie etwa unwesentliche Informationen wie Unterschiede in der Groß-Klein-Schreibung der Eingabewerte ausblenden. Ebenso beim Locality-sensitive Hashing (LSH), das bei der Suche nach ähnlichen Dokumenten zum Einsatz kommt, beispielsweise nach kopierten Inhalten im Web.

Weitere charakteristische Hash-Eigenschaften

Neben der gleichmäßigen Verteilung der Hashwerte auf die Wertemenge der Hashfunktion, ist die Kontinuität ihrer Ergebnisse von Bedeutung, je nach Anwendungsfeld aber in unterschiedlicher Weise. In der Kryptographie sind Hashfunktionen erwünscht, die für verschiedene Eingaben möglichst unterschiedliche Werte liefern. Das erschwert Brute-Force-Angriffe, die den Ursprungswert durch systematisches Ausprobieren möglicher Eingabewerte zu erraten versuchen. Wird der Hash dagegen zum Auffinden ähnlicher Elemente genutzt, dann sollte die Hashfunktion, gerade im Gegenteil, möglichst kontinuierliche Werte liefern. Jeder Hashwert sollte sich bei dieser Anwendung also von dem einer ähnlichen Eingabe möglichst wenig unterscheiden.

Ein Hash ist keine Verschlüsselung!

Hashfunktionen werden häufig verwendet, um sensible Daten zu schützen. So sind zum Beispiel die Passwörter für den Shell-Zugang zu Unix und kompatiblen Systemen standardmäßig nur als Hashwert und nicht im Klartext in der Passwortdatei gespeichert. Dabei handelt es sich aber nicht um eine Verschlüsselung. Ein wesentlicher Unterschied besteht darin, dass eine Hashfunktion nicht invertierbar ist. Das heißt, es ist nicht möglich, den berechneten Hashwert wieder in den Ursprungswert zurückzurechnen, im genannten Beispiel in das Passwort. Genau das ist aber bei einem Verschlüsselungsalgorithmus erforderlich, damit der legitime Empfänger einer verschlüsselten Nachricht den Originaltext wieder sichtbar machen kann. Beim Passworthash ist das Zurückrechnen dagegen nicht gewollt, aber auch nicht notwendig, denn eine korrekte Passworteingabe kann einfach durch den Vergleich des daraus berechneten mit dem gespeicherten Hashwert verifiziert werden.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Privilegierte Identitäten besser schützen

Identitäten im Visier

Privilegierte Identitäten besser schützen

Bei vielen der größten Datendiebstähle des 21. Jahrhunderts konnten externe Angreifer die Anmeldeinformationen von Usern mit Zugriff auf privilegierte Konten erlangen. Das sind beispielsweise IT-Administrator- und Service-Konten oder Betriebs-Accounts. Und damit hatten die Angreifer die Möglichkeit, in quasi industriellem Maßstab an Daten zu gelangen, diese zu sammeln und heraus zu schleusen. lesen

Was ist TOTP?

Definition Time-based One-time Password Algorithmus (TOTP)

Was ist TOTP?

Der Time-based One-time Password Algorithmus erzeugt zeitlich begrenzt gültige, nur einmalig nutzbare Passwörter. Der Algorithmus lässt sich für eine sichere Zwei-Faktor-Authentifizierung per App oder Token einsetzen. Entwickelt wurde TOTP von der Initiative For Open Authentication (OATH). lesen

Was ist ein TLSA-Record?

Definition TLSA-Record

Was ist ein TLSA-Record?

Ein TLSA-Record ist ein Eintrag im Domain Name System, mit dem sich Zertifikate und die Authentizität eines Servers einer bestimmten Domain prüfen lassen. Die Records kommen für DNS-based Authentication of Named Entities (DANE) zum Einsatz und machen die Prüfung eines Zertifikats über eine Zertifizierungsstelle (Certificate Authority) überflüssig. DANE wird für die Kommunikation mit verschlüsselten Webseiten oder den verschlüsselten Austausch von E-Mails genutzt. lesen

Open Source Scanner prüft Netzwerke auf Angriffsspuren

Tool-Tipp: LOKI

Open Source Scanner prüft Netzwerke auf Angriffsspuren

Mit dem kleinen Open Source-Tool Loki lassen sich Server und Computer in kleinen Netzen auf Angriffsspuren und Anzeichen von Bedrohungen untersuchen. Diese Vorgänge werden auch als Indicators of Compromise (IoC) bezeichnet. In diesem Tool-Tipp-Artikel und Video zeigen wir, wie das Tool funktioniert. lesen

USA und Verbündete gegen Verschlüsselung bei Facebook

Keine Verschlüsselung ohne Hintertür

USA und Verbündete gegen Verschlüsselung bei Facebook

Die USA, Großbritannien und Australien haben Facebook aufgefordert, den angekündigten Ausbau der Verschlüsselung beim Online-Netzwerk nicht ohne eine Hintertür für Straf­verfolgungs­behörden umzusetzen. Dies sei wichtig, um Kinder vor Gewalt und sexuellem Missbrauch zu schützen, erklärten die Regierungen in einem Brief an Facebook-Chef Mark Zuckerberg. lesen

Pflegeanleitung für sichere Software

Sichere Softwareentwicklung – Teil 2

Pflegeanleitung für sichere Software

Will man eine Software auch sicher machen bedeutet das viel Arbeit. Es gilt Schwachstellen zu verhindern und von Beginn an einen sorg­samen Umgang mit Daten zu pflegen. Dazu gehört die Trennung von Datenverarbeitung und ihrer Darstellung ebenso wie eine konsequente Validierung von Ein- und Ausgangsdaten. Dann braucht es nur noch sichere Übertragungswege und regelmäßige Prüfroutinen. Oder fehlt da noch was? lesen

Security im Connected Car sicherstellen

Vernetzte Autos

Security im Connected Car sicherstellen

Moderne Fahrzeuge haben viele Funktionen mit Schnittstellen nach außen, die das Reisen angenehmer machen. Doch diese Schnittstellen sind auch Einfallstore für Angriffe aufs Fahrzeug. Abhilfe bringen hardwarebasierte Sicherheitsfunktionen. lesen

Was ist DANE?

Definition DNS-based Authentication of Named Entities (DANE)

Was ist DANE?

DNS-based Authentication of Named Entities (DANE) ist ein standardisiertes Verfahren, mit dem sich Zertifikate von Servern zur Verschlüs­selung von Webtraffic oder E-Mails per Domain Name System prüfen lassen. Dadurch sind Probleme mit nicht vertrauenswürdigen Zertifizierungsstellen auszuschließen. DANE nutzt Domain Name System Security Extensions (DNSSEC) und TLSA-Einträge. lesen

Was ist ein Pass-the-Hash-Angriff?

Definition Pass-the-Hash (PtH)

Was ist ein Pass-the-Hash-Angriff?

Pass-the-Hash ist eine Angriffsmethode, die den Hashwert eines Passworts zur Authentifizierung gegenüber einem System verwendet. Durch Schwachstellen im System oder in den Authentifizierungsprotokollen lässt sich der Hashwert mit Tools auslesen und zur Authentifizierung einsetzen. Nutzbar ist die Angriffsmethode in verschiedenen Betriebs­system­umgebungen wie Windows oder Linux. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 44848166 / Definitionen)