Tom: Welche Verschlüsselung nehmen?

Hello,

welche der der in PHP bis 5.2.6 enthaltenen Verschlüsselungen bzw. Hashfunktionen sind noch für Benunutzung für Passwörter etc. geeignet?

Ich habe da jetzt nur noch sha1 im Gedächtnis.

md5() scheidet aus, weil bekanntermaßen in wenigen Sekunden auflösbar...

Was ist mit den anderen Funktionen?
hash()  http://de3.php.net/manual/en/function.hash.php
crypt() http://de3.php.net/manual/en/function.crypt.php

usw?

Die Zeichen des Zielstrings sollten im darstellbaren Bereich von ASCII liegen, auch keine ',",$ usw. enthalten.

Gespeichert werden soll in einer CSV-Datei.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de
  1. (H[ae]llo|Hi(ho)|Nabend) Tom,

    welche der der in PHP bis 5.2.6 enthaltenen Verschlüsselungen bzw. Hashfunktionen sind noch für Benunutzung für Passwörter etc. geeignet?

    md5() scheidet aus, weil bekanntermaßen in wenigen Sekunden auflösbar...

    Mit randomisierten Salz extra für jeden Benutzer?

    Ich habe da jetzt nur noch sha1 im Gedächtnis.

    Das steht auf ähnlich wackeligen Beinen wie MD5.

    MffG
    EisFuX

  2. Guten Tag,

    welche der der in PHP bis 5.2.6 enthaltenen Verschlüsselungen bzw. Hashfunktionen sind noch für Benunutzung für Passwörter etc. geeignet?

    Das NIST empfiehlt SHA2 (SHA-224, -256, -384, -512). Sollte dir die Performanceeinbuße von SHA-512 es wert sein, würde ich SHA-512, zusätzlich eines ausreichend zufälligen, benutzerabhängigen Salt, wählen.

    Welche Algorithmen hash() unterstützt, hängt von deiner Installation ab. Du kannst dir die verfügbaren Algorithmen mit Hilfe von hash_algos() ausgeben lassen.

    Gruß
    Christoph Jeschke

    --
    Zend Certified Engineer
    Certified Urchin Admin
  3. Moin!

    welche der der in PHP bis 5.2.6 enthaltenen Verschlüsselungen bzw. Hashfunktionen sind noch für Benunutzung für Passwörter etc. geeignet?

    Ich habe da jetzt nur noch sha1 im Gedächtnis.

    md5() scheidet aus, weil bekanntermaßen in wenigen Sekunden auflösbar...

    Krieg mal wieder Realität in deinen Kopf rein! Niemand löst dir MD5 in wenigen Sekunden auf, außer ein Angriff via Rainbow-Tabelle ist erfolgreich.

    Alle kryptografischen Forschungen, die die Manipulation von MD5 bei seiner Nutzung als Prüfsumme zum Ziel haben, benötigen derzeit einen gewissen zeitlichen Rechenaufwand, um eine Nachricht zusammen mit ihrer prüfsummengleichen Fälschung herzustellen, aber vor allem benötigen sie die Möglichkeit, diese zwei Nachrichten eben gerade SELBST herstellen zu können - und prinzipbedingt erfordert diese Manipulation die Möglichkeit, im Nachrichtentext eine Größenordnung von über 256 Bytes beliebig frei manipulieren zu können - zusätzlich zur Nutznachricht selbst.

    Allein diese Angriffsmöglichkeit gegen den Algorithmus hat das Vertrauen in ihn erschüttert, aber er ist ja auch schon sehr lange Zeit bekannt und konnte analysiert und angegriffen werden.

    SHA-1 ereilte im Prinzip ein ähnliches Schicksal, aber ganz so weit vorgedrungen sind die Forscher bislang noch nicht.

    Das simpelste dürfte sein, MD5 und SHA-1 einfach zu kombinieren. Denn einen kombinierten Angriff auf beide zusammen hat man bislang noch nicht hinbekommen. Wenn derselbe String sowohl mit MD5 als auch SHA-1 gehasht wird, darf man davon ausgehen, dass Manipulationen daran nicht zu sowohl identischer MD5- als auch SHA-1-Prüfsumme führen werden.

    hash()  http://de3.php.net/manual/en/function.hash.php

    Ein Framework für alles, was Hashfunktion heißt.

    crypt() http://de3.php.net/manual/en/function.crypt.php

    Wenn du drauf stehst, einen Passwortstring nach 8 Zeichen abzuschneiden und daraus dann den Hash zu berechnen...

    - Sven Rautenberg

    1. Hello,

      Krieg mal wieder Realität in deinen Kopf rein!

      Wie meinen?

      Niemand löst dir MD5 in wenigen Sekunden auf, außer ein Angriff via Rainbow-Tabelle ist erfolgreich.

      Dann muss es wohl Zufall gewesen sein. Ich habe letzte Woche ca. 100 Passwörter, die in MD5-Hashs umgewandelt waren, mittels http://www.md5cracker.org/ oder http://passcracking.com/ rückgewandelt. Dieses Tool hat alle richtig ermittelt. Jedes hat so ca. 3-7 Sekunden in Anspruch genommen.

      Ich habe es eben mit einigen aus der Liste nochmal ausprobiert und es geht nicht mehr.

      Nun frag ich mich, wie kann das sein?

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hallo Tom,

        Niemand löst dir MD5 in wenigen Sekunden auf, außer ein Angriff via Rainbow-Tabelle ist erfolgreich.

        Dann muss es wohl Zufall gewesen sein. Ich habe letzte Woche ca. 100 Passwörter, die in MD5-Hashs umgewandelt waren, mittels http://www.md5cracker.org/ oder http://passcracking.com/ rückgewandelt. Dieses Tool hat alle richtig ermittelt. Jedes hat so ca. 3-7 Sekunden in Anspruch genommen.

        Ich habe es eben mit einigen aus der Liste nochmal ausprobiert und es geht nicht mehr.

        Nun frag ich mich, wie kann das sein?

        äh ja, ich habe nur die erste Seite ausprobiert: ist einfach eine Zusammenführung von Betrügern. Ich schwäche ab: zumindest befragt md5cracker.org unter anderen einen mir bekannten Betrüger. :-)

        Freundliche Grüße

        Vinzenz

      2. 你好 Tom,

        Dann muss es wohl Zufall gewesen sein.

        Oder ein Regenbogen.

        Ich habe letzte Woche ca. 100 Passwörter, die in MD5-Hashs umgewandelt waren, mittels http://www.md5cracker.org/ oder http://passcracking.com/ rückgewandelt. Dieses Tool hat alle richtig ermittelt. Jedes hat so ca. 3-7 Sekunden in Anspruch genommen.

        Das funktioniert so einfach nur, wenn du ungesalzene Passwörter erstellst oder einen „statischen” Salt benutzt.

        Wenn du für jedes Passwort, dass du erstellst, einen Salt erstellst (oder angeben lässt), dann müsste ein Brute-Force-Angreifer für jedes Passwort eine Rainbow-Tabelle erstellen.

        Es ist also nicht mal eben so in wenigen Sekunden knackbar, wenn man es richtig™ macht.

        Trotz alledem würde ich davon abraten, weiterhin MD5 einzusetzen. Sinnvoller wäre es, auf die SHA2-Familie auszuweichen – wenn man sich es leisten kann (etwa, weil nur beim Login nötig), dann sollte SHA512 das Mittel der Wahl sein. Siehe auch den Beitrag von Christoph Jeschke.

        再见,
         克里斯蒂安

        --
        http://wwwtech.de/
        Die Wirklichkeit hat weder ein Inneres, noch ein Äußeres, noch ein Zentrum.
        Hochzeit mit FlitterwochenCFPropertyList: PHP-Klassen zur Manipulation von Apples property lists
        1. Trotz alledem würde ich davon abraten, weiterhin MD5 einzusetzen. Sinnvoller wäre es, auf die SHA2-Familie auszuweichen – wenn man sich es leisten kann (etwa, weil nur beim Login nötig), dann sollte SHA512 das Mittel der Wahl sein. Siehe auch den Beitrag von Christoph Jeschke.

          Egal wie gut der Hash-Algorithmus ist - eine Rainbow-Table ist schnell erstellt. Der einzige Vorteil der SHA-Familie ist der längere HASH - aber potentiell sicherer wird es nicht.

          Eine Rainbow-Table für alle 8-stelligen Buchstaben und Zahlenkombinationen mit MD5-Hashes hat in etwa gleich viele Einträge[1] wie eine mit einem 512-Bit-Hash-Algorithmus.

          [1] Es kann vorkommen, dass mehrere Werte denselben Hash haben - von daher nicht "exakt gleich lang" :)

          1. 你好 suit,

            Egal wie gut der Hash-Algorithmus ist - eine Rainbow-Table ist schnell erstellt. Der einzige Vorteil der SHA-Familie ist der längere HASH - aber potentiell sicherer wird es nicht.

            Nicht gegen Rainbow-Angriffe, aber das hab ich auch nicht behauptet.

            再见,
             克里斯蒂安

            --
            http://wwwtech.de/
            Treffen sich zwei Geraden. Sagt die eine: "Beim nächsten Mal gibst du einen aus."
            Hochzeit mit FlitterwochenCFPropertyList: PHP-Klassen zur Manipulation von Apples property lists
            1. aber das hab ich auch nicht behauptet.

              Du hast aber suggeriert, dass es etwas bringen würde - es ist aber faktisch so, dass alle potentiellen Angriffsmöglichkeiten auf MD5 oder SHA-1 für das "knacken" von Passwörtern nicht relevant sind. Die Bekannten Angriffsmethoden beschränken sich auf Birthday-Angriffe - Preimage-Angriffe können nachwievor nicht durchgeführt werden - das ist nachwievor lediglich mittels Brute-Force möglich und dauert selbst auf High-End-Rechnern mehrere Stunden pro Hash.

              In dieser Zeit lässt sich eine umfassende Rainbow-Table erstellen - da hat man mehr davon :D

              1. 你好 suit,

                Du hast aber suggeriert, dass es etwas bringen würde

                Nö. Ich sagte, ich würde „trotz alledem” von der Verwendung von MD5 abraten. Warum? Weil umfassende Schwächen von MD5 bekannt sind und man sich nicht mehr auf den Algorithmus verlassen kann.

                再见,
                 克里斯蒂安

                --
                http://wwwtech.de/
                73.255437% der Statistiken spielen eine Genauigkeit vor, die durch die angewandte Methode nicht gerechtfertigt wird.
                Hochzeit mit FlitterwochenCFPropertyList: PHP-Klassen zur Manipulation von Apples property lists
                1. Weil umfassende Schwächen von MD5 bekannt sind und man sich nicht mehr auf den Algorithmus verlassen kann.

                  Das ist aber ein Fehlschluss - die bekannten Schwächen sind nicht sonderlich relevant, dennoch stimme ich dir zu, MD5 gegen einen entsprechend sicheren Algorithmus zu ersetzen :)

                  1. 你好 suit,

                    Weil umfassende Schwächen von MD5 bekannt sind und man sich nicht mehr auf den Algorithmus verlassen kann.

                    Das ist aber ein Fehlschluss […]

                    Nein, eine Vertrauensfrage.

                    […] dennoch stimme ich dir zu, MD5 gegen einen entsprechend sicheren Algorithmus zu ersetzen :)

                    :)

                    再见,
                     克里斯蒂安

                    --
                    http://wwwtech.de/
                    Swen Wacker: Denn wer 'ne Blacklist hat, muss halt daran denken, dass er manches nicht sieht... und vor dem posten die Realitaet einschalten
                    Hochzeit mit FlitterwochenCFPropertyList: PHP-Klassen zur Manipulation von Apples property lists