Die kurze Antwort
Die kurze Antwort lautet: "Sie werden also nicht von einer Sammelklage in Höhe von 5 Millionen US-Dollar betroffen." Das sollte für die meisten CEOs Grund genug sein. Das Hashing von Passwörtern ist viel billiger.
Aber was noch wichtiger ist: Das einfache Hashing der Passwörter, wie Sie es in Ihrer Frage vorgeschlagen haben, reicht nicht aus. Sie werden immer noch die Klage bekommen. Sie müssen mehr tun.
Warum Sie mehr tun müssen, dauert etwas länger, um es zu erklären. Nehmen wir also einen Moment den langen Weg, damit Sie verstehen, was Sie erklären, und dann kreisen wir um Ihre 5-minütige Zusammenfassung.
Hashing ist nur der Anfang
Aber fangen wir damit an. Angenommen, Sie speichern die Passwörter Ihrer Benutzer wie folgt:
# id: Benutzer: Passwort1: Alice: Pizza2: Bob: Passw0rd3: Carol: Baseball
Jetzt Angenommen, ein Angreifer erhält mehr Zugriff auf Ihr System, als Sie möchten. Er ist nur 35 Sekunden lang da, bevor Sie das Problem erkennen und das Loch schließen. Aber in diesen 35 Sekunden hat er es geschafft, Ihre Passwortdatenbank zu knacken. Ja, Sie haben einen Sicherheitsfehler gemacht, aber Sie haben ihn jetzt behoben. Sie haben das Loch gepatcht, den Code repariert und Ihre Firewall aktualisiert, was auch immer es sein mag. Jetzt ist also alles gut, oder?
Nun, nein, er hat Ihre Passwortdatenbank.
Das bedeutet, dass er sich jetzt als jeder Benutzer auf Ihrem System ausgeben kann. Die Sicherheit Ihres Systems wird zerstört. Die einzige Möglichkeit zur Wiederherstellung besteht darin, mit der NEUEN Kennwortdatenbank neu zu beginnen und alle zu zwingen, ihr Kennwort zu ändern, ohne ihr vorhandenes Kennwort als gültige Form der Identifizierung zu verwenden. Sie müssen sie über eine andere Methode (Telefon, E-Mail oder ähnliches) außerhalb des Bandes kontaktieren, um ihre Identität zu überprüfen und ihre Passwörter neu zu erstellen. In der Zwischenzeit ist Ihr gesamter Vorgang tot im Wasser.
Und wenn Sie nicht gesehen haben, dass er die Passwortdatenbank gestohlen hat? Rückblickend ist es ziemlich unwahrscheinlich, dass Sie es tatsächlich sehen würden. Die Art und Weise, wie Sie dies wahrscheinlich herausfinden, besteht darin, ungewöhnliche Aktivitäten auf den Konten mehrerer Benutzer zu bemerken. Vielleicht ist es monatelang so, als ob Ihr System überhaupt keine Sicherheit hat und Sie nicht herausfinden können, warum. Dies könnte Ihr Unternehmen ruinieren.
Also haben wir Hash
Anstatt das Passwort zu speichern, speichern wir einen Hash des Passworts. Ihre Datenbank sieht jetzt folgendermaßen aus:
# id: user: sha11: alice: 1f6ccd2be75f1cc94a22a773eea8f8aeb5c682172: bob: 7c6a61c68ef8b9b6b061b28c348bc1ed7921cb533d22c Ihr Speicher ist ein undurchsichtiges Token, mit dem überprüft werden kann, ob ein Kennwort korrekt ist, aber nicht verwendet werden kann, um das richtige Kennwort abzurufen. Na ja, fast. Google diese Hashes, ich wage dich.
Jetzt sind wir also zur Technologie der 1970er Jahre übergegangen. Herzliche Glückwünsche. Wir können es besser machen.
Also salzen wir
Ich habe lange Zeit die Frage beantwortet, warum Hashes gesalzen werden sollen, einschließlich Beispielen und Demonstrationen, wie dies in der realen Welt funktioniert. Ich werde die Hashing-Diskussion hier nicht erneut hashen, also lesen Sie das Original:
Warum sind gesalzene Hashes sicherer?
Ziemlich viel Spaß , wie? OK, jetzt wissen wir, dass wir unsere Hashes salzen müssen, oder wir hätten die Passwörter genauso gut nie von Anfang an hashen können. Jetzt sind wir auf dem neuesten Stand der Technik der 90er Jahre. Wir können es immer noch besser machen.
Also iterieren wir
Sie haben dieses Bit am Ende der Antwort bemerkt, die ich oben verlinkt habe, richtig? Das bisschen über bcrypt und PBKDF2? Ja, es stellt sich heraus, dass das wirklich wichtig ist. Mit der Geschwindigkeit, mit der Hardware heute Hashing-Berechnungen durchführen kann ( danke, Bitcoin!), kann ein Angreifer mit handelsüblicher Hardware innerhalb weniger Stunden Ihre gesamte gesalzene, gehashte Kennwortdatei durchblasen Berechnen von Milliarden oder sogar Billionen von Hashes pro Sekunde. Sie müssen sie verlangsamen.
Der einfachste Weg, sie zu verlangsamen, besteht darin, sie dazu zu bringen, mehr Arbeit zu erledigen. Anstatt einen Hash zu berechnen, um ein Passwort zu überprüfen, müssen Sie 1000 oder 100.000 berechnen. Oder welche Zahl auch immer zu Ihnen passt. Sie können auch scrypt ("ess-crypt") verwenden, was nicht nur viel CPU-Leistung, sondern auch viel RAM für die Berechnung erfordert, wodurch die oben verlinkte dedizierte Hardware weitgehend unbrauchbar wird
Dies ist der aktuelle Stand der Technik. Herzlichen Glückwunsch und willkommen zur heutigen Technologie.
Sind wir fertig?
Was passiert nun, wenn der Angreifer Ihre Kennwortdatei abruft? Nun, jetzt kann er offline darauf loslegen, anstatt online Vermutungsversuche gegen Ihren Dienst zu unternehmen. Leider hat ein angemessener Teil Ihrer Benutzer (4% bis 12%) das Kennwort "123456" oder "Kennwort" verwendet, es sei denn, Sie verhindern dies aktiv, und der Angreifer wird versuchen, diese zuerst zu erraten.
Wenn Sie die Sicherheit von Benutzern gewährleisten möchten, lassen Sie sie nicht "Passwort" als Passwort verwenden. Oder eine der anderen Top 500. Es gibt Software, mit der die genaue Berechnung der Kennwortstärke einfach (und kostenlos) durchgeführt werden kann.
Aber auch die Multi-Faktor-Authentifizierung ist niemals ein schlechter Anruf. Es ist einfach für Sie, jedem Projekt etwas hinzuzufügen. Das können Sie auch.
Nun, Ihre 5 Minuten des Ruhms
Sie stehen vor Ihrem Chef und er fragt Sie, warum Sie PBKDF2 oder ähnliches verwenden müssen um Ihre Passwörter zu hashen. Sie erwähnen die Sammelklage von LinkedIn und sagen: "Dies ist das in der Branche gesetzlich erwartete Mindestmaß an Sicherheit. Alles andere ist buchstäblich Nachlässigkeit." Dies sollte weniger als 5 Minuten dauern, und wenn Ihr Chef nicht überzeugt ist, hat er nicht zugehört.
Aber Sie könnten fortfahren: "Die Kosten für die Implementierung der Hashing-Technologie sind vernachlässigbar, während die Kosten für die nicht -Implementierung in Millionenhöhe oder höher liegen könnten." und "Im Falle eines Verstoßes können Sie sich mit einer ordnungsgemäß gehashten Datenbank als gut geführte sicherheitsbewusste Organisation positionieren, während eine nicht ordnungsgemäß gehashte Datenbank eine sehr öffentliche Verlegenheit darstellt, die, wie die Geschichte vielfach gezeigt hat, dies auch tun wird." nicht von den Medien ignoriert oder im geringsten übersehen werden. "
Wenn Sie technische Informationen benötigen, können Sie die oben genannten Punkte erneut überprüfen. Aber wenn Sie mit Ihrem Chef sprechen, sollten Sie es besser wissen. Und Analogien sind viel weniger effektiv, als nur die realen Effekte zu zeigen, die perfekt sichtbar sind, ohne dass eine Zuckerbeschichtung erforderlich ist.
Sie bringen Menschen nicht dazu, Schutzhandschuhe zu tragen, wenn Sie eine gute Analogie erzählen . Stattdessen geben Sie etwas Mittagsfleisch in das Becherglas und wenn es in grünen und blauen Flammen explodiert, sagen Sie: "Das passiert mit Ihrem Finger."
Verwenden Sie hier das gleiche Prinzip.