Ankündigung

Einklappen
Keine Ankündigung bisher.

Salt and Peper

Einklappen

Unconfigured Ad Widget

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Salt and Peper

    Hallo zusammen,

    Mir stellen sich einige Fragen zu denen ich aktuell keine verständliche und passende Antwort finde. Es geht konkret um mein Login. Ich verschlüssele die Passwörter momentan mit MD5. Ich habe aber zufällig gelesen, dass MD5 nicht mehr sehr sicher sei, wegen Rainbowtabels oder so...

    Jetzt habe ich mir überlegt die MD5 Verschlüsselung durch ein hash mit salt zu ersetzten. Meine Frage dazu lautet: ist es sinnvoll für jedes Passwort einen eigenen salt zu generieren ? und wie ? sah256 ? oder befinde ich mich hier total auf dem Holzweg ? und were es sinnvoll auch peper zu verwenden ?

    So da sind jetzt doch ein paar Fragen zusammengekommen

    LG


  • #2
    Du hast dir nichts überlegt, sondern nur Begriffe aus dem letzten Thread zum Thema zusammengetragen, die du offensichtlich gar nicht verstanden hast, denn deine Fragestellung macht überhaupt keinen Sinn. Bitte erst mal die Begriffe eigenständig recherchieren, wenn du dabei Verständnisschwierigkeiten hast, kannst du immer noch fragen aber es bringt nichts, Halbwissen vortäuschen zu wollen, in der Hoffnung auf eine vorgekaute Lösung.
    @fschmengler - @fschmengler - @schmengler
    PHP Blog - Magento Entwicklung - CSS Ribbon Generator

    Kommentar


    • #3
      Ich habe mich angefangen zu informieren nachdem ich hier etwas darüber gelesen habe. Ich habe hier nachgefragt weil ich es nicht verstanden habe, auch nachdem ich mich weiter informiert habe. Ich möchte auch keine fertige Lösung erhalten. Ich will verstehen und selber umsetzen!

      Kommentar


      • #4
        Hier hast du ja noch eine Menge Stoff zum lesen

        http://www.google.com/search?q=php+salt

        Arbeite das durch, die ersten 5 Seiten z.B., und sag dann konkret, mit Quellenangabe und Abschnitt, was daran für dich unklar ist. Das Thema ist schon sehr gut dokumentiert, an dem Problem ändert sich nichts, wenn dir das jemand nochmal persönlich erklärt.
        You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

        Kommentar


        • #5
          Ich kann insbesondere folgendes empfehlen: http://crackstation.net/hashing-security.htm

          Hab nicht alles davon gelesen, sondern grad nur mal überflogen, ob es dir weiterhelfen kann. Und das sieht recht passabel erklärt aus.

          Kommentar


          • #6
            Also dann starte ich nochmal einen anlauf und informiere mich erneut. Sobald (konkretere) fragen auftauchen wende ich mich wieder an euch. Danke und bis bald

            Kommentar


            • #7
              MD5 ist außerdem nicht primär unsicher wegen Rainbowtables (weil wenn die Kerle an deine Passworthashes kommen is eh schon der Vogel abgeschossen), sondern wegen Kollisionen. Heißt 2 Passwörter haben den gleichen Hashwert. Beispiel Pizza und Döner hätten den gleichen MD5-Hash, würde man sich sowohl mit Pizza als PW als auch mit Döner einloggen können. Bei MD5, welches nur aus 16Hexzeichen besteht ist die Gefahr äußerst groß -> Brute Forcing. Daher längere Hashes verwenden (ich bevorzug gern Whirlpool) und die Salzen
              Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

              Kommentar


              • #8
                Naja, das ist jetzt auch nicht viel richtiger. MD5 ist anfällig für Kollisions-Attacken: Es können verschiedene Texte erzeugt werden, die den selben Hash haben, das heißt nicht, dass zu einem bekannten Text ein weiterer Text erzeugt werden kann, der den selben Hash hat. Das ist aber ein Angriff, der auf Passwort-Hashing gar nicht anzuwenden ist. Dass Kollisionen entstehen können, ist eine allgemeine Eigenschaft von Hash-Funktionen, die nicht inhärent problematisch ist. MD5 sind 128 Bit (32 Zeichen in Hexadezimal-Notation, nicht 16), das macht in Zahlen 340282366920938463463374607431768211456 Möglichkeiten. Das ist nicht mehr state-of-the-art aber immer da von einer äußerst großen Gefahr zu sprechen ist überzogen.

                Rainbowtables sind dagegen einer der Gründe, warum ungesalzene Hashes gefährlich sind, und das gilt unabhängig vom Algorithmus, von MD5 bis SHA-3. Und ich sage es immer wieder, für dich als Betreiber ist der Vogel vielleicht abgeschossen sobald deine Datenbank abgezapft wurde, aber es geht hier auch um Sicherheit von Kunden-Passwörtern, die leider oft genug für mehrere Dienste verwendet werden.

                Es gibt für das Hashen von Passwörtern übrigens längst eine spezialisierte Lösung die die benötigten Eigenschaften (dynamischer Salt, langsamer Algorithmus gegen Brute-Force) direkt mitbringt: bcrypt. PHP 5.5 führt dazu sogar eine einfach zu nutzende Password Hashing API ein, von der md5($password) endgültig verdrängt werden soll.
                @fschmengler - @fschmengler - @schmengler
                PHP Blog - Magento Entwicklung - CSS Ribbon Generator

                Kommentar


                • #9
                  Dann hab ich mich wohl verzählt Du hast Recht mit den 32. Heutzutage würd ich fast schon min. 128 Zeichen empfehlen.
                  MD5 ist anfällig für Kollisions-Attacken: Es können verschiedene Texte erzeugt werden, die den selben Hash haben, das heißt nicht, dass zu einem bekannten Text ein weiterer Text erzeugt werden kann, der den selben Hash hat.
                  Genau das wollte ich mit obigen Beitrag auch sagen, nur etwas umständlich ausgedrückt.
                  MD5 ist gebrochen und gebrochene Hashalgorithmen sollte man vermeiden. Und laut meinem IT-Sicherheitsprof hat die NSA nur Minuten gebraucht um eine Kollision zu bekommen, trotz der 34 Fantastilliarden Möglichkeiten.
                  Der Punkt ist doch, dass man salzen sollte, um etwaigen Angreifern so viele Steine wie möglich in den Weg zu schieben.
                  Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                  Kommentar


                  • #10
                    Versteh mich nicht falsch, ich würde MD5 heute für niemanden empfehlen aber es kann nicht schaden, die unterschiedlichen Angriffsmethoden und deren Anwendungszwecke zu kennen.

                    Was du meinst, ist wie gesagt eine gezielt herbeigeführte Kollision der Hashs zweier Texte, wobei keiner der beiden im Voraus fest bestimmt wird. Das ist z.B. bei kryptographischen Signaturen ein Problem: Ich schicke ich dir z.B. den signierten Text
                    Code:
                    Ich schulde dir 1000 Euro
                    und erzeuge für meine Akten einen weiteren Text
                    Code:
                    Ich schulde dir 5 Euro
                    mit dem selben Hash. Der Clou ist, dass du von den Texten durch Spinning oder Hinzufügen von Whitespace Millionen nahezu gleiche Varianten erstellen kannst, bis zwei davon kollidieren (so etwas wird auch dein Prof gemeint haben).

                    Diese Freiheit gibt es bei Passwörtern natürlich nicht! Also noch mal: Dass MD5 bezüglich Kollisionen gebrochen ist, ermöglicht keine besseren Angriffe auf gehashte Passwörter.

                    Und auch das noch mal, damit es nicht aussieht als würden wir aneinander vorbei reden:
                    Der Punkt ist doch, dass man salzen sollte, um etwaigen Angreifern so viele Steine wie möglich in den Weg zu schieben.
                    ist genau mein Reden. Hat nur halt mit den Kollisionen nichts zu tun
                    @fschmengler - @fschmengler - @schmengler
                    PHP Blog - Magento Entwicklung - CSS Ribbon Generator

                    Kommentar


                    • #11
                      fab, das was du meinst ist ein Preimage-Angriff. Das hat insofern nicht mit einem Kollisions-Angriff zutun, als dass Premimage-Angriffe bisher nur theoretisch sind, weil sie um ein Vielfaches aufwändiger sind als Kollisions-Angriffe.

                      @Geromel: SHA1 ist ebenso schon gebrochen. SHA2 gilt momentan als "kollisionssicher", nichts desto trotz gibt es ja schon SHA3. Das liegt daran, dass mit der Weiterentwicklung der Computer-Systeme immer schnellere Angriffe ermöglicht werden. Dann wird auch irgendwann SHA2 fallen.

                      Entscheidend ist dabei, dass man folgende Erkenntnis bekommt: Das Hashen von Passwörtern und das Hashen bei Signaturen sind zwei paar Schuhe. Erstere schützt man dadurch, dass man einen Algorithmus wählt, bei dem man den benötigten Aufwand für die Erstellung des Hashs beeinflussen kann. Dieser Kostenfaktor wird in dem oben verlinkten Dokument auch beschrieben.

                      Also: Für Passwörter bcrypt nutzen, wie es fab schon beschrieben hat. Und für die Verifizierung von Dokumenten dann halt SHA o.ä.

                      Kommentar


                      • #12
                        Soooo...

                        Bin jetzt doch noch etwas klüger geworden, nachdem ich eine seite gefunden habe, die alles ziemlich gut erklärt: Hier...

                        PHP-Code:
                        function mySha512($passwort$salt$iterations
                        {
                            for (
                        $x 0$x $iterations$x++) 
                            {
                                
                        $passwort hash('sha512'$passwort $salt);
                            }
                        return 
                        $passwort;
                        }

                        $passwort 'EinMoeglichesPasswort';
                        $salt 'bQ423hbHM8Sbdb9pjquUQU1IWxcxnybBSjqnyBJ23HjqnI3WbkxUQsxnPw813jkq';

                        var_dump(mySha512($passwort$salt1000)); 
                        soweit so gut. Im Beispiel auf der oben genannten Seite läuft das ganze 1000x durch die for-schlaufe... würde da nicht auch einmal reichen ? und wo liegt der unterschied zwischen whirlpool und sha512 ? sie geben ja beide einen hash mit 128 zeichen zurück...

                        LG

                        Kommentar


                        • #13
                          Zitat von fabiok Beitrag anzeigen
                          sie geben ja beide einen hash mit 128 zeichen zurück...
                          nur dass durch die schleife der alte hash + salt noch mal gehasht wird und das immer wieder. es wird ja nicht das angegeben passwort gehasht sondern der alte hash + salt.

                          kannst ja testen
                          PHP-Code:
                          function mySha512($passwort$salt$iterations
                          {
                              for (
                          $x 0$x $iterations$x++) 
                              {
                                echo 
                          '['.$x.']'.$passwort.$salt.'<br/>';
                                  
                          $passwort hash('sha512'$passwort $salt);
                              }
                          return 
                          $passwort;

                          man muss es halt später abwägen, ob das ganze wirklich sinnvoll ist.

                          du kannst das in etwa mit sicherheit im auto vergleichen reicht dir das anschnallen oder willst du noch ein helm beim autofahren anziehen und dein auto mit trillionen von airbags ausstatten + stabilen käfig + maximal 10 kmh fahren
                          apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/witalimik

                          Kommentar


                          • #14
                            Zitat von BlackScorp Beitrag anzeigen
                            nur dass durch die schleife der alte hash + salt noch mal gehasht wird und das immer wieder. es wird ja nicht das angegeben passwort gehasht sondern der alte hash + salt.

                            man muss es halt später abwägen, ob das ganze wirklich sinnvoll ist.

                            du kannst das in etwa mit sicherheit im auto vergleichen reicht dir das anschnallen oder willst du noch ein helm beim autofahren anziehen und dein auto mit trillionen von airbags ausstatten + stabilen käfig + maximal 10 kmh fahren
                            Achso jetzt ist es mir klar danke! Jetzt wüsste ich nur noch gerne den unterschied zwischen whirlpool und sha512...

                            Kommentar


                            • #15
                              Das sind einfach 2 verschiedene Algorithmen, wobei die sha-algorithmen sehr verbreitet sind und whirlpool noch eher nich so bekannt ist. Gewöhnlich werden die verbreiteten Algorithmen schneller gebrochen und für jene gibts sicher schneller umfassende Rainbowtables.
                              Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                              Kommentar

                              Lädt...
                              X