Zitate für die Unkenntnis eines weltweit eindeutigen Passworts

20

Ich bin mit jemandem (einem Kunden) nicht einverstanden, was die Benutzeridentifizierung / -authentifizierung für ein System angeht. Das Wichtigste dabei ist, dass jeder Benutzer ein global eindeutiges Kennwort haben soll (dh, dass nicht zwei Benutzer dasselbe Kennwort haben dürfen). Ich habe alle offensichtlichen Argumente dagegen aus dem Weg geräumt (es ist eine Sicherheitslücke, es verwechselt Identifikation mit Authentifizierung, es ist sinnlos usw.), aber sie bestehen darauf, dass an diesem Ansatz nichts falsch ist.

Ich habe verschiedene Google-Suchen durchgeführt, um nach maßgeblichen (oder halb maßgeblichen oder sogar nur unabhängigen) Meinungen zu suchen, kann aber keine finden (hauptsächlich ist es nur ein so offensichtlicher Fauxpas, dass es sich nicht lohnt, davor gewarnt zu werden, wie soweit ich das beurteilen kann). Kann mich bitte jemand auf eine solche unabhängige Meinung hinweisen?

[EDIT]
Vielen Dank für all Ihre Antworten, aber ich verstehe bereits die Probleme mit diesem vorgeschlagenen Ansatz / dieser Anforderung und kann sie dem Kunden sogar erklären, aber der Kunde akzeptiert sie nicht, daher meine Bitte um unabhängige und / oder maßgebliche Quellen .

Ich habe auch den Daily WTF-Artikel gefunden, aber er leidet unter dem Problem, auf das Jon Hopkins hingewiesen hat - dass dies ein so selbstverständlicher WTF ist, dass es scheinbar nicht wert ist, erklärt zu werden, warum .

Und ja, die Passwörter werden gesalzen und gehasht. In diesem Fall könnte es schwierig sein, eine globale Einzigartigkeit zu gewährleisten, aber das löst mein Problem nicht. Es bedeutet lediglich, dass ich eine Anforderung habe, an die sich der Kunde nicht rühren kann. Dies ist nicht nur schlecht beraten, sondern auch schwierig implementieren. Und wenn ich in der Lage wäre zu sagen, dass ich mich nicht auf Salting und Hashing beschränke, dann wäre ich in der Lage zu sagen, dass ich keine global eindeutigen Passwörter implementiere.

Hinweise auf unabhängige und / oder maßgebliche Quellen, warum dies eine schlechte Idee ist, werden immer noch dankbar entgegengenommen ...
[/ EDIT]

Kroger
quelle
2
Dies ist eine seltsame Idee, von der ich glaube, dass Sie Glück haben werden, wenn Sie überhaupt viel darüber geschrieben haben. Meiner Meinung nach ist es so offensichtlich fehlerhaft, dass es von Sicherheitsexperten nicht als ernst genug angesehen werden würde, darüber zu schreiben.
Jon Hopkins
3
Ich hoffe wirklich, dass Sie keine Klartext-Passwörter speichern, sondern gesalzen und gehackt. Wenn sie gesalzen und gehackt sind, wird es schwierig sein, die globale Einzigartigkeit sicherzustellen. Wenn nicht, kümmert mich Ihre Sicherheit nicht, da ich bereits weiß, dass es schlecht ist.
David Thornley
1
Können Sie das Kennwort trotz Sicherheitslücken nicht einfach ablehnen, wenn es nicht eindeutig gehasht werden kann?
Robert Harvey
Nach der Bearbeitung wiederhole ich meine Antwort - dies ist kein "Nicht", sondern ein "Nicht" (aufgrund der Art und Weise, wie Passwörter gespeichert werden müssen). Wenn Sie nicht interessiert sind, müssen Sie den Prozess wiederholen und verstehen, warum der Kunde dies als erstes für notwendig erachtet.
Murph
2
Interessant, dass sie Ihnen genug vertrauen, um ihr System zu entwerfen, aber nicht genug, um sie beim Entwurf ihres Systems zu beraten.
Gary Rowe

Antworten:

24

Wenn ein Client versucht, ein bereits vorhandenes Kennwort zu erstellen, erhält er die Rückmeldung, dass ein Benutzer dieses Kennwort bereits verwendet, was normalerweise eine Verletzung der Datenschutzvereinbarung darstellt.

Darüber hinaus sind Benutzernamen viel einfacher zu erraten (und wenn es ein Forum gibt, können Sie dort nur eine Menge Benutzernamen finden), und Sie weisen die Benutzer darauf hin, wie sie die Website hacken können.

