Den Algorithmus eines Hashs identifizieren
- Dashboard
- Dokumentation
- API
Was ist ein kryptografischer Hash?
Ein Hash (oder kryptografischer Fingerabdruck) ist das Ergebnis einer Funktion, die eine Eingabe beliebiger Größe (ein Passwort, eine Datei, eine Zeichenkette) in eine Zeichenkette fester Größe umwandelt. Diese Funktion ist einseitig: Aus einem Hash ist es mathematisch unmöglich, die ursprüngliche Eingabe zu rekonstruieren. Zwei identische Eingaben erzeugen immer denselben Hash, aber die geringste Änderung in der Eingabe verändert das Ergebnis vollständig.
Unser Tool identifiziert den wahrscheinlichen Algorithmus eines Hashs anhand seines Formats und versucht ein Lookup gegen ein Wörterbuch ultragängiger Passwörter, die auf den wichtigsten Algorithmen vorab berechnet wurden.
Wie identifiziert man einen Hash?
Die Identifizierung beruht auf drei Hinweisen:
- Die Länge: Jeder Algorithmus erzeugt einen Fingerabdruck fester Größe.
- Das Format: reines Hexadezimal, Base64 oder Modular Crypt Format mit spezifischen Präfixen.
- Das Präfix: Moderne Passwort-Hashes folgen dem Format
$id$params$salt$hash, wobeiiddie verwendete Funktion eindeutig identifiziert.
Gängige hexadezimale Längen
- 8 Zeichen: CRC32 (Prüfsumme, kein kryptografischer Hash)
- 32 Zeichen: MD5, MD4, NTLM, RIPEMD-128
- 40 Zeichen: SHA-1, RIPEMD-160
- 64 Zeichen: SHA-256, SHA3-256
- 96 Zeichen: SHA-384, SHA3-384
- 128 Zeichen: SHA-512, SHA3-512, Whirlpool
Die Länge allein reicht nicht aus, um zu schließen: MD5 und NTLM teilen sich zum Beispiel dieselbe Größe von 32 Hex-Zeichen. Unser Tool gibt dann die Liste möglicher Algorithmen zurück.
Modular-Crypt-Format-Präfixe
Passwort-Hashes aus crypt() oder modernen Bibliotheken verwenden ein
explizites Präfix:
$1$: MD5 crypt$5$: SHA-256 crypt$6$: SHA-512 crypt$2y$,$2a$,$2b$: Bcrypt (Varianten je nach Plattform)$argon2i$,$argon2id$,$argon2d$: Argon2 (Verwendungs- varianten, wobei Argon2id heute empfohlen wird)
Beispiel eines Bcrypt-Hashs
$2y$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
Anwendungsfälle
- Analyse von Datenlecks: den von einer kompromittierten Datenbank verwendeten Algorithmus identifizieren, um die Angriffsschwierigkeit zu bewerten.
- Debugging: schnell bestätigen, welcher Algorithmus einen in einer API-Antwort oder einem Log gefundenen Fingerabdruck erzeugt hat.
- Sicherheitsaudit: ein System erkennen, das Passwörter noch in MD5 oder SHA-1 speichert (zu verbieten).
- Forensik: ein Artefakt in einer Untersuchung charakterisieren.
Warum ein Hash nicht umkehrbar ist
Eine Hashing-Funktion ist als Einwegfunktion konzipiert. Es gibt keinen "Hash-Entschlüsselungs"-Algorithmus, weil ein Hash keine Verschlüsselung ist: Es ist eine Projektion. Mehrere verschiedene Eingaben können theoretisch denselben Hash erzeugen (Kollision), also auch wenn Sie eine Eingabe kennen, die den richtigen Hash erzeugt, haben Sie keine Garantie, dass es die ursprüngliche Eingabe ist.
In der Praxis bedeutet "einen Hash knacken", massenhaft Kandidateingaben zu testen, bis man diejenige findet, deren Fingerabdruck übereinstimmt. Das tun Wörterbuch- und Brute-Force-Angriffe.
Integrierte Wörterbuchsuche
Unser Tool integriert ein Mini-Wörterbuch von 39 ultragängigen Passwörtern:
leere Zeichenkette, password, admin, 123456, qwerty,
letmein usw. Diese 39 Einträge sind auf 10 Algorithmen vorab berechnet
(MD5, SHA-1, SHA-256, SHA-512, MD4, NTLM usw.). Wenn Ihr Hash einem dieser Fingerabdrücke entspricht,
gibt das Tool das Passwort im Klartext zurück.
Diese Funktionalität illustriert, warum einfache Hashes nicht für Passwörter geeignet sind: Ein Angreifer muss nicht einmal rechnen, er konsultiert eine Tabelle.
Einfacher Hash vs. Passwort-Hash
Nicht alle Hashes sind gleich gut für die Speicherung von Passwörtern geeignet:
- Einfache Hashes (MD5, SHA-256, SHA-512): konzipiert, um schnell zu sein, was ein Mangel ist, wenn man einem Brute-Force-Angriff widerstehen will. Sie enthalten standardmäßig kein Salt, daher haben zwei Benutzer mit demselben Passwort denselben Hash, was sie für Angriffe mit vorab berechneten Tabellen (Rainbow Tables) anfällig macht.
- Passwort-Hashes (bcrypt, scrypt, Argon2): konzipiert, um konstruktionsbedingt langsam zu sein, integrieren ein zufälliges Salt und einen konfigurierbaren Kostenfaktor. Argon2id ist heute der von OWASP empfohlene Stand der Technik.
So verwenden Sie das Tool
- Fügen Sie den Hash in das Eingabefeld ein.
- Das Tool erkennt das Format (Länge, Präfix) und schlägt die möglichen Algorithmen vor.
- Wenn der Hash einem ultragängigen Passwort entspricht, wird das Klartextwort angezeigt.
- Andernfalls erhalten Sie die Liste der zu erforschenden Kandidatenalgorithmen mit einem dedizierten Tool.
Häufig gestellte Fragen
Warum wird mein bcrypt-Hash nicht gegen das Wörterbuch gematcht?
Bcrypt verwendet ein eindeutiges zufälliges Salt pro Hash: Selbst mit dem Passwort password
erzeugt jeder Benutzer einen anderen Hash. Die Wörterbuch-Vorberechnung funktioniert daher nicht.
Das ist genau die Eigenschaft, die bcrypt gegen Tabellenangriffe widerstandsfähig macht.
Was tun, wenn mehrere Algorithmen für dieselbe Länge möglich sind?
Kreuzen Sie mit anderen Hinweisen: die Quelle des Hashs (Active Directory deutet auf NTLM, Linux
/etc/shadow auf SHA-512 crypt, eine alte MySQL-Datenbank auf MD5 usw.) und der
Anwendungskontext. Bei gleicher Länge bleibt MD5 statistisch am wahrscheinlichsten auf
alten Systemen.
Wie "knackt" man einen Hash in der Praxis?
Für legitime Sicherheitstests (Audit, Pentest) sind die Standard-Tools John the Ripper und hashcat. Sie akzeptieren massive Wordlists (rockyou usw.) und nutzen die GPU, um Milliarden von Kandidaten pro Sekunde zu testen. Die Machbarkeit hängt vom Algorithmus ab: MD5 und SHA-1 fallen schnell, bcrypt und Argon2 verlangsamen den Angriff um mehrere Größenordnungen.
Ist das integrierte Wörterbuch einsehbar?
Das Wörterbuch ist bewusst minimalistisch (39 Einträge) und dient dazu, die Schwäche einfacher Hashes bei trivialen Passwörtern zu illustrieren. Für eine ernsthafte Abdeckung verwenden Sie eine externe Wordlist (rockyou, SecLists) mit John the Ripper oder hashcat.
Kann man einen Hash "dekodieren"?
Nein. Ein Hash ist keine Verschlüsselung: Es gibt keine Umkehrfunktion. Jede Website, die verspricht, "einen Hash zu dekodieren", führt in Wirklichkeit ein Lookup in einer vorab berechneten Datenbank durch. Wenn Ihr Passwort einzigartig und lang ist, ist es dort nicht enthalten.
Beispielanfrage
curl -X POST https://cdrn.fr/api/v1/tools/hash-identifier/execute \
-H "Content-Type: application/json" \
-d '{"hash":"..."}'
Eingabeschema
| Feld | Typ | Erforderlich | Standard |
|---|---|---|---|
hash |
text | ✓ | – |
Endpunkte
GET https://cdrn.fr/api/v1/tools- listet alle verfügbaren Tools aufGET https://cdrn.fr/api/v1/tools/hash-identifier- liefert das Schema dieses ToolsPOST https://cdrn.fr/api/v1/tools/hash-identifier/execute- führt dieses Tool mit einem JSON-Payload aus