Der einzige wirklich sichere Computer ist ein Computer, der vom Internet isoliert, ausgeschaltet, ausgesteckt, in einem 100 Fuß unter der Erde gelegenen Bunker mit bewaffneten Wachen am einzigen Eingang begraben ist. Selbst dann überprüfe ich es von Zeit zu Zeit.
Das Hashing der Passwörter ist Teil der sogenannten "Sicherheit in der Tiefe". Sie haben Recht, dass Sie in einer idealen Welt keine Fehler machen würden, die Angreifern Zugriff auf diese Daten gewähren würden. Theoretisch wäre es also egal, ob es sich um Klartextkennwörter oder Hashes handelt. In einer realen Welt treten Eingriffe auf, und es ist bemerkenswert schwer vorherzusagen, wie und wo sie auftreten werden. Die Idee hinter der eingehenden Sicherheit besteht darin, sie so zu gestalten, dass Sie theoretisch, selbst wenn ein Angreifer Ihr System auf irgendeine Weise kompromittiert, Anstrengungen unternommen haben, um den Schaden zu mindern.
In der realen Welt gibt es solche ein natürliches Bedürfnis, regelmäßig auf Hashes zuzugreifen. Jedes Mal, wenn sich ein Benutzer anmeldet, müssen Sie darauf zugreifen können. Dementsprechend sind sie fast immer für jede Anwendung zugänglich, die die Authentifizierung durchführt. Wenn jemand Ihre Anwendung kompromittiert, kann er möglicherweise Daten lesen, die er eigentlich nicht lesen sollte.
Die Art und Weise, wie diese Angriffe auftreten, ist endlos. Sie können SQL-Injection-Angriffe ausführen, wenn Sie Ihre Eingaben nicht bereinigen konnten. Sie könnten einen Pufferüberlauf haben, der dem Angreifer die Möglichkeit gibt, seinen eigenen Code auszuführen. Möglicherweise liegt ein Berechtigungsfehler vor, der dazu führt, dass eine Datei versehentlich von Personen gelesen werden kann, wenn dies nicht der Fall sein sollte. Der Angreifer kann aufgrund eines Missbrauchs durch Ihren Sicherungsdienst eines Ihrer Sicherungsbänder in die Hände bekommen!
Alle diese Angriffe geben einem Angreifer Halt auf Ihrem Computer, führen jedoch nicht immer zu einer vollständigen Unterbrechung. Möglicherweise haben Sie Ihren SQL Server chrooted, sodass der SQL Server-Prozess buchstäblich nicht den gesamten Rest des Computers sehen kann. In solchen Situationen müssen die Anmeldeinformationen, die Benutzer benötigen, in Reichweite des SQL-Servers sein oder keinen Wert haben. Daher werden Anmeldeinformationen in der Regel kompromittiert, bevor andere schändlichere Kompromisse auftreten.
Durch Hashing der Kennwörter verringern Sie deren Wert. Ein Hash ist für Anmeldezwecke nicht nützlich. Sie müssen das Passwort haben, das auf diesen Wert hasht. Sie können sich die Kosten für das Brechen des Hash leisten oder auch nicht. In der besten aller Welten mussten Sie sich darüber überhaupt keine Gedanken machen. Wenn Sie sich jedoch für den Sicherheitsansatz anmelden, stellen Sie sicher, dass selbst ein erfolgreicher Eingriff nicht alle Ihre Daten gefährdet. P. >