Hi,
'tschuldigung, hatte den hier ganz übersehen, war keine Absicht.
Probiere selber: http://passcracking.com/
Der nimmt übrigens auch Deinen heißgeliebten Hexstring an ;-)
Wer lesen kann:
Der sollte das auch tun.
Das verlinkte Projekt war als Beispiel für die Tabellenmethode gedacht und die weiterführenden Links auf eben dieser Seite sind ebenfalls nützlich.
This project is dedicated to crack md5 hashes online through web interface. At the moment we can crack md5 hashes in this character range: a-z;0-9 [8]
Dies entspricht: 32^8 bzw. ca. 2^40.
Natürlich weiß man, dass ein 40 Bit Passwort deutlich zu schlecht ist.
Nö, wieso sollte es _prinzipiell_ zu schlecht sein?
Benutzt man allerdings ein 12 Stellenpasswort a-z;A-Z;0-9 ergibt sich daraus:
62^12 bzw. ca. 2^72. Dieses Passwort ist gegen normale Personen ausreichen sicher, denn die durchschnittlich Laufzeit O(2^71) ist noch zu groß für den Personen ohne super Computer.
Du solltest Dich unbedingt mal über das Geburtstagsproblem kundig machen (und über Komplexitätsberechnung und deren Darstellung, aber das nur am Rande).
Es wird ja nicht nach _dem_ Paßwort gesucht sondern nach _einem_ Paßwort, das zum selbem Hash führt, also einer Kollision. Zudem macht es keine Sinn größere Paßwörter zu nehmen, als der Hash lang ist. Die so mögliche maximale Länge ergibt sich demnach aus dem zur Verfügung stehendem Alphabet und der Tatsache, das die Eingabe Charweise (in den verbreiteten Architekturen entspricht ein Char einem achtbittigem Byte) erfolgt.
Wieviele Versuche jetzt noch benötigt werden, um ein 12-stelliges Paßwort aus [a-zA-Z0-9] zu finden bleibt Dir zur Fingerübung überlassen. Der Hardwareaufwand, sowas innerhalb von 24h zu finden dürfte mittlerweile bis auf rund 2.500 EUR herunter sein.
Was für ein Paßwort das ist interessiert nicht, da lediglich ein String gesucht wird, der zum selbem Hash führt.
Aber es macht Sinn, diesen String im kleineren Raum zu suchen.
Klar, wenn man es eingrenzen kann. Aber so speziell wollte ich gar nicht werden, deshalb habe ich dafür ja auch die Seite verlinkt.
Um eine Kollision zu finden, ist Brute Force die schnellste Möglichkeit bei MD5, sofern die Nachricht vorgegeben ist.
Was verstehst Du unter "sofern die Nachricht vorgegeben ist"?
Allerdings braucht man dann für eine Kollision durchschnittlich 2^127 Berechnungen.
Nein, das ist nicht korrekt.
Da aber Passwörter i.d.R. schlecht gewählt sind, überprüfe ich erst die Strings mit einer Länge von 1,2,3,4,5,6,7,8.
Da braucht man nur ca. 2^40 Berechnungen.
Nein, noch nicht einmal die.
Das bedeutet für die Rechenzeit: (2^128)^(1/3) = 4,8E+25
Das ist falsch.
Dies liegt nicht im Bereich des möglichen, sofern man keine Supercomputer besitzt.
Selbst dafür braucht man keine Supercomputer mehr. Zudem würde ich bei genügend Geld dafür dezidierte Hardware einsetzen, keine allgemeinen Rechenknechte.
Passwörter bis zur länge 10 können so relativ schnell, mit entsprechend viel Vorberechnungen, geknackt werden. Aber ein 10 stellen Passwort ist kein _gutes_ Passwort.
Wie kommst Du nur immer auf sowas? Selbstverständlich kann ein 10-stelliges Paßwort auch ein gutes Paßwort sein.
Und um diese Tabelle zu berechnet, benötigt man 2^128*x Rechenschritte (x: Rechenschritte pro MD5 Hash).
Ja, das ist korrekt.
Also dauert es (fast) ewig diese Tabellen komplett zu berechnen. Auch wenn man die Leistung aller Computer bündelt.
Ja, das ist korrekt. Jedoch benötigt man nicht alle 2^128. Bei weitem nicht.
Wie heißt dann der neue super Angriff? Kollisionen kann man nicht effektiv bei MD5 Berechnen, sofern die Nachricht/Passwort vorgegeben ist.
Das verstehe ich nicht, was meinst Du damit?
Was man sehr leicht finden kann, sind zwei verschiedene Nachrichten mit dem gleichen Hashwert, aber dies ist bei der Passwortabfrage nicht gegeben.
Doch, genau das ist ebenfalls gegeben. Es wird nicht das originale Paßwort gesucht (das eh nicht zu finden ist, wenn das Paßwort länger ist als der Hash) sondern ein Paßwort, das zu dem gleichem Hash führt.
Sonst beweise mir das Gegenteil. Ich gab dir den Hashwert eines 10 Zeichenlangen Strings (a-z;0-9). Wenn es so trivial einfach für dich ist, dann liefern mir eine Kollision. Das Passwort hat _nur_ eine stärke von 50 Bit.
Ich befürchte Du _willst_ einfach nicht verstehen, oder? Soll ich Dir das wirklich mathematisch beweisen? Denn eine anderen Beweis wirst Du nicht bekommen, da auch ich keine anderen Beweis als den mathematischen akzeptieren würde. Immerhin könnte gleich der erste zufällig gewählte String auf den Hash passen und das beweist höchstens das es keinen Gott gibt aber mehr auch nicht.
Bei schlechten Passwörtern hilft das beste Hashverfahren nicht, dafür ist der User zuständig....
Schlechte Paßwörter gibt es bei Brute Force nicht, da sind alle gleich.
Wenn ich weiß
Ich ging bis jetzt nicht von Vorwissen aus.
das der User ein 4 Zeichen langes Passwort wählt, dann kann ich das Passwort deutlich schneller knacken, als wenn der User ein 16 Zeichen langes Passwort wählt.
Das funktioniert, weil Du es _weißt_, nicht weil es einfacher ist.
Denn: 32^4 = 1048576 Möglichkeiten (mit PHP Script lösbar)
32^16 = 1,20893E+24 Möglichkeiten
Naja, das hätte ich sogar noch im Kopf gekonnt, dafür brauche ich keinen Taschenrechner oder gar ein PHP-Script ;-)
so short
Christoph Zurnieden