Muss ich beim Speichern von Kennwörtern in einer Datenbank zusätzlich zu einem geheimen Salz ein Salz pro Anwendung verwenden?

  • Angenommen, die Salze sind ausreichend lang (16 zufällige Zeichen). Gibt es einen Vorteil, wenn ein Salz pro Anwendung zusätzlich zu einem geheimen Salz verwendet wird, wenn gehashte Passwörter in einer Datenbank gespeichert werden? p>

    Der Salt pro Anwendung würde im Code enthalten sein. Das per-secret-Salt würde in Klartext in demselben Datenbankeintrag wie das gehashte Kennwort gehalten.

    29 December 2011
    a_hardin
3 answers
  • Ratenbasiertes Netzwerk ist eine spezifische Implementierung der allgemeineren Spitzennetzwerke. Ein rate-based-network kann als ein Spiking-Netzwerk betrachtet werden, in dem die Eingaben von jedem Neuron über einen kurzen Zeitraum akkumuliert werden (man denke an "eine Sekunde") und nur dazu verwendet werden, den Zustand ihres Ziel-Neurons nur einmal zu aktualisieren In jedem Zeitraum.

    Wenn beispielsweise ein Eingabe-Neuron in einem ratenbasierten Netzwerk eine Ausgabe von '40' hat, sollten Sie darüber nachdenken, als würde es auslösen 40 Mal in der Zeitperiode und nur einmal in jeder Zeitperiode "liest" dieses Ziel-Neuron diese Eingabe.

    Andererseits ist bei Spiking-Neuronen die Ausgabe begrenzt auf binär und daher muss der verwendete Zeitraum kürzer als die maximale Rate sein. In jedem Zeitraum aktualisiert das Zielneuron seinen Zustand basierend auf seiner (binären) Eingabe.

    Um es zusammenzufassen:
    * Spiking-Netzwerke beschreiben allgemeinere Phänomene.
    * Spiking-Netzwerke können auf Eingaben mit feinem Zeitverhalten reagieren Struktur und Verhalten in Zeiträumen, die um Größenordnungen kleiner sind als ratenbasierte Modelle.

    Außerdem kann hinzugefügt werden, dass Spitzennetzwerke wahrscheinlich eine genauere biologische Beschreibung des Systems sind Gehirn (aber immer noch eine sehr grobe Rechnung).

    14 March 2012
  • Es gibt einen Sicherheitsvorteil, auch wenn Sie entscheiden müssen, ob es sich lohnt.

    Ohne die Salt (s) kann ein Passwort nicht mit dem gespeicherten Hash verifiziert werden, das heißt, es kann nicht brutal erzwungen werden. Wenn ein Angreifer das gesamte System kompromittiert, hat er sowohl das Salz aus der Datenbank als auch aus dem Anwendungscode. Ein allgemeiner Angriffsvektor - SQL Injection - gibt jedoch nur Zugriff auf die Datenbank. Bei diesem Angriff bleibt das Anwendungssalz geheim und die Passwörter können vom Angreifer nicht wiederhergestellt werden.

    02 January 2012
    Brad GilbertMushtaque
  • Das Ziel von Hashing ist es, das Knacken von Passwörtern mit Hilfe von Brute-Force- und Rainbow-Tischen zu erschweren. Die Verwendung von Per-Secret-Salz sollte ausreichend sein, wenn Sie ausreichend langes Salz verwenden (was ich sehe, dass Sie es sind). Durch die Verwendung von Salt pro Anwendung wird die Umkehrbarkeit des Hash-Kennworts nicht wesentlich erhöht, außer, dass Sie etwas Verschleierung hinzufügen und die effektive Länge Ihres Kennworts offensichtlich erhöhen. Das Passwort, das in etwa 100 Jahren brutal erzwungen werden könnte, wird nun 10000 Jahre dauern.

    Sie sollten mit einem geheimen Salz zufrieden sein. Stellen Sie jedoch sicher, dass Sie ihn mehrmals hashieren, oder verwenden Sie vorzugsweise bcrypt, um ihn zu hash. Lesen Sie diesen Artikel: http://codahale.com/how-to-safely-store-a-password/

    30 December 2011
    Ben Combee