Auf zuverlässigen Websites werden immer Behauptungen wie "Alle Daten werden verschlüsselt" oder "Alle Kennwörter werden mit 128-Bit-Verschlüsselung verschlüsselt" usw. angezeigt. Ich bin jedoch nie auf Behauptungen wie "Alle Kennwörter werden gehasht" gestoßen.
Auf meiner Website speichere ich alle Benutzerkennwörter in einer Datenbank, nachdem ich SHA-512 (höchstwahrscheinlich) mit einem zufälligen Salt gehasht habe. Ich möchte ein Snipet hinzufügen, das Benutzern sicherstellt, dass ihre Passwörter sicher sind, damit sie nicht von der Nutzung meiner Website abgehalten werden, da hierfür ein Passwort erforderlich ist. Ich möchte, dass sich Benutzer sicher fühlen, aber ich glaube nicht, dass jeder weiß, was Hashing ist.
MEINE FRAGE: Ist es in Ordnung, eine Nachricht mit dem Hinweis "Alle Passwörter sind verschlüsselt und sicher" bereitzustellen, da ich nicht glaube, dass der durchschnittliche Benutzer den Unterschied zwischen Hashing und Verschlüsselung erkennt und sich wahrscheinlich sicherer fühlt, nur weil er dies sieht das Komfortwort "Verschlüsselung"? Oder gibt es eine alternative Nachricht, die ich bereitstellen sollte?
Nebenbei bemerkt, ich bin neu im Bereich Verschlüsselung und Kennwort-Hashing und habe mich gefragt, ob dies für den Moment, in dem ich meine Site starte, sicher genug ist. Ich möchte den Benutzern nicht mitteilen, dass es sicher ist, wenn dies nicht der Fall ist. Jede Information wäre sehr dankbar. Vielen Dank.
Antworten:
Benutzer interessieren sich nicht.
Das einzige Mal, dass sie sich darum kümmern, ist, wenn jemand das Geld von ihrem Bankkonto abhebt und es scheint, dass es einen Link gibt, über den einige Tage zuvor jemand vollen Zugriff auf Ihre Datenbank erhalten hat.
In fast allen Fällen, in denen ich solche Nachrichten gesehen habe, waren sie irreführend. Das lustigste war auf einer Website, auf der auf jeder Seite "military grade secure" -Labels zu finden waren. In einer Warnmeldung wurde darauf hingewiesen, dass das HTTP-Zertifikat ungültig ist. Es gab eine SQL-Injection auf Anmeldeformular. Einige Wochen später wurde die Website gehackt und verschwand für immer.
Ich höre auf, die Anzahl der Websites zu zählen, die behaupten, die Informationen zu schützen, während ich ein Formular "Passwort wiederherstellen" habe, mit dem das ursprüngliche Passwort per E-Mail gesendet wird.
Es ist wie bei diesen "W3C valid XHTML" -Labels. Warum werden sie normalerweise auf Websites platziert, auf denen selbst eine Homepage mindestens Dutzende von Fehlern und Code enthält
<DIV COLOR='red'>
?Wenn Sie die Benutzer dennoch beruhigen möchten, können Sie Folgendes eingeben:
Aber ehrlich gesagt ist das Formular "Passwort zurücksetzen", das das Formular "Passwort vergessen, per E-Mail an mich senden" ersetzt, viel beruhigender als jedes Wort.
Hinweise aus den verschiedenen Kommentaren:
Das Rad nicht neu erfinden: OpenID verwenden. Auf diese Weise speichern Sie nicht einmal die Hashes.
Quelle: Kommentar von Jan Hudec .
Open Source für Ihr Projekt, da Sie ein Student sind. Da Ihr Anliegen lautet: "Ich möchte nicht, dass Benutzer glauben, dass ihre Passwörter nicht sicher sind, weil ein Kind in der Schule sie entworfen hat." Nichts ist beruhigender, als durch Lesen des Quellcodes überprüfen zu können, ob er von einem geschickten Entwickler geschrieben wurde, dem Sicherheit am Herzen liegt.
Quelle: Kommentar von Jan Doggen .
quelle
Speichern Sie Passwörter nicht an erster Stelle! Folgen Sie dem Beispiel von Stack Exchange und lassen Sie Benutzer sich mit ihrer Identität an einer anderen Site anmelden, die die Authentifizierung über OpenID bereitstellt . Implementierungen sind für die meisten gängigen Web-Frameworks frei verfügbar.
Oder möglicherweise ein anderes Protokoll. Wenn es sich um ein firmeninternes Projekt für eine Institution handelt (wie Ihr Kommentar in der anderen Antwort andeutet), gibt es mit ziemlicher Sicherheit bereits ein LDAP, Kerberos (Windows Active Directory basiert auch auf diesen beiden; Apache unterstützt die HTTP-Authentifizierung für diese) oder ein anderes ein solcher Dienst für die Computeranmeldung. Verbinde dich einfach damit.
Dies erspart Ihnen das Speichern vertraulicher Informationen (Sie müssen höchstwahrscheinlich noch Berechtigungen speichern, diese sind jedoch nicht so kritisch) und die Benutzer müssen sich noch einen weiteren Benutzernamen und ein Passwort merken, was insgesamt eine Win-Win-Situation darstellt.
quelle
Sprichwort:
ist ein persönliches Urteil, das Sie über bestimmte technologische Fakten oder Prozesse fällen, und dieses Urteil ist begrenzt durch das, was Sie zu diesem Zeitpunkt selbst über Sicherheit wissen. Aber können Sie ohne Zweifel garantieren, dass Ihre Verschlüsselung, Speichermethode usw. allen Angriffen standhält, auch solchen, die Sie nicht oder noch nicht kennen?
Bedeutung: Diese Aussage ist in Gefahr, veraltet zu sein, vielleicht sogar ohne dass Sie es merken.
Ich neige dazu , daher mit dem obigen Kommentar von @JoachimSauer zustimmen: Gerade beschreiben , was Sie tun, wie Sie speichern Benutzerinformationen und sagen Benutzer , wie dies soll machen Sie Ihren Dienst sichern. Dann lassen Sie die Nutzer selbst beurteilen.
quelle
Es hängt wirklich vom Kontext Ihrer spezifischen Website ab.
Wenn es sich beispielsweise um eine Verbraucherwebsite handelt, interessieren sich die meisten nur für ihre Passwörter (möglicherweise), finanziellen / gesundheitlichen Informationen (abhängig) und privaten Informationen wie Bilder (hahaha, ja, richtig ...). .
Wenn es sich um eine Geschäftsanwendung handelt, ist die Sicherheitsstufe der gesamten Site relevant, nicht nur Kennwörter. Ebenso kommt es darauf an, wer Ihre Zielbenutzer sind - hochtechnisch / nicht so technisch usw.
All diese Zusammenhänge bestimmen maßgeblich, was Sie kommunizieren sollten und welches Maß an Sicherheit erforderlich ist.
Für nicht technische Verbraucher ist es beispielsweise ausreichend, einige allgemeine, einfache Kommentare zu hinterlassen, wie zum Beispiel:
(Und, wie andere gesagt haben, sind Sie besser dran , nicht einmal mit Passwörtern überhaupt, verwenden einige Standards wie OpenID oder OAuth.)
Für hochtechnische Unternehmen benötigen Sie eine vollständige Seite mit technischen und verfahrenstechnischen Details, wie zum Beispiel:
Natürlich wollen Sie nicht weg zu geben zu viel detaillierte Informationen, sollte es mehr über den Prozess als die Passwörter selbst ... Und natürlich sollte es selbstverständlich sein, dass die Realität tatsächlich sollte erfüllen mit dem, was Sie schreiben dort , mit welchem Kontext Sie es auch zu tun haben.
Als eine der angedeuteten Antworten ist es den meisten Benutzern egal, sie würden nicht verstehen, was Sie ihnen sagen, und sie würden sich trotzdem anmelden, selbst wenn Sie sagen, dass Sie Benutzerdaten an die NSA senden.
Das ist nicht für sie.
Sie würden sich genauso freuen, wenn sie keine Passwörter hätten. Lassen Sie mich einfach meinen Benutzernamen aus der Liste auswählen und mich automatisch anmelden.
Dies gilt natürlich nur für den kleinen Prozentsatz, für den es wichtig ist - Sie sollten es den intelligenten Benutzern ermöglichen, das Richtige zu tun, ihnen die benötigten Informationen zu geben und ihnen die Ausbildung zu gewähren, nach der sie möglicherweise fragen.
Wenn Sie dies nicht tun, wachen die anderen 98% plötzlich auf und werden wütend.
("Sicher, ich wusste, dass ich kein Passwort benötige, um meine Bilder zu sehen, aber ich hätte nicht gedacht, dass jemand anderes sie auch sehen könnte !!")
quelle
Wenn Sie möchten, dass Ihr System sicher ist, ist die Stärke des Kennwortalgorithmus bedeutungslos - die meisten Hacker können Kennwörter in kürzester Zeit knacken, insbesondere wenn das gewählte Kennwort klein ist oder aus allgemeinen Wörtern besteht, die der Hacker bereits geknackt und gespeichert hat "usiong rainbow tables and similar. Lesen Sie den Artikel von ArsTechnica über das Knacken von Passwörtern, um einen umfassenden Einblick zu erhalten.
Was Sie tun müssen, ist sicherzustellen, dass die bösen Jungs überhaupt nicht an ihre Hashes kommen können. Ein sicherheitsbewusstes Unternehmen, für das ich arbeitete, verfügte über ein dreistufiges Websystem, bei dem die Webserver physisch nicht mit den Datenbankservern verbunden waren. Als mein Chef seine Website aufsetzen und direkten Zugriff auf die DB haben wollte (schlecht gestalteter Code, sagte Nuff), wurde ihm gesagt, er könne ihn nicht haben, und als er drückte, wurde ihm gesagt, dass es keine Drähte zwischen ihnen gab . Er musste es entwickeln, damit alle Datenanforderungen über einen Middle Tier-Service weitergeleitet wurden. Und diese Dienste waren nicht nur gesichert, sondern nur minimaler Angriffsfläche ausgesetzt und wurden gesperrt. Und die Datenbank hat niemals Tabellen zum Lesen freigegeben, sondern nur gespeicherte Prozeduren, die gesperrt waren, sodass nur der betreffende Dienst Zugriff hatte.
Es war nicht so schlecht zu programmieren, wie Sie vielleicht denken, denn sobald Sie die Architektur und die Trennung der einzelnen Ebenen gekannt haben, war es recht einfach zu programmieren.
quelle
Sie können die sicherste Site der Welt entwickeln und eine wirklich schlechte Benutzererfahrung erzielen. Benutzer gehen davon aus, dass Ihre Website unsicher ist.
Sie können die am wenigsten sichere Site auf dem Planeten erstellen und eine erstaunliche Benutzererfahrung erzielen. Benutzer gehen davon aus, dass Ihre Website sicher ist. Zumindest bis es in den Abendnachrichten erscheint.
quelle