Ethical Hacking Academy · Lektion

Hashing

MD5, SHA, bcrypt

Lektion 2 von 413 Schritte

Hashing ist eine kostenlose Ethical Hacking Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ethical Hacking Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Hash?

Eine Hashfunktion nimmt eine Eingabe beliebiger Größe entgegen und erzeugt eine Ausgabe fester Größe, die als Digest bezeichnet wird. Dieselbe Eingabe erzeugt immer denselben Digest.

Entscheidend ist, dass Hashing eine Einwegoperation ist. Ein Digest lässt sich mathematisch nicht wieder in die ursprüngliche Eingabe zurückverwandeln. Das unterscheidet Hashes sowohl von Codierung als auch von Verschlüsselung.

Eigenschaften eines guten Hashes

Eine kryptografische Hashfunktion sollte:

  • Deterministisch sein: Dieselbe Eingabe liefert dieselbe Ausgabe.
  • Schnell zu berechnen sein (bei allgemeinem Hashing), für das Hashing von Passwörtern aber idealerweise langsam.
  • Preimage-resistent sein: Ausgehend von einem Digest lässt sich die Eingabe nicht finden.
  • Kollisionsresistent sein: Es soll schwierig sein, zwei Eingaben mit demselben Digest zu finden.
  • Den Avalanche-Effekt aufweisen: Eine Änderung eines Bits kippt etwa die Hälfte der Ausgabebits.

MD5

MD5 erzeugt einen 128-Bit-Digest (32 Hexadezimalzeichen). Es ist schnell und war historisch weit verbreitet, gilt aber als kryptografisch gebrochen: Praktische Kollisionsangriffe sind möglich.

Verwenden Sie MD5 niemals für Sicherheitszwecke. Sie werden es bei Date Prüfsummen und in Altsystemen trotzdem weiterhin antreffen, wodurch es bei Sicherheitsüberprüfungen häufig zum Ziel wird.

echo -n 'password' | md5sum
# 5f4dcc3b5aa765d61d8327deb882cf99

Die SHA-Familie

Die Familie der SHA-Algorithmen (Secure Hash Algorithm) ist robuster:

  • SHA-1: 160 Bit. Gilt inzwischen als gebrochen (Kollisionsangriff „SHADOW HAMMER“ / SHAttered). Vermeiden.
  • SHA-2: umfasst SHA-256 und SHA-512. Weit verbreitet und derzeit sicher.
  • SHA-3: ein neueres Design auf Basis von Keccak, eine Alternative zu SHA-2.
echo -n 'password' | sha256sum
# 5e884898da28047151d0e56f8dc629...

Hashing ist keine Verschlüsselung

Verschlüsselung kann mit einem Schlüssel rückgängig gemacht werden. Hashing ist überhaupt nicht umkehrbar. Genau deshalb wird Hashing zum Speichern von Passwörtern verwendet: Der Server benötigt das ursprüngliche Passwort nie.

Bei der Anmeldung hasht der Server Ihre Eingabe und vergleicht sie mit dem gespeicherten Hash. Stimmen sie überein, sind Sie authentifiziert. Das Passwort im Klartext wird nie gespeichert.

Das Problem: Rainbow-Tabellen

Da Hashing deterministisch ist, ist der Digest von „password“ für jeden Benutzer gleich. Angreifer berechnen riesige Nachschlagetabellen vor, die Digests den Klartexten zuordnen und als Rainbow-Tabellen bezeichnet werden.

Wenn zwei Benutzer dasselbe Passwort verwenden, sind ihre gespeicherten Hashes identisch, wodurch diese Tatsache bekannt wird. Einfache schnelle Hashes wie MD5 oder SHA-256 sind allein für Passwörter ungeeignet.

Salts

Ein Salt ist ein eindeutiger Zufallswert, der vor dem Hashing zu jedem Passwort hinzugefügt wird. Dadurch gilt:

  • Identische Passwörter erzeugen unterschiedliche Hashes.
  • Vorberechnete Rainbow-Tabellen werden unbrauchbar.