Irgendwo im Internet sollte es eine Seite geben, die den Teil der Verletzung der Datenschutzbestimmungen beschreibt, ansonsten ist es nur normal: Sie würden im Grunde genommen jemandem einen Schlüssel und eine Liste von Privatadressen geben.

BEARBEITEN: Nicht in der Nähe von Autor, aber vielleicht hilfreich, nachdem Sie erklärt haben, was WTF bedeutet: http://thedailywtf.com/Articles/Really_Unique_Passwords.aspx

deltreme
quelle
+1 Bei den meisten Authentifizierungsschemata können Sie auch so viele Benutzernamen ausprobieren, wie Sie möchten, während Sie nur drei Versuche mit einem Kennwort durchführen.
Michael K
1
Diese WTF dient vor allem dazu, das Kennwort als Primär- / Fremdschlüssel zu verwenden. Naja vielleicht auch für Klartextpasswörter.
Murph
2
+1: Sie sollten niemals zulassen, dass ein anderer Benutzer dasselbe Passwort hat. Sprechen Sie über eine massive Sicherheitslücke ... Sie könnten Brute-Force-Passwortangriffe ausführen, indem Sie Ihr Passwort wiederholt ändern . Das würde unter dem Radar vieler Überwachungssysteme fliegen.
Satanicpuppy
Tatsächlich wäre es in einigen Kontexten sinnvoll, ein einziges Feld für einen Anmeldedaten zu haben, wenn Kennwörter ausgewählt werden müssten, damit ein bestimmter Teil (z. B. der erste Buchstabe) eindeutig ist. Wenn man zum Beispiel 26 oder weniger Benutzer hat, kann man sagen, dass jeder Benutzer ein Passwort auswählen muss, das mit einem anderen Buchstaben beginnt. Ein solches System würde 26 verschiedenen Benutzernamen mit einem Zeichen entsprechen, jedoch die Notwendigkeit vermeiden, zwischen dem Namen und dem Kennwort die Tabulatortaste oder die Eingabetaste zu drücken.
Supercat
10

Best Practice steht der Erfüllung der Anforderung im Wege:

Sie können dies nicht tun, weil Sie die Kennwörter nicht kennen und sie daher nicht vergleichen können, da Sie nur den Hash des Kennworts und ein Salt (das Sie neben dem gehashten Kennwort speichern können) speichern. Dies ist eine bewährte Methode, und genau das tun Sie. Getan.

Ein anderer Schnitt: Doh! Im Nachhinein ist es einfach - Sie könnten immer noch die Eindeutigkeit überprüfen, da Sie (natürlich) das Salz haben. Erschießen Sie mich jetzt. Natürlich müssen Sie dem Kunden dieses Detail nicht erwähnen.


FWIW, es ist nicht ganz so dumm, wie Sie denken - das Ziel ist es, zu verhindern, dass Gruppen von Benutzern dasselbe Passwort vereinbaren und teilen, was die Leute in der Überzeugung tun , dass es ihr Leben leichter machen wird.

Wird angewendet mit der Anforderung, das Passwort regelmäßig zu ändern, und einer Einschränkung, die verhindert, dass Personen ein aktuelles oder zuvor verwendetes Passwort (überhaupt) und vernünftige Anforderungen an die "Stärke" (oder zumindest ein vorinstalliertes Wörterbuch von "gesperrt") erneut verwenden "Passwörter") Sie werden ziemlich schnell zu einem Punkt kommen, an dem die Chancen sowieso nicht für den Hacker sprechen.


Ok, meine Antwort begann ursprünglich mit:

Mit ein paar Vorbehalten kann man eigentlich nichts falsch machen - die meisten davon sind, dass ich dick bin ...

Anscheinend unangemessener Humor - Punkt war, dass wenn Sie nicht die weltweit einzigartige Einschränkung haben, Sie verschiedene Gelegenheiten schaffen, vielleicht weniger gefährlich - ich weiß es nicht.

