Frage

Meine erste Frage ist, ich habe gehört, dass die Zeichenfolge 2 mal Hashing (z SHA1 (SHA1 (Passwort))), da die zweite Hash eine feste Länge hat, ist es wahr ??

Meine die zweite Frage ist, was sicherer ist? (Var1 und var2 sind 2 Strings):

  1. SHA1 (var1 + SHA1 (var2))
  2. SHA1 (var1 + var2)

Wenn es der erste ist, ist es die Leistung Kosten wert?

War es hilfreich?

Lösung

die Zeichenfolge zweimal durch Hashing, Sie sind das Risiko von Kollisionen zu erhöhen, die schlechte Sicherheitsweisen ist.

Statt eine unendliche Menge an Eingängen, die mit 2 führenden 128 möglichen Ausgängen, Sie haben 2 128 mögliche Eingaben, die zu vielleicht weniger als 2 128 Ausgänge.

Mit Salz und Pfeffer vor Hashing zumindest die Eingabe zu unendlichen Möglichkeiten hält. zweimal erhöht sich die Laufzeit des Skripts Hashing und erhöht das Risiko von Kollisionen, wenn Sie die Quelle unendlicher Eingangs halten.

Andere Tipps

  • SHA1 (var1 + SHA1 (var2))
  • SHA1 (var1 + var2)

Auch ist sehr sicher. Das Rad nicht neu erfinden. HMAC wurde dafür entworfen; insbesondere, dauert es Schritte (padding, etc.), um Probleme mit bestimmten Schwächen in bestimmten Hash-Algorithmen zu vermeiden schlecht mit dem oben genannten ‚einfachen‘ Implementierungen interagieren.

Darüber hinaus ist Doppel-Hashing nicht sinnvoll, die Sicherheit zu verbessern. Bedenken Sie: am besten, werden Sie von einem Random-ish Wert auf einen anderen Zufalls-ish Wert zuordnen. Wenn jedoch eine Kollision gibt es zwei Werte aus der zweiten Hash resultierenden gleich sind, haben Sie verloren Sicherheit, indem sie mit einer Kollision enden. Das heißt, man kann nie eine Kollision auf diese Weise loszuwerden, aber Sie können einen gewinnen.

Das heißt, bestehende Urbild Angriffe könnte nicht gegen Doppel-Hashing arbeiten ... aber! Sie könnten immer noch funktionieren. Ich bin nicht zu sagen, welche, qualifiziert und wenn Sie hier das hier fragen, sind Sie wahrscheinlich auch nicht. Sicherlich Kollision Angriffe, die alle sind, die mit MD5 praktisch sind heute nicht durch Doppel-Hashing behindert wird.

Es ist am besten mit den bewährten Algorithmen zu halten, die auf Jahrzehnte Analyse standen haben, denn mit Kryptographie, ist es nur allzu leicht, etwas zu machen, dass sieht sicher, aber ist es nicht.

Ich bezweifle, dass dies keine Sicherheit, um es hinzuzufügen wäre. Es würde die Laufzeit des Skripts erhöhen, würde aber nicht viel Sicherheit für den Hash hinzuzufügen. Denken Sie daran, dass, wenn jemand versucht, das Hash zu brechen, müssen sie nicht den genauen Wert von var1 und var2 finden, die sie brauchen nur zu finden, die in der gleichen Hash führt.

Ich bin kein Experte für Kryptographie, aber soweit ich weiß, dass Sie den Prozess keine Sicherheit von Hashing einem Wert mehrfach neben Verlangsamung gewinnen. Wenn Sie also 1000 mal hash, werden Sie einen Angriff machen (zum Beispiel eines Wörterbuch-Angriff) 1000-mal langsamer, aber das ist ziemlich irrelevant im Fall von Hashing ein- oder zweimal.

Mit nur einem und kein Salz erlaubt es leicht gelöst werden.

Es gibt viele großen Tabellen, die Tonnen dieses Hashes so ein einzelnes Hash ohne Salz enthalten kann in so gut wie nichts gelöst werden.

in einer zweiten Hash Hinzufügen wird nicht viel helfen, entweder, weil wieder einmal diese Tabellen existieren bereits mit den gespeicherten Werten.

Ein dynamisches Salz, das mit dem Kennwort hinzugefügt wird, wird helfen, viel mehr als mehr Hashes. Mehrere Hashes es nicht wirklich viel hinzuzufügen.

Mein Gefühl bei der Sache ist, dass man eine Mauer mit einer Stahltür Gebäude ist, aber die anderen Wände aus Sperrholz hergestellt werden. Mit anderen Worten, können Sie so viel Sicherheit injizieren, wie Sie in Hashing Passwörter wollen, aber es gibt immer noch viel einfacher Möglichkeiten, um Ihr System zu knacken. Ich denke, es ist viel besser, einen breiten Ansatz zur Sicherheit zu übernehmen, anstatt zu viel von sich Gedanken über Dinge wie diese.

Ist var1 + var2 würde das gleiche in einer erwarteten Situation sein? Ich meine, soll der erste Satz in diesem Fall in Ordnung sein, denn Sie Kollision Hashing würden vermeiden. Über sein Geld wert, das ist eine Frage sollten Sie beantworten. Ist die Vermeidung einer Kollision die Kosten wert.

Über den sha Algorithmus wird angenommen, wirklich die Ergebnisse Gerangel um. So ist es oft nicht anwenden, bessere Ergebnisse haben sollte, noch es zu einem „zufälligen“ -Eingang Anwendung sollte in besseren Ergebnissen zur Folge hat.

Hashing eine Zeichenfolge mehrfach wird die Aufgabe des Angreifers im Falle eines Wörterbuchangriff erschweren, so dass es „viel mehr“ Kraft Brute. Ihre erste Frage ist nicht klar, aber mehrere Hashes sind nicht weniger sicher, da der zweite Hash eine feste Länge hat.

Aber wichtiger als ein mehrere Hash, ist die Verwendung eines Salz ist von wesentlicher Bedeutung für eine bessere Sicherheit.

In Bezug auf Ihre zweite Frage, ich würde sagen, dass es nicht sehr einfach ist, welche der 2 zu sagen, ist die sicherste, denke ich dabei mit der Option 2 ist wirklich genug.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top