Der Salt wird zusammen mit dem Hash gespeichert; er ist nicht geheim. Seine Aufgabe besteht darin, jeden Hash eindeutig zu machen, sodass Angreifer jeden Hash einzeln knacken müssen.

stored = salt + hash(salt + password)
# salt is random and unique per user

bcrypt: Für Passwörter entwickelt

bcrypt wurde speziell für die Speicherung von Passwörtern entwickelt. Der Algorithmus ist absichtlich langsam und enthält einen konfigurierbaren Kostenfaktor (Work Factor), der ihn mit zunehmender Leistungsfähigkeit der Hardware langsamer macht.

Ein bcrypt-Hash enthält Algorithmus, Kostenfaktor und Salt in einer Zeichenkette. Die Langsamkeit ist ein Vorteil: Sie begrenzt, wie schnell Angreifer Passwörter ausprobieren können.

$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
# $2b$ = bcrypt, 12 = cost factor, then salt + hash

Andere langsame Hashes

Neben bcrypt gehören zu den modernen Optionen für das Passwort-Hashing:

  • scrypt: speicherintensiv und resistent gegen GPU- und ASIC-Angriffe.
  • Argon2: Gewinner des Password Hashing Competition, mit einstellbarem Zeit- und Speicheraufwand. Die empfohlene moderne Wahl.
  • PBKDF2: wendet einen schnellen Hash viele Tausend Mal an; akzeptabel, aber schwächer als die oben genannten Verfahren.

HMAC und Integrität

Hashes werden nicht nur für Passwörter, sondern auch für die Integrität verwendet. Ein HMAC (Hash-based Message Authentication Code) kombiniert einen Hash mit einem geheimen Schlüssel, um sowohl die Integrität als auch die Authentizität einer Nachricht zu überprüfen.

Datei-Prüfsummen (häufig SHA-256) ermöglichen es Ihnen zu überprüfen, ob ein Download manipuliert wurde. Als Hacker können nicht übereinstimmende Prüfsummen auf veränderte oder schädliche Dateien hinweisen.

Hashes in der Praxis

Als Hacker stoßen Sie ständig auf Hashes:

  • /etc/shadow unter Linux speichert gesaltete Passwort-Hashes mit Präfixen wie $6$ (SHA-512) oder $2b$ (bcrypt).
  • Windows speichert NTLM-Hashes in der SAM-Datenbank.
  • Webanwendungen speichern gehashte Passwörter in ihren Benutzertabellen.

Das Erkennen des Präfixes verrät Ihnen sofort den Algorithmus und Ihre Strategie zum Knacken des Hashes.

$6$rounds=5000$salt$hash   # SHA-512 crypt
$2b$12$saltandhash...      # bcrypt

Kurzer Check

Wählen Sie die sicherste Option für die Speicherung von Benutzerpasswörtern aus.

Zusammenfassung

Sie verstehen nun das Hashing:

  • Hashing ist eine nicht umkehrbare, deterministische Transformation mit fester Größe und unterscheidet sich von Kodierung und Verschlüsselung.
  • MD5 und SHA-1 gelten als unsicher; verwenden Sie SHA-256 für die allgemeine Integritätsprüfung.
  • Verwenden Sie für Passwörter langsame, gesaltete Algorithmen: bcrypt, scrypt oder Argon2.
  • Salts machen Rainbow-Tabellen wirkungslos; HMAC fügt eine schlüsselbasierte Integritätsprüfung hinzu.

Als Nächstes untersuchen Sie symmetrische und asymmetrische Verschlüsselung mit AES und RSA.

Kostenlos starten

Lerne Ethical Hacking Academy mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
31
Lektionen
111

Häufig gestellte Fragen

Ist die Lektion „Hashing“ kostenlos?

Ja — der vollständige Text von „Hashing“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ethical Hacking Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Hashing“?

MD5, SHA, bcrypt Du übst Ethical Hacking Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ethical Hacking Academy zu starten?

Keine Vorkenntnisse erforderlich. Ethical Hacking Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Hashing“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ethical Hacking Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ethical Hacking Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Kodierung vs. Verschlüsselung
  2. Hashing
  3. Symmetrisch und asymmetrisch
  4. Hashes knacken
← Zurück zu Ethical Hacking Academy