Salz

In der Kryptographie ist ein Salz von Zufallsdaten, die als eine zusätzliche Eingabe in eine Einwegfunktion, die ein Passwort oder eine Passphrase Hashes dient. Die primäre Funktion der Salze ist es, gegen Wörterbuchangriffe gegen eine Liste von Passwort-Hashes und gegen vorberechneten Rainbow-Table-Angriffe zu verteidigen.

Ein neues Salz wird nach dem Zufallsprinzip für jedes Passwort generiert. In einer typischen Umgebung, das Salz und das Passwort verkettet und mit einer kryptografischen Hash-Funktion verarbeitet, und das resultierende Ausgangssignal wird mit dem Salz in einer Datenbank gespeichert. Hashing ermöglicht später die Authentifizierung bei der Verteidigung gegen den Kompromiss der Klartext-Passwort für den Fall, dass die Datenbank irgendwie beeinträchtigt wird.

Kryptographische Salze werden im Großen und Ganzen in vielen modernen Computersystemen verwendet werden, von Unix-System-Anmeldeinformationen, um Internet-Sicherheit.

Unix-Implementierungen

Frühere Versionen von Unix verwendet eine Passwortdatei, die Hashes gesalzen Kennwörter zu speichern. Bei diesen älteren Versionen von Unix, das Salz wurde auch in der passwd-Datei zusammen mit dem Hash des gesalzenen Passwort gespeichert. Die Passwort-Datei war öffentlich lesbar für alle Benutzer des Systems. Dies war notwendig, damit die benutzerprivilegierten Software-Tools, Benutzernamen und andere Informationen finden. Die Sicherheit von Passwörtern ist daher nur durch die Einwegfunktionen für den Zweck verwendet geschützt.

Frühe Unix-Implementierungen beschränkt Passwörter auf 8 Zeichen und verwendet eine 12-Bit-Salz, das für 4096 möglich Salzwerte erlaubt. Während 12 Bits ausreichend war für den 1970er Jahren bis 2005 Plattenspeicher hatte kostengünstig geworden; so sehr, dass ein Angreifer vor, berechnen die Hashes von Millionen von gemeinsamen Passwörter, einschließlich aller 4.096 möglichen Salzvariationen für jeden das Kennwort und die vorausberechneten Werte auf einer einzigen Festplatte zu speichern. Ein Angreifer mit einem größeren Budget könnte eine Scheibe Bauernhof mit allen 6-stellige Passwörter und die häufigsten 7- und 8-Zeichen-Passwörter in verschlüsselter Form für alle 4096 möglichen Salzwerte gespeichert bauen.

Webanwendung Implementierungen

Es ist üblich, eine Web-Anwendung, um in einer Datenbank speichern den Hash-Wert des Kennworts eines Benutzers. Ohne Salz, kann eine erfolgreiche SQL-Injection-Angriff leicht schwachen Passwörtern ergeben. Da viele Benutzer wiederverwenden Passwörter für mehrere Standorte, ist die Verwendung eines Salzes ein wichtiger Bestandteil der gesamten Web-Anwendungssicherheit. Einige zusätzliche Hinweise für die Verwendung eines Salzes, um Passwort-Hashes in bestimmten Sprachen sichern in der externen Links Schnitt unten.

Vorteile

Eine öffentliche Salz macht es mehr Zeit in Anspruch, um eine Liste der Passwörter zu knacken. Allerdings ist es nicht sinn Wörterbuch-Angriffe schwieriger, wenn Risse ein einziges Passwort. Der Angreifer hat Zugriff sowohl auf die Hash-Passwort und das Salz, so dass bei der Ausführung des Wörterbuch-Angriff kann der Angreifer einfach die bekannten Salz beim Versuch, das Passwort zu knacken.

Um die Differenz zwischen Rissbildung ein einziges Passwort und eine Reihe von ihnen zu verstehen, betrachten ein einziges Passwort-Datei, die Hunderte von Benutzernamen und Passwörter enthält. Ohne Salz, die ein Angreifer Hash zu berechnen, und dann prüfen, ob die Hash scheint überall in der Datei. Die Wahrscheinlichkeit einer Übereinstimmung, dh Risse eines der Kennwörter mit dem Versuch, mit der Anzahl der Passwörter in der Datei erhöht. Wenn Salze vorhanden sind, dann müsste der Angreifer den Hash zu berechnen, wobei "." bezeichnet Verkettung, zu vergleichen, gegen Eindringen A, dann Hash, zu vergleichen, gegen die Eintragung B, und so weiter. Diese Niederlagen "Wiederverwendung" Hashes in Versuchen, mehrere Passwörter zu knacken.