Murph
quelle
4
+1 für einige Einblicke, warum jemand nach eindeutigen Passwörtern fragen könnte
Michael Haren
3
Es handelt sich jedoch um eine Sicherheitslücke. Wenn Sie ein Benutzer sind, geben Sie ein neues Kennwort ein, und Sie werden darauf hingewiesen, dass es ungültig ist. Jetzt wissen Sie, dass mindestens ein Benutzer dieses Kennwort hat. Kombinieren Sie dies mit anderen Faktoren (sagen Sie, in welcher Sprache das Wort vorkommt oder in welchem ​​Kontext / mit welcher Bedeutung es für jemanden steht), und Sie haben eine sehr begrenzte Anzahl von Optionen entdeckt, die leicht zu einem Brute-Force-Angriff führen können - möglicherweise sogar zu einem manuellen Angriff eins.
Jon Hopkins
Ähm, ich habe nicht gesagt, dass es kein potenzielles Problem ist, ich habe gesagt, dass es nicht ganz so dumm ist, wie in der Frage vorgeschlagen, weil es verhindert, dass mehrere Benutzer dasselbe Passwort haben (was passiert) und was schlimmer ist, wenn Diese Passwörter sind an erster Stelle schwach. Es ist eine Sicherheitslücke, Benutzern überhaupt den Zugriff auf ein System zu ermöglichen. Wir müssen uns jedoch damit abfinden, dass alles, was danach passiert, ein Kompromiss ist.
Murph
+1 für den Hinweis, dass Sie dies nicht tun können, wenn Sie mit Passwörtern richtig umgehen.
David Thornley
Können wir auch bitte bemerken, dass meine Antwort ist, dass Sie nicht auf Eindeutigkeit testen können, weil Sie das Passwort sowieso haben sollten? Also, wenn ich eine Gegenstimme dafür habe, dass ich wissen möchte warum?
Murph
10

Durch das Erzwingen unwiederholbarer Kennwörter gehen Informationen verloren

Wie? Da jedes Mal, wenn ein Cracker versucht, einen neuen Benutzer mit einem einfachen Passwort zu erstellen, antwortet Ihr System mit "Nein, kann dieses Passwort nicht haben", sagt der Cracker "Goody, das ist eines für die Liste".

Es ist im Allgemeinen eine schlechte Sache, Informationen über Ihre Sicherheit zu verlieren. OK, Dritte, die wissen, dass der Algorithmus in Ordnung ist (Peer Review ist erforderlich), einem dedizierten Cracker jedoch erlauben, Schlüssel abzuleiten - schlecht, wirklich, wirklich schlecht.

Ressourcen, die Richtlinien für die Verwaltung von guten und schlechten Passwörtern beschreiben

In diesem Artikel des Sicherheitsexperten Bruce Schneier erfahren Sie mehr über die Kennwortsicherheit.

Lesen Sie dieses PDF von den Sicherheitsforschern Philip Inglesant & M. Angela Sasse, um eine eingehende Diskussion über "Die wahren Kosten nicht verwendbarer Kennwortrichtlinien" zu erhalten. Um aus dem Fazit zu zitieren:

Gegen die Weltanschauung, dass „wenn nur [Benutzer] die Gefahren verstanden, würden sie sich anders verhalten“ [12], argumentieren wir, dass „wenn nur Sicherheitsmanager die wahren Kosten für Benutzer und Organisation verstehen würden, würden sie Richtlinien anders festlegen“.

Falsches Sicherheitsgefühl

Der Client meldet sich daher mit der Frage: "Wenn niemand dasselbe Passwort hat, ist nur eine Person betroffen, wenn einer geknackt ist." Nein. Jeder ist betroffen, weil der Cracker nachgewiesen hat, dass Ihr Kennwortsystem grundlegend fehlerhaft ist: Es ist anfällig für einen Wörterbuchangriff in einem Online-System. Es hätte für einen Cracker nicht möglich sein dürfen, mehrere Versuche zu unternehmen, ein Passwort zu erraten.

Für den Online-Zugriff reichen 6 Zeichen

Ich ging vom Thema ab, aber ich dachte, es wäre für interessierte Leser erwähnenswert. In Bezug auf die Sicherheit ist ein Online-System eines, das über ein aktives Sicherheitsmanagement verfügt, das den Zugriff auf die Daten überwacht und steuert. Bei einem Offline-System ist dies nicht der Fall (z. B. wenn Daten auf einer gestohlenen Festplatte verschlüsselt wurden).

Wenn Sie ein Kennwortsystem haben, das online ist, benötigen Sie keine Kennwörter mit hoher Sicherheit. Die Passwörter müssen nur so komplex sein, dass das Erraten innerhalb von 20 Versuchen verhindert wird (ein einfacher Angriff mit dem Namen "Ehepartner / Kind / Haustier" schlägt fehl). Betrachten Sie den folgenden Algorithmus:

  1. Cracker errät das Kennwort mit dem Ansatz "Root plus Suffix", um Vermutungen zu minimieren
  2. Anmeldeinformationen abgelehnt und weitere Anmeldeversuche für N * 10 Sekunden verhindert
  3. Wenn N> 20, Konto sperren und Administrator informieren
  4. N = N + 1
  5. Benutzer informieren, dass die nächste Anmeldung zum Zeitpunkt T erfolgen kann (oben berechnet)
  6. Springe zu Schritt 1

Bei einem einfachen 6-stelligen Passwort verhindert der obige Algorithmus Wörterbuchangriffe und ermöglicht es sogar dem unfähigsten Benutzer auf einer mobilen Tastatur, irgendwann durchzukommen. Nichts wird den sogenannten "Gummischlauch-Angriff" verhindern, bei dem Sie den Inhaber des Passworts mit einem Gummischlauch schlagen, bis er es Ihnen sagt.

Für ein Offline-System, bei dem verschlüsselte Daten auf einem Flash-Laufwerk herumliegen und es dem Cracker freigestellt ist, irgendetwas dagegen zu versuchen, ist der stabilste Schlüssel gefragt, den Sie finden können. Aber das Problem ist bereits gelöst .

Gary Rowe
quelle
1
Was meinen Sie mit "Online" -Zugang? Gibt es eine andere Art?
Robert Harvey
Im letzten Satz finden Sie den Unterschied in Bezug auf die Sicherheit.
Gary Rowe
4

Wenn Sie sie von dieser Vorgehensweise abgeraten und begründet haben, würde ich sie beim Wort nehmen und das System nur so implementieren, wie sie es vorschlagen. Es mag nicht befriedigend sein, aber Sie haben Ihren Job gemacht, und sie zahlen die Rechnung, also sollten sie bekommen, was sie wollen.

Es gibt eine Ausnahme. Wenn die negativen Konsequenzen einer Systemverletzung schwerwiegend sind (z. B. wenn sehr private Informationen durch eine Sicherheitsverletzung gefährdet werden), müssen Sie möglicherweise professionell das gewünschte System nicht implementieren. Erwarten Sie nicht, dass es Sie populär macht, wenn Sie sich weigern, aber lassen Sie sich nicht davon leiten.

PeterAllenWebb
quelle
4

Ich möchte nur Murphs Antwort bekräftigen. Ja, es ist ein Sicherheitsproblem und es gibt Schwachstellen in Bezug auf die Offenlegung von Informationen bei der Implementierung. Aber aus Sicht des Kunden scheint er sich darüber keine allzu großen Sorgen zu machen.

Was Sie beachten sollten, ist, dass es physikalisch unmöglich ist , eine "eindeutige Passwort" -Prüfung durchzuführen. Wenn Sie ein Salting- und Hashing-Kennwort verwenden und es nicht als Klartext speichern, müssen Sie die Eindeutigkeitsprüfung nur mit O (n) (teuren) Vorgängen durchführen.

Können Sie sich vorstellen, dass Sie 10.000 Benutzer haben und es 30 Sekunden dauert, bis jedes Benutzerpasswort auf Eindeutigkeit überprüft wird, wenn sich jemand neu anmeldet oder sein Passwort ändert?

Ich denke, das ist die Antwort, die Sie Ihrem Kunden geben müssen.

Dean Harding
quelle
Ja. Das wäre ein guter Punkt.
PeterAllenWebb
1

Der Abschnitt zur IT-Sicherheit von Stack Exchange ist ein nützlicher Punkt für Sie, wenn Sie nur über den richtigen Ort nachdenken, um die Frage zu stellen. Versuchen Sie es mit /security/tagged/passwords - eine Reihe von Personen, die sich mit IT-Sicherheit befassen, sollten in der Lage sein, spezifische Antworten zu geben.

Rory Alsop
quelle
0

Er würde wahrscheinlich RSA-Zwei-Faktor-Verschlüsselung mögen. Wenn Sie Active Directory oder eine ASP.NET-Mitgliedschaft verwenden, ist dies ein Kinderspiel.

Alt-Text

Das Hardware- oder Software-Token generiert ein zeitabhängiges eindeutiges Kennwort, auf das ein PIN-Code folgt. Zusammen ergibt dies ein eindeutiges Passwort für jeden Benutzer.

goodguys_activate
quelle
Zwei Faktoren sind nutzlos, um Man-in-the-Middle-Angriffe zu verhindern.
BryanH
Stimmt, aber diese Aussage scheint sich nicht auf die vorliegende Frage zu beziehen.
goodguys_activate
Aber jetzt kenne ich deinen 2. Faktor !!! Oh warte ... bitte aktualisiere dein Bild
Michael Haren
2
Hmm, ich denke, es wäre cool, ein animiertes GIF zu machen
goodguys_activate