Chris1988: MD5 und Passwörter

Hallo,

ein von mir besuchtes Forum ist gehackt worden, und laut dem Betreiber sind die md5 Hashes und e-Mail Adressen in die Hände der Hacker gekommen. Nun ist ja bekannt das nur md5 hashes eigentlich nicht wirklich sicher sind, trotzdem bei einem 11 stelligen passwort mit sonderzeichen,buchstaben(groß und klein) sowie Zahlen ist es doch eigentlich mit normalem Rechenaufwand nicht möglich an das Passwort zu kommen oder?

VG Chris

  1. Hallo,

    ein von mir besuchtes Forum ist gehackt worden, und laut dem Betreiber sind die md5 Hashes und e-Mail Adressen in die Hände der Hacker gekommen. Nun ist ja bekannt das nur md5 hashes eigentlich nicht wirklich sicher sind, trotzdem bei einem 11 stelligen passwort mit sonderzeichen,buchstaben(groß und klein) sowie Zahlen ist es doch eigentlich mit normalem Rechenaufwand nicht möglich an das Passwort zu kommen oder?

    Es ist _nicht_ möglich von einem Hash zurück auf das Passwort zu schließen. Es gibt unendlich viele "Passwörter", aus denen sich derselbe Hash bilden lässt. Und wenn dein Passwort elfstellig war, brauchst du dir keine Gedanken zu machen.
    Ich gehe davon aus, dass du das Passwort nicht auch noch woanders für kritische Dinge verwendest.

  2. Hallo Chris1988,

    ein von mir besuchtes Forum ist gehackt worden, und laut dem Betreiber sind die md5 Hashes und e-Mail Adressen in die Hände der Hacker gekommen. Nun ist ja bekannt das nur md5 hashes eigentlich nicht wirklich sicher sind, trotzdem bei einem 11 stelligen passwort mit sonderzeichen,buchstaben(groß und klein) sowie Zahlen ist es doch eigentlich mit normalem Rechenaufwand nicht möglich an das Passwort zu kommen oder?

    Wenn du den MD5-Hast hast und kein Salt verwendet wurde ist es problemlos möglich z.B. mit Rainbow Tables die Hashs zurückzurechnen bzw. wenigstens zu dem Hash einen funktionierenden Klartext zu finden, der den gleichen Hash liefert.

    Das funktioniert sehr gut mit Passwörtern mit bis etwa 8 Alphanummerischen Zeichen (inklusive Leerzeichen und simplen Satzzeichen), bei mehr Zeichen und zusätzlichen Sonderzeichen dauerts entsprechend länger. Passwörter mit mehr als 10 zeichen und Sonderzeichen werden voraussichtlich nicht so schnell geknackt, jedenfalls nicht, wenn es nur ein simples Webseitenpasswort ohne näheren Wert ist.

    Jonathan

    1. Nun ist ja bekannt das nur md5-hashes eigentlich nicht wirklich sicher sind,

      Das ist so nicht gesagt, sondern kommt auf den Anwendungsfall an.

      eigentlich mit normalem Rechenaufwand nicht möglich an das Passwort zu kommen oder?

      ist es problemlos möglich z.B. mit Rainbow Tables die Hashs zurückzurechnen

      Grundsätzlich richtig, aber da hier zweimal das Wörtchen "rechnen" verwendet wurde: Aus einer Prüfsumme (Neudeutsch: Hash) lässt sich nichts zurückrechnen. Das ist genauso unmöglich wie aus der Zahl 23 zu berechnen, welche Komponenten in der Rechnung x + y angewandt wurden. Es geht einfach nicht. Wirklich.

      Regenbogentabellen enthalten Prüfsummen, die dort zusammen mit den dazugehörigen Passwörtern abgelegt wurden. Was also gemacht wird, ist, in so einer Tabelle die Prüfsumme zu suchen; findet sich eine, steht rechts daneben das Passwort im Klartext. Das hat mit Rechnen absolut gar nichts zu tun.

      1. Hallo Peter,

        Grundsätzlich richtig, aber da hier zweimal das Wörtchen "rechnen" verwendet wurde: Aus einer Prüfsumme (Neudeutsch: Hash) lässt sich nichts zurückrechnen. Das ist genauso unmöglich wie aus der Zahl 23 zu berechnen, welche Komponenten in der Rechnung x + y angewandt wurden. Es geht einfach nicht. Wirklich.

        Betrachte "rechnen" einfach als abwandlung von "Rechner" (also Computer). ;-)

        Ansonsten denke ich aber auch, dass man das Suchen von passenden Klartexten mit Rainbow Tables trotzdem als "rechnen" bezeichnen kann. Insbesondere werden dabei ja extrem viele Prüfsummen "berechnet".

        Jonathan

        1. Aus einer Prüfsumme (Neudeutsch: Hash) lässt sich nichts zurückrechnen.

          Betrachte "rechnen" einfach als abwandlung von "Rechner" (also Computer). ;-)

          Versucht sich da jemand rauszuwinden? ;)

          Ansonsten denke ich aber auch, dass man das Suchen von passenden Klartexten mit Rainbow Tables trotzdem als "rechnen" bezeichnen kann. Insbesondere werden dabei ja extrem viele Prüfsummen "berechnet".

          Eben nicht, die Prüfsummen wurden ja schon bei der Erstellung der Tabelle berechnet. Beim Nutzen der Tabelle fällt keine Berechnung mehr an, und das ist ja letztlich auch irgendwo der Witz an der Sache: Man erspart sich die aufwändige Rechnerei. Statt zu einer Prüfsumme ein passenden Klartext zu basteln, werden einfach andersrum Hundertausende Klartexte in Prüfsummen verwandelt.

          PS: Schreibt man Korinthen eigentlich mit th?

          1. Hallo,

            Ansonsten denke ich aber auch, dass man das Suchen von passenden Klartexten mit Rainbow Tables trotzdem als "rechnen" bezeichnen kann. Insbesondere werden dabei ja extrem viele Prüfsummen "berechnet".

            Eben nicht, die Prüfsummen wurden ja schon bei der Erstellung der Tabelle berechnet. Beim Nutzen der Tabelle fällt keine Berechnung mehr an,

            Eben nicht ;)

            Wenn man Rainbow Tables nutzt, muss man dennoch sehr viele (für den Menschen) Prüfsummen berechnen, im Vergleich aber zu Brute Force extrem wenig.
            Dies hängt mit dem Format von Rainbow Tables zusammen:

            Diese sind nicht so:
            PW1|Hash1
            PW2|Hash2
            PW3|Hash3

            abgespeichert, denn dann bräuchte man für 8 Buchstaben [a-z0-9] mindestens 63 000 GB.

            Stattdessen steht in der Table (vereinfacht) folgendes:

            PW1|md5(gen(md5(gen(....(md5(PW1)....)
            PW2|md5(gen(md5(gen(....(md5(PW2)....)

            Dabei generiert gen() aus einem 128 Bit Hash ein neues Wort aus 8 Buchstaben [a-z0-9].

            Zum Knacken verwendet man dann folgenden (Pseudo)Code:
            solange md5_hash nicht in Table und n <= [Kettenlänge]
              md5_hash = md5(gen(hash))
              n++

            Wenn man nun den md5_hash in der Table gefunden hat, kann man einfach bei z.B. PW2 anfangen zu starten und ruft solange:
            hash = PW2
            solange bis hash stimmt
             hash = md5(gen(hash))

            Wie lang diese Ketten sind, also wie oft md5(gen(...)) aufgerufen wird, kann man einstellen, beträgt aber mein ich irgend sowas um die 250 000 oder so.
            D.h., wenn ich ein PW mit Rainbow Tables knacken möchte, muss ich im Worst Case pro Tabelle irgendsowas um die 500k Prüfsummen berechnen, was aber ein Witz ist bzgl. dem Rechenaufwand von Brute Force.

            MFG

            1. Eben nicht, die Prüfsummen wurden ja schon bei der Erstellung der Tabelle berechnet. Beim Nutzen der Tabelle fällt keine Berechnung mehr an,
              Eben nicht ;)

              Habe ich etwas anderes behauptet? Nie!!!1 [Kopf einziehend von der Bühne verschwindend :]