Salzen auch die Verwendung von Rainbow-Tabellen zu bekämpfen zum Knacken von Kennwörtern. Ein Regenbogen-Tabelle ist eine große Liste von vorberechneten Hash-Werte für häufig verwendete Passwörter. Für eine Passwort-Datei, ohne Salze, kann ein Angreifer über jeden Eintrag gehen und schauen Sie den Hash-Passwort in der Regenbogen-Tabelle. Wenn der Look-up ist wesentlich schneller als der Hash-Funktion, wird diese erheblich beschleunigen Knacken Sie die Datei. Allerdings, wenn die Passwortdatei wird gesalzen, dann wird der Regenbogen-Tabelle müsste "Salz. Kennwort" pre-Hash enthalten. Das Salz ist lang genug und ausreichend zufällig ist dies sehr unwahrscheinlich. Ungesalzene Passwörter von den Menschen gewählt, sind in der Regel anfälliger für Wörterbuchangriffe zu sein, da sie eine kurze und aussagekräftig genug, um gespeichert werden, um zu sein. Selbst ein kleines Wörterbuch hat eine bedeutende Chance, Rissbildung die am häufigsten verwendeten Passwörter. Da Salze müssen nicht von Menschen gespeichert werden können sie die Größe der Regenbogen-Tabelle für einen erfolgreichen Angriff untragbar groß benötigt, ohne eine Belastung für die Nutzer zu machen.

Mehr technisch, zu schützen Salze gegen Rainbow-Tabellen, wie sie in der Tat, über die Länge und potenziell die Komplexität des Passwortes. Wenn die Rainbow-Tabellen keine Passwörter entsprechend der Länge und Komplexität des gesalzenen vergessen haben, dann wird das Passwort nicht gefunden werden. Wenn gefunden wird, wird eine haben, um das Salz aus dem Kennwort zu entfernen, bevor es verwendet werden kann.

Zusätzliche Vorteile

Die moderne Shadow-Passwort-System, in dem Passwort-Hashes und andere Sicherheitsdaten werden in einem nicht-öffentlichen-Datei gespeichert, mildert etwas diese Bedenken. Sie bleiben jedoch in Multi-Server-Installationen, die zentralisierte Passwort-Management-Systeme verwenden, um Passwörter oder Passwort-Hashes an mehrere Systeme zu schieben relevant. In diesen Anlagen kann das Root-Konto auf jedem einzelnen System als weniger vertrauenswürdig als die Verwalter der zentralen Passwortsystem behandelt werden, so bleibt es lohnt sich, sicherzustellen, dass die Sicherheit der Kennwort-Hashing-Algorithmus, einschließlich der Erzeugung von einzigartigen Salzwerte ist angemessene.

Salze sind auch Wörterbuchangriffe und Brute-Force-Angriffe zum Knacken große Zahl von Passwörtern viel langsamer. Ohne Salze ein Angreifer, der wird viele Passwörter rissiger gleichzeitig muss nur hash jedes Passwort zu erraten einmal, und vergleichen Sie es mit all den Hashes. Doch mit Salzen, jedes Passwort wird wahrscheinlich ein anderes Salz; so dass jede Vermutung müsste separat für jedes Salz, das viel langsamer ist, da Hash ist im allgemeinen rechnerisch teuer gehasht werden.

Ein weiterer Vorteil eines Salzes ist wie folgt: zwei Benutzer könnte die gleiche Zeichenfolge als Passwort wählen, oder dieselbe Benutzer können wählen, um das gleiche Kennwort auf zwei Maschinen zu verwenden. Ohne Salz wäre dies vergessen, wie die gleiche Hash-String in der Passwort-Datei gespeichert werden. Dies würde die Tatsache, dass die beiden Konten dasselbe Kennwort, so dass jeder, der eines der Kennwörter für das Konto kennt den anderen Konto zugreifen zu offenbaren. Durch Aussalzen die Passwörter mit zwei zufälligen Zeichen, sind die Chancen, dass auch dann, wenn zwei Konten dasselbe Kennwort, niemand kann dies durch Passwort-Dateien zu entdecken.

  0   0
Vorherige Artikel Couette-Strömung
Nächster Artikel Denys Lasdun

Kommentare - 0

Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha