Wie unsicher ist ein salted SHA1-im Vergleich zu einem salted SHA512
SHA512 ist komplexer als SHA1, aber wie viel Sicherheit verliere ich durch hashing eine gesalzene Passwort mit SHA1-im Vergleich zu Hashen mit 512? in Bezug auf die Zeit, die es dauern würde, für jemanden, der die db zu knacken ein einziges Passwort. Ich bin mit einem Rahmen, der nicht von mir geben einfachen Zugang zu SHA512, würde ich überschreiben müssen, Sachen zu machen, arbeiten, also bin ich denken, um nur SHA1, obwohl in der Vergangenheit habe ich immer verwendet SHA512.
- es sind alle denkbaren Unterschied. die einzige Sache, die Sie sollten wirklich die Pflege ist Salz.
- Unterschied zwischen SHA512 und der SHA1-Hash ist denkbar ein. Niemand kann brechen entweder noch (auch md5-meiner Meinung nach). Also vernachlässigbar im realen Leben. Während ohne Salz ist es gleichermaßen anfällig für pre-computed "Regenbogen" Tabelle (string=hash-lookup. Ja, faul, das Passwort wird abgefragt, in Sekunden, egal von hashing-Algorithmus. So, das Salzen ist viel wichtiger, als insbesondere hashing-Algorithmus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den derzeit bekannten Schwächen auf SHA-1 haben keine Auswirkungen auf die Sicherheit, was Sie zu tun versuchen. Unmöglichkeit sich zu erholen Sie das Kennwort aus seiner Hash-version setzt auf "preimage resistance", die, soweit wir wissen, noch völlig undurchführbar werden mit SHA-1. Es ist auch völlig unmöglich mit SHA-512, SHA-256, oder sogar MD4 oder MD5. Ein Sci-Fi-orientierten Geist kann sich vorstellen, den Computer erreichen, die Kraft zu finden, preimages für MD4 oder MD5-um das Jahr 2050; es dauert viel länger für SHA-1.
Nun so geschieht es, dass, während es gibt keine bekannte Verknüpfung computing preimages auf SHA-1 gibt es wenig Sicherheit Beweis entweder. In mathematischen Worten, wenn die Kompressions-Funktion verwendet SHA-1 nicht zu unterscheiden ist von einer "random oracle", dann ist das sicher gegen preimages. Aber die bekannten Schwächen von SHA-1, die (theoretisch) führt zu Kollisionen, die auch zeigen, dass Ihre Kompressions-Funktion ist nicht ein random oracle. Deshalb, die Sicherheit von SHA-1 gegen preimages ist nicht mehr von "es gibt gute mathematische Grund, warum es nicht zu brechen" persuasion. Es ist mehr der "meh, habe nicht gefunden wie man es noch" Art.
In eher banalen Worten, wenn Sie verwenden SHA-1, dann werden Sie wahrscheinlich haben, um Euch selbst rechtfertigt. Auch wenn Sie tun nichts falsch, Ihre Wahl der SHA-1 wird in Frage gestellt werden. Während niemand in Frage stellen mithilfe von SHA-256 oder SHA-512, selbst wenn es bedeutet einige Entwicklungsaufwand. Kurz gesagt, die Verwendung von SHA-1 ist schlechte öffentlichkeitsarbeit.
Beachten Sie, dass das Salzen ist völlig orthogonal zu dieser Frage. Das Salzen ist gedacht, um zu verhindern, dass die Aufteilung der Kosten zwischen Angriffen auf verschiedene Passwort-Instanzen. Vorausberechnete Tabellen (inklusive der sogenannten "rainbow-Tabellen") sind eine Art von teilen (die Tabelle Gebäude ist teuer, aber kann verwendet werden, um anzugreifen, 2, 10, 10000 Passwörter in kleineren zusätzlichen Kosten pro angegriffen Passwort). Salzen Niederlagen zu teilen. Das Salzen ist gut. Besiegen Austausch ist wichtig, denn einen Angriff auf ein Passwort ist möglich: nicht, weil der hash-Funktion, aber da ist ein Passwort etwas, das passt in einem menschlichen Gehirn, und ist daher offen für brute-force (einer "Wörterbuch-Attacke"). Mit irgendetwas im Zusammenhang mit Passwörtern, werden Sie keine Probleme aufgrund der Schwächen von hash-Funktionen, sondern weil Sie verwenden Passwörter in den ersten Platz.
Es wurde der Nachweis von Sicherheitslücken im Algorithmus von SHA1, das dazu führen könnte, dass ein Angriff. Ich würde empfehlen, mit einer Variante von SHA2 (SHA-256 oder SHA-512).
Soweit, wie lange es dauern würde, jemanden zu knacken ein Passwort gespeichert, in der unterschiedliche hashes, es ist schwer zu sagen, ohne zu wissen, die Rechenleistung des Angreifers, wie lange sind die Passwörter, wenn Sie Sie verwenden, die rainbow-Tabellen, wie random die Salze, etc. Allerdings, wenn es etwas falsch mit dem Algorithmus, es könnte eventuell zu einer viel einfacheren Weg zu finden, der Hash-Wert oder einen anderen Wert, entspricht in etwa der gleiche hash (eine so genannte Kollision), wie im Fall von MD5.
(Quelle und mehr Informationen: http://en.wikipedia.org/wiki/SHA-1)
Wenn Sie zu überschreiben Zeug, um etwas anderes als
SHA1
zu arbeiten, müssen Sie die balance Komplexität des überwiegenden Zeug (und der erhöhten Wahrscheinlichkeit von Fehlern) gegen Algorithmus Kraft.Wenn Sie sich entscheiden, zu gehen für einen anderen hashing-Algorithmus, sollten Sie einen Blick ein
BCrypt
. Es ist eine anpassungsfähige Kosten-hashing-Algorithmus, entworfen, um 'so langsam wie nötig'. Das wäre eine größere Erhöhung erforderlich Rissbildung Zeit, alsSHA512
.SHA512
ist konzipiert als eine Allgemeine kryptographische hash, mit der Geschwindigkeit wie eines der design-Ziele.Gibt es bekannte Schwachstellen in
SHA1
, aber kein preimage-Angriff hat sich bislang nicht gefunden. Also, wenn das übergeordnete Zeug ist schwer, Sie könnte besser sein, der durch die Erzeugung hoher Entropie random Salze.Gesagt haben, dass, ist es natürlich besser, um die beste verfügbare Algorithmus.
crypt();
mit der richtigen Salz-format.SHA1 und SH512 sind Nachricht verdaut, Sie waren nie gemeint Kennwort-hashing (oder key-derivation) Funktionen. (Obwohl ein message digest verwendet werden könnte ein Baustein für ein KDF, wie PBKDF2 mit HMAC-SHA1.)
Einem Kennwort-hashing-Funktion sollten Sie verteidigen gegen Wörterbuch-Angriffe und rainbow-Tabellen.
Derzeit der einzige standard (wie im sanktioniert durch NIST) Kennwort-Hash-oder key-derivation-Funktion PBKDF2. Bessere Entscheidungen, wenn Sie mit einem standard ist nicht erforderlich, bcrypt und die neuere scrypt. Wikipedia hat Seiten für alle drei Funktionen:
Seite an https://crackstation.net/hashing-security.htm enthält eine ausführliche Diskussion der Passwort-Sicherheit.