Frage:
Ist es effektiv, Benutzer zu zwingen, ein sicheres Passwort zu verwenden?
Stephan Heijl
2015-01-02 04:30:26 UTC
view on stackexchange narkive permalink

Ich entwerfe einen Dienst, der unter anderem vertrauliche Informationen speichert. Um keinen unbefugten Zugriff auf diese Informationen zu gewährleisten, werden sie mit einem Schlüssel verschlüsselt, der von ihrem Kennwort (PBKDF2) abgeleitet ist. Das Passwort wird in einem BCrypt-Hash + Salted-Format in der Datenbank gespeichert. Es wird niemals im Klartext gespeichert.

Die gespeicherten Informationen sind so beschaffen, dass ein sicheres Kennwort erforderlich ist. Einige Websites zwingen ihre Benutzer, Passwörter mit großer Entropie zu erstellen, indem sie strenge Zeichenrichtlinien durchsetzen. Diese komplexen Passwörter können zur Wiederverwendung von Passwörtern auf verschiedenen Websites führen [1]. Dies ist A Bad Thing ™ [2].

Ich möchte lieber, dass meine Benutzer ein Kennwort auswählen, das sowohl sicher ist als auch nicht sehr wahrscheinlich wiederverwendet wird oder bereits in einem anderen, weniger sicheren Webdienst verwendet wird. Aus diesem Grund habe ich darüber nachgedacht, ein XKCD-ähnliches [3] Kennwortschema für meine Benutzer in ihrer Muttersprache zu verwenden.

Dem Benutzer werden 4-5 verschiedene Wörter aus einer großen Wortliste mit mehr als 6 Zeichen angezeigt (keine Wörter mit Sonderzeichen, nur ASCII). Der Passworteingabedialog würde mit 4-5 Feldern anstelle des normalen Einzelfelds formatiert, um das Passphrasenparadigma zu verstärken. Bei der Registrierung kann das Passwort nach Belieben neu generiert werden, um dem Benutzer die Möglichkeit zu geben, eine Passphrase auszuwählen, die aus Wörtern besteht, an die er sich leicht erinnern kann. Der Benutzer kann keine eigenen Wörter eingeben.

Ich weiß aus eigener Erfahrung, dass CreeperHost [4] diese Methode bereits verwendet, allerdings mit einem einzigen Kennwortfeld mit vier verketteten englischen Wörtern.

Meine Fragen lauten wie folgt:

  • Wäre diese Methode sicherer / effektiver, als es Benutzern zu ermöglichen, ihre eigenen auszuwählen?
  • Hat jemand Erfahrung mit der Implementierung eines ähnlichen Schemas? War es effektiv?
  • Ist das Teilen des Kennwortfelds in mehr als ein bestimmtes Feld von Vorteil oder werden zu viele Informationen angezeigt?

Ich suche speziell nach Antworten im Zusammenhang mit der praktischen Anwendung dieser speziellen Methode, falls es welche gibt. Ich bin mit den theoretischen Stärken und Schwächen dieser Methode zur Passwortgenerierung vertraut.


  1. Das Wirrwarr der Wiederverwendung von Passwörtern - http: //www.jbonneau .com / doc / DBCBW14-NDSS-tangled_web.pdf
  2. Wiederverwendung von Passwörtern - http://xkcd.com/792/
  3. Kennwortstärke - http://xkcd.com/936/
  4. Creeperhost - http://www.creeperhost.net/
  5. ol>
Ist es sinnvoll, Ihre Benutzer zur Verwendung eines Kennworts dieses Formulars aufzufordern? Es ist wahrscheinlich, dass Benutzer, die Kennwortmanager verwenden, gestört werden. (Wenn Sie irgendwie wissen, dass keiner Ihrer Benutzer jemals einen Passwort-Manager in Verbindung mit dieser Site verwenden wird, dann ist das wahrscheinlich in Ordnung.)
Sie sprechen einen fairen Punkt an. Ich bin nicht mit der Art und Weise vertraut, wie die meisten Passwortmanager mit dieser Situation umgehen. Eine rudimentäre Suche zeigt, dass LastPass dies unterstützt, bei anderen bin ich mir jedoch nicht sicher.
Diese Frage ist so voller Siege, dass ich mich nach einem Jahr des Lauerns endlich angeschlossen habe.
Nur als persönliches Problem, wenn ich die Wahl hätte, ein Passwort zu verwenden, das ich erfunden habe, oder eines, das ich erfunden habe, würde ich jedes Mal das erstere wählen. Zumal ich finde, dass die XKCD-Behauptungen falsch sind und die vier Wörter nicht leicht zu merken sind und ich sie definitiv nicht so schnell auswendig gelernt habe, wie behauptet. Ich weiß auch, dass es einen TED-Vortrag gab, in dem darauf hingewiesen wurde, dass Tests zeigten, dass sie nicht leicht zu merken waren. (Wenn ich keine Wahl habe, werde ich das Passwort wahrscheinlich in ein Passwortfach legen, in dem ich mein Passwort festlegen kann. Daher kann ich es besser schnell kopieren / einfügen.)
trlkly: Der Benutzer hat ein Mitspracherecht in diesem Schema, da Passphrasen in gewissem Maße durch eine Reihe von Wörtern beeinflusst werden können, die leichter zu merken sind, indem man "das Rad dreht", bis eine geeignete Phrase auftaucht. @cmdqueue verwies auf eine Studie, die zeigt, dass sie ungefähr so ​​leicht zu merken sind. Ein Blick auf diese Studie zeigt, dass die sichereren Passphrasen (pp-large) im Vergleich zu einem gleichwertigen Passwort mit hoher Entropie als weniger schwierig und weniger ärgerlich empfunden werden (https://cups.cs.cmu.edu/soups/2012/proceedings) /a7_Shay.pdf)
Ich hasse es immer, wenn Websites mich dazu zwingen, ein bestimmtes Passwortformat zu verwenden. Letztendlich sind es ihre Daten, es liegt an ihnen, wie sie sie schützen wollen.
@OndrejSvejdar Bitte lesen Sie die Frage noch einmal. Der Zweck der Passphrase in diesem Fall ist nicht primär die Authentifizierung. Die Passphrase wird als Schlüssel für eine Schlüsselableitungsfunktion verwendet, mit der persönliche Daten verschlüsselt werden. Andere Systeme, auf die ich in dieser Frage nicht eingehen werde, befassen sich mit der Benutzerauthentifizierung. Der wichtigste Faktor bei dieser Frage ist, dass die Daten des Benutzers verschlüsselt sind und der Schlüssel an meinem Ende des Dienstes nicht im Klartext vorhanden sein sollte.
@StephanHeijl: Ich hoffe, Sie verwenden es tatsächlich nur, um den echten Schlüssel zu verschlüsseln?
[** Obligatorischer XKCD-Beitrag. **] (http://xkcd.com/936/)
Wenn dies ein "optionaler" Dienst wäre (z. B. nicht einer, der mir beispielsweise von meiner Bank auferlegt wurde), würde ich jeden Versuch, mich zu zwingen, ein vom Anbieter ausgewähltes Passwort zu verwenden, als Hinweis auf Ahnungslosigkeit betrachten. und es würde mich mit ziemlicher Sicherheit motivieren, den Service, für den ich Ihre Website in Betracht gezogen habe, von einem anderen Anbieter zu kaufen.
Sie sollten sicherstellen, dass Sie Ihre Benutzer dazu ermutigen, sehr sichere Passwörter wie "richtige Pferdebatterie-Heftklammer" (ja, ich habe gerade auf xkcd verwiesen) auszuwählen, was für Cracking-Programme schwierig ist, anstatt des herkömmlichen "Einwerfens einer Zahl und" ein Großbuchstabe". Ja, dies verbessert die Sicherheit und Sie sollten die Benutzer darüber informieren, dass es tatsächlich funktioniert
Normalerweise ja. Es gibt eine Menge Script-Kiddies und andere zufällige Hacker, die Sie oder Ihren Kunden zum Spaß ansprechen können. Es ist nie gut, wenn ein Unternehmen, dem die Website gehört, einen PR herausgeben muss, der erklärt, dass sie gehackt wurden ... und Sie sind Teil des Grundes.
Ein versteckter Vorteil - Sie können sicher sein, dass sie kein Passwort wiederverwenden.
Ihr Schema würde mich daran hindern, ein stärkeres Passwort als das von Ihnen verwendete zu verwenden (z. B. ein mit 20 Zeichen generiertes Lastpass-Passwort). Sie würden eine stark formulierte E-Mail erhalten, wenn ich einer Ihrer Benutzer wäre.
@StephanHeijl: Nach meiner eigenen Erfahrung ist es der beste Weg, Mitarbeiter zu zwingen, sichere Passwörter zu wählen, um mehrere Post-It in die erste Schublade ihres Schreibtisches zu bekommen! Oder * (wenn dies nicht der Fall ist) * senden Sie dem Systemadministrator täglich eine E-Mail, um das Passwort zurückzusetzen.
Acht antworten:
Agent_L
2015-01-02 20:05:04 UTC
view on stackexchange narkive permalink

Passwörter zulassen. Markieren Sie einfach die Konsequenzen.

Ihr Schema ist seltsam und für Benutzer fremd, und ich glaube, viele Menschen würden Ihren Dienst lieber nicht mehr nutzen, als ihn einzuhalten. Anstatt sie ihr eigenes Passwort wählen zu lassen, zwingen Sie sie, sich eines zu merken, das Sie für sie ausgewählt haben. Dies ist für die meisten Menschen nicht akzeptabel. Sie denken, dass Sie ihnen eine Wahl geben, indem Sie es erneut versuchen, aber der Unterschied in der Benutzererfahrung ist ungefähr der gleiche wie bei Geldautomaten gegenüber einarmigen Banditen.

Denken Sie daran, dass das größte Problem der menschliche Faktor ist . Was Sie zuerst vermeiden sollten, sind Passwörter, die auf ein Whiteboard geschrieben werden. Diese Jungs hatten ein sehr sicheres Passwort. Und dann wurde es im Fernsehen ausgestrahlt.

Wenn Sie sicherstellen möchten, dass niemand an Ihrer Seite es knacken kann, brauchen Sie interne Verfahren, kein Affentraining Benutzer. Möglicherweise ist ein System, bei dem der Zugriff auf gesalzene Kennwörter durch dieselben Wiederholungsbeschränkungen geschützt ist wie das Benutzeranmeldefeld. Außerdem ist es nicht wichtig, den Arbeitnehmern den Zugang zu unmöglich zu machen. Verkäufer in Geschäften haben uneingeschränkten Zugang zu Registrierkassen. Was Diebstahl verhindert, ist das Bewusstsein für unvermeidbare Folgen. Verwenden Sie die Aufzeichnung von Verwaltungssitzungen. Verwenden Sie "mindestens 2 Personen für den Zugriff". So machen es Banken, weil starke Benutzerkennwörter nicht alles schützen können.

Zusätzlicher Gedanke: ** Sie ** halten die Informationen für wichtig. Aber Sie wissen nie, was Benutzer dort eingeben. Ich habe Konten bei 6 Banken, aber 5 von ihnen haben nie mehr als ein paar Dutzend Dollar. Trotzdem zwingen mich diese Banken, Pennys und Tausende gleichermaßen zu bewachen.
Wenn Banken Passwortrichtlinien nach Einzahlungsbetrag hatten, könnten Sie eines Tages das gesamte Geld von Ihrem Tausenderkonto abheben und auf Ihr Penny-Konto einzahlen. Es wäre eine Schande, wenn Hacker, die nicht mit Ihnen verbunden sind, am selben Tag die Penny-Sicherheit durchbrechen würden. Und es wäre ein großer Zufall, wenn Sie am selben Tag Tausende mysteriöser Überweisungen erhalten würden - das würde die Penny Bank in keiner Weise davon abhalten, Ihre Tausenden von Einlagen wieder gut zu machen. Der Passwortschutz dient dem Schutz der Bank, nicht Ihrem.
@emory Ich habe nicht über die Analyse meines Kontostands durch eine Bank geschrieben (als Sie Ihren ersten Durchgang eingerichtet haben, ist der Kontostand Ihres brandneuen Kontos offensichtlich 0). Ich habe geschrieben, dass ich der einzige bin, der in der Lage ist, die Sicherheitsstufe zu bestimmen. Die Bank hat bereits einen guten Schutz, da sie nicht verantwortlich ist, wenn ich die Verwaltung meines Passworts vernachlässigt habe. Aber ja, sie schützen ihr Image. Die Überschrift "Bank X hat mein Geld verloren" sieht nie gut aus, selbst wenn "Geld" "0,12 $" bedeutet.
Dies. So sehr ich Sicherheit liebe, bedeutet Ärger zusätzlich zu Sicherheit nicht gleichbedeutend mit besserer Sicherheit
Der Link "Diese Leute" ist defekt (es heißt "Diese Seite erlaubt kein Hot-Linking). Können Sie eine andere Quelle dafür finden oder auf die gesamte Webseite verlinken (damit wir auf ihre Anzeigen klicken und für das Hosting bezahlen können!)? ).
[Bild mit nicht verstecktem Passwort] (http://www.frostbox.com/wp-content/uploads/2013/04/tumblr_m99m0evw311rsyfz8o1_1280.jpg)
Einverstanden. Ich müsste es wahrscheinlich aufschreiben, was ich normalerweise nicht mit meinen Passwörtern mache. Darüber hinaus sind einige der Wörter für nicht-englische Muttersprachler möglicherweise nicht sinnvoll oder seltsam.
Entschuldigung für den toten Link. Vollständiger Artikel (in polnischer Sprache): http://niebezpiecznik.pl/post/wczoraj-w-wiadomosciach-tvp-ujawniono-hasla-do-systemow-ratowniczych/. Anmeldeinformationen ermöglichten den Zugriff auf RescueTrack, ein internationales System zur Verwaltung und zum Versand von medizinischen Hubschraubern. Personen, die sich angemeldet hatten, gaben an, Textnachrichten an Flugbesatzungen senden zu können. Es blieb ungetestet, ob auf diese Weise ein gültiger Versandauftrag erteilt werden konnte. Die TV-Show wurde bei LPR (Lotnicze Pogotowie Ratunkowe, polnischer Flugambulanzdienst) aufgezeichnet.
JCx
2015-01-02 20:41:03 UTC
view on stackexchange narkive permalink

Die spezifischen Fragen:

Wäre diese Methode sicherer / effektiver, als wenn Benutzer ihre eigenen auswählen könnten?

Ja. Sie reduzieren die Wiederverwendung von Passwörtern und entfernen die häufig verwendeten Passwörter sofort.

Hat jemand Erfahrung mit der Implementierung eines ähnlichen Schemas? War es effektiv?

Ich habe in der Vergangenheit viele 'alternative' Passwortschemata gesehen. Die meisten fügten nur Supportprobleme und Komplikationen hinzu, ohne die Sicherheit wesentlich zu verbessern.

Ist es vorteilhaft, das Kennwortfeld in mehrere Felder zu unterteilen, oder werden zu viele Informationen angezeigt?

Ich denke, Sie haben das Basic bereits besiegt automatisierte No-Knowledge-Angriffe, indem sie einfach anders sind. Das hinterlässt einen gezielten Angriff. Wenn jedoch eine öffentliche Anmeldung verfügbar ist, kann der Angreifer feststellen, dass Sie 5 Wörter oder was auch immer benötigen. Ich glaube also nicht, dass Sie dem Angreifer mehr Informationen liefern, indem Sie diese in Felder aufteilen.

Geben Sie natürlich keine Ratschläge darüber, welche Wörter falsch sind, wenn die Authentifizierung fehlschlägt - dies untergräbt die Sicherheit!

Weitere Ratschläge

In anderen Antworten gibt es viele andere gute Ratschläge zur Benutzerfreundlichkeit.

Wenn Sicherheit und Benutzerfreundlichkeit wichtig sind, schauen Sie sich vielleicht etwas Besseres als Passwörter an. SMS vielleicht?

Es ist möglich, lange Zeit mit Passwörtern herumzuspielen und trotzdem nicht richtig mit den Risiken umzugehen. Trojaner auf dem Computer des Benutzers, Zurücksetzen der Authentifizierung über gehackte E-Mail-Konten, Phishing ... Es gibt Dinge, die nicht mit ausgefallenen Kennwortschemata und Steuerelementen zu tun haben *.

Wenn die Daten wichtig sind, würde ich etwas besseres tun als ein Passwort.

(Manchmal ist es besser, wenn Sie nur ein zufälliges Kennwort für den Benutzer erstellen und ihn bitten, es sicher in einer verschlossenen Schublade zu speichern. Dies hängt davon ab, um welche Bedrohungen und Angriffe Sie sich Sorgen machen und wie Das System wird verwendet.)

* Es gibt ziemlich viel zu sagen für das risikobasierte Zwei-Faktor-Ansatz-Google-Angebot, bei dem die Zwei-Faktor-Authentifizierung nur gelegentlich ausgelöst wird. Es kontrolliert die Kosten und bietet eine große Sicherheitsverbesserung. Aber ich würde das auslagern, wenn Sie nicht viel Zeit haben :)

Dies ist eher die Antwort, nach der ich suche. Zur Verdeutlichung würde die Authentifizierung tatsächlich mit einem zusätzlichen Faktor wie SMS durchgeführt. Diese Frage bezog sich hauptsächlich auf die Verbindung zwischen Datenverschlüsselung und Kennwort sowie auf die zusätzlichen Vorteile oder Hürden für die Benutzererfahrung, die mit der Aufdeckung der Art der Kennwortgenerierungsmethode verbunden sind.
Stephan - meinst du damit, dass du bereits einen zweiten Faktor hast, z. SMS, bei allen Logins trotzdem? In diesem Fall können Sie die Sicherheit des Kennworts verringern, ohne das Risiko erheblich zu beeinträchtigen. Es sei denn, Sie befinden sich in einer Umgebung mit sehr hoher Bedrohung.
Alle Anmeldungen werden mit einem zweiten Faktor durchgeführt. Aufgrund der Vertraulichkeit der gespeicherten Daten befürchte ich jedoch, dass eine Verringerung der Sicherheit des Kennworts (von dem der Verschlüsselungsschlüssel abgeleitet wird) ein zu großes Risiko darstellt, falls die Datenbank mit den verschlüsselten Dateien beschlagnahmt wird, sei es böswillig Hacker oder staatliche Intervention.
Ah - hast du. Der Kryptoschlüssel macht die Passwortentropie wichtiger.
Okay - ich denke über ein Update der Antwort nach. Befürchten Sie einen lokalen Angriff auf die Benutzer, bei denen ihr Zuhause durchsucht wird, oder nur einen elektronischen Angriff? Führen Sie die Entschlüsselung auf der Client- oder der Serverseite durch?
Die Entschlüsselung erfolgt clientseitig, alle Daten werden über HTTPS übertragen. Da es sich um eine Unternehmensanwendung handelt, möchte ich mich vor Einbrüchen in einer Büroumgebung oder Server-Anfällen schützen.
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/19927/discussion-between-jcx-and-stephan-heijl).
Die erste Behauptung ist ungerechtfertigt und lässt die Frage völlig außer Acht. Viele Benutzer haben ein sicheres Schema, wie "korrekte Pferdebatterie-Heftklammer", das * Ihren * dummen Anforderungen nicht entspricht, sodass sie stattdessen "korrektes Pferd4" verwenden müssen. Oder einfach nur "Horse4abc", da Sie denselben Charakter auch zweimal hintereinander verboten haben (Sie ansehen, USPS).
Bob Brown
2015-01-02 04:42:47 UTC
view on stackexchange narkive permalink

Sie sollten über Diceware lesen. Sie können 44 Entropiebits mit vier Wörtern aus einer viel kleineren Liste erhalten. Wenn Ihre Liste etwa 2050 Wörter umfasst und Sie ersatzlos auswählen, entspricht jedes Wort etwa 11 Bit Entropie, da log 2 sub> (2048) = 11. Mit 5.000 Wörtern können Sie 12 Bit pro Wort erhalten. (log 2 sub> (4096) = 12)

Ich mag die Idee eines Links "erneut versuchen", auf den der Benutzer klicken kann, bis eine Kombination angezeigt wird, an die er sich erinnern kann.

Eine Sache an Ihrer Frage stört mich. Wenn die Daten mit dem Kennwort eines bestimmten Benutzers verschlüsselt sind, kann nur dieser Benutzer die Daten entschlüsseln. Wenn Ihre Daten pro Benutzer gespeichert werden, ist dies möglicherweise in Ordnung. Beachten Sie, dass wenn ein Benutzer sein Passwort vergisst, die Daten getoastet werden, wenn das Passwort der Kryptoschlüssel ist. In Anbetracht dessen möchten Sie möglicherweise eine asymmetrische Tastenanordnung in Betracht ziehen.

Trennen Sie die Eingabe für den Zugriff nicht in vier Felder. Das gibt einem Angreifer Informationen, die der Angreifer nicht haben sollte. Entscheiden Sie einfach, ob die Wörter durch Leerzeichen getrennt werden sollen oder nicht, und teilen Sie dies Ihren Benutzern mit. Strike>

Während es wichtig ist zu wissen, dass die Verwendung eines Passworts als Schlüssel bedeutet, dass nur jemand, der das Passwort kennt, es entschlüsseln kann (dh, wenn der Benutzer sein Passwort vergisst, ist keine Wiederherstellung von Daten möglich), ist dies möglicherweise eine gute Sache, insbesondere da das Kriterium "Nein" lautet einer auf unserer Seite kann es entschlüsseln. " Wenn es möglich ist, Ihre Daten wiederherzustellen, wenn Sie Ihr Passwort vergessen haben (und einen Wiederherstellungsschlüssel, der Ihnen zur Verfügung gestellt wurde, während Sie Ihr Passwort noch kannten), bedeutet dies, dass jemand am Ende Ihre Daten entschlüsseln kann, was schlecht sein kann.
Ich stimme bis auf den letzten Absatz voll und ganz zu. Es gibt der Angreiferin keine wichtigen Informationen, die sie sonst nicht hätte - nicht nur die Anzahl der Wörter in der Passphrase ist nicht wichtig (die Länge ist nicht Teil der Entropie), sondern sie ist bekannt und wird jedem offenbart potenzieller Benutzer, den der Angreifer leicht vorgeben kann. Auf der anderen Seite ist der Vorteil eine sehr starke Benutzererziehung - was dringend erforderlich ist, wenn Sie sie dazu bringen möchten, sich an eine Passphrase mit vier Wörtern zu gewöhnen ...
Dies ist beabsichtigt. Die Daten sollten nicht wiederhergestellt werden können, wenn der Schlüssel verloren geht. Aus diesem Grund beschäftige ich mich mit Methoden zur Generierung von Passphrasen, die leicht zu merkende Ergebnisse liefern. Ich mag die Idee von Diceware, aber die Muttersprache meiner Benutzer ist hauptsächlich Niederländisch, daher bin ich mir nicht sicher, ob die von ihnen vorgeschlagene Wortliste geeignet ist zum Trennen der Felder; sollten wir nicht immer davon ausgehen, dass die Methode der Passwortgenerierung dem Angreifer bekannt ist? Es scheint eine triviale Menge an Informationen zu sein, die offengelegt werden müssen, während die Benutzererfahrung erheblich verbessert wird.
Ich habe Ihre Antwort positiv bewertet, aber ich habe nach Antworten gesucht, die sich speziell auf die tatsächliche Wirksamkeit der Anwendung dieses Paradigmas beziehen, nicht nur auf die theoretische Kennwortstärke. Ich werde dies in meiner ursprünglichen Frage klarstellen.
@StephanHeijl: Sie können den Dicewords-Mechanismus verwenden, ohne englische Wörter zu verwenden. Was sind die häufigsten 5.000 niederländischen Wörter mit fünf oder mehr Buchstaben?
OK ... Ich war überzeugt, dass separate Passwortfelder "größtenteils harmlos" sind. Ich habe hauptsächlich wegen des Problems aufgegeben, sicherzustellen, dass der Benutzer versteht, was für ein Trennzeichen zu verwenden ist.
Der Mechanismus selbst ist ziemlich irrelevant. Die Auswahl der Wörter wird von einem ausreichend sicheren RNG durchgeführt. Natürlich ist es nützlich zu wissen, dass 5.000 Wörter mit 4 bis 6 Zeichen ausreichend entropisch sind.
Eine kleine Studie https://cups.cs.cmu.edu/soups/2012/proceedings/a7_Shay.pdf behandelt Usability-Aspekte von Passphrasen, einschließlich Daten zu Stimmung, Rückruf, Geschwindigkeit, Wörterbuchauswahl, Länge, Effektivität und Benutzertendenzen, wenn die System generiert die Passphrasen. Basierend auf dem, was ich gelernt habe, ist Sicherheit effektiver, wenn sie benutzerfreundlicher ist, gespeichert und nicht aufgeschrieben wird. Die Anmeldeinformationen werden ohnehin wiederverwendet. Ich habe nicht genug Erfahrung, um BCrypt zu kennen, aber ich habe Demos gesehen, bei denen Klartext (insbesondere Leerzeichen, die Text enthüllen) bekannt ist und dessen ungefähre Position vermieden werden sollte.
Das ist ein großartiger Fund, cmdqueue2. Ich habe die Studie gelesen und obwohl ihr Umfang begrenzt ist (keine neue Passphrase empfangen zu können, 30-Bit-Entropie in der Passphrase), bietet sie mehr Einblick in das Problem. Wenn Sie möchten, können Sie dies in eine Antwort umformulieren, da dies eine wichtige Ressource in dieser Frage ist.
Persönlich würde ich denken, dass separate Felder schmerzhaft sein könnten, wenn der Benutzer eine Art Passwort-Manager verwendet ... natürlich ist das vielleicht in Ordnung.
"Ich mag die Idee eines" erneuten Versuchs "." Es sollte jedoch erwähnt werden, dass dies mindestens ein paar Entropiestücke raubt.
Craig
2015-01-02 18:15:28 UTC
view on stackexchange narkive permalink

Das Problem, das ich bei diesem Ansatz sehe, ist einfach die unkonventionelle Natur, die die Wahrscheinlichkeit verringert, dass Menschen ihn überhaupt verwenden.

Persönlich müsste ich einen sehr zwingenden Grund dafür haben Verwenden Sie den Dienst, um dies zu ertragen, im Gegensatz zur herkömmlichen Passworteingabe. Ich habe in der Vergangenheit kommentiert, dass ich denke, dass Anwendungsentwickler eine gewisse Verantwortung haben, um sicherzustellen, dass Benutzer sichere Kennwörter verwenden. Jedoch; Letztendlich liegt dies in der Verantwortung des Benutzers.

Bedenken Sie auch, dass Sie den Benutzer dazu zwingen, eine bestimmte Methode zur Sicherstellung der Kennwortentropie anzuwenden. Der XKCD-Ansatz ist in Ordnung, aber nicht der einzige, und es gibt keine absoluten empirischen Beweise dafür, dass er der beste ist, und es gibt auch keine Garantie dafür, dass er, wenn er heute der beste ist, die besten sechs Monate bleiben wird Jetzt.

Erwägen Sie die Verwendung von Passwort-Managern, die sehr große, völlig zufällige Passwörter generieren und diese automatisch für den Benutzer eingeben können. Sie würden diese Anwendungen wahrscheinlich mit diesem Ansatz unterbrechen.

Berücksichtigen Sie auch Dinge wie den Artikel grc.com Passwort-Heuhaufen, in dem dies behauptet wird:

  D0g .....................  

... ist ein stärkeres Passwort als dieses:

  PrXyc.N (n4k77 # L! eVdAfp9  

... einfach, weil es ein zusätzliches Zeichen gibt, obwohl die Gesamtentropie (Zufälligkeit) ziemlich niedrig ist und dies auch tun würde Nehmen Sie sich einen Computer 95-mal länger Zeit, um das Passwort zu erraten, an das Sie sich leichter erinnern können.

Das Problem ist, dass Brute-Force-Angriffe aufgrund des lächerlichen Rechenaufwands, wenn die Passwörter länger werden, nur bis zu einer bestimmten Kennwortlänge (6 bis 8 Zeichen) verwendet werden. Aber auch sehr komplexe Kurzpasswörter sind sehr anfällig für Brute Force. Neuere Angriffe sind hybride musterbasierte Angriffe, bei denen kompromittierte Kennwörter als Muster in größeren Kennwörtern verwendet werden. Leistungsstarke GPUs machen diesen Ansatz praktikabel und anscheinend sehr effektiv. Das einfache Auffüllen eines schwachen Passworts mit . scheint keine gute Lösung zu sein.

Siehe auch diesen Artikel, Regeln für die Passwortkomplexität sind ärgerlicher und weniger effektiv als langwierige.

Zumindest einige neuere Untersuchungen zeigen, dass der wichtigste Faktor für die Kennwortstärke die Kennwortlänge ist, zumindest teilweise, weil Kennwörter mit viel Komplexität einfach zu viel sind die meisten Benutzer, auch wenn sie kurz sind. Der XKCD-Ansatz hilft dabei, die Kennwortlänge sicherzustellen, indem er das Speichern sehr langer Kennwörter erleichtert, ohne dass diese Kennwörter einfache bekannte Muster oder Ausdrücke sind. Das ist (wahrscheinlich) die ultimative Stärke - nur die Länge der resultierenden Passwörter. Trotzdem frage ich mich, wie lange die "richtige Pferdebatterie" neueren, auf Hybridmustern basierenden Angriffen standhält.

Da es andere Ansätze gibt, um das gleiche Ergebnis zu erzielen, werden Benutzer dazu gezwungen Dies könnte tatsächlich dazu führen, dass die Nutzung Ihres Dienstes schwieriger wird, ohne dass sich die Sicherheit entsprechend auszahlt. Wenn der XKCD-Ansatz in sechs Monaten eine gewisse Schwäche aufweist, sind Sie fest mit dem XKCD-Ansatz verbunden und müssen erhebliche Anstrengungen unternehmen, um Ihren Service zu ändern.

Ich stimme zu, dass der Ansatz etwas unkonventionell ist. Ich kann mir nur zwei Dienste vorstellen, die ein erzwungenes Passwort / eine Phrase für Nichtbenutzer verwenden. Ich sollte hinzufügen, dass die Software, für die diese Lösung entwickelt wurde, ziemlich spezialisiert ist. Menschen, die nach diesem Produkt suchen, würden dies aus Sicherheitsgründen tun, wären aber nicht unbedingt Sicherheitsexperten. Ich bin damit einverstanden, dass die Passwort-Heuhaufen-Methode für die Auswahl persönlicher Passwörter funktioniert, sie würde jedoch bei der Generierung für jeden Benutzer zusammenbrechen. Das Auffüllen eines einfachen Wortes für jeden Benutzer reduziert die Suche auf die einfache Phrase + die Auffülllänge des Zeichens *.
In Bezug auf Sicherheitslücken in einem bestimmten Kennwortgenerierungsschema: Ich denke, dass dies auch für jedes Schema gelten kann. Rein mathematisch ist der Ansatz solide.
SilverlightFox
2015-01-02 18:18:00 UTC
view on stackexchange narkive permalink

Es klingt nach einer großartigen Möglichkeit, die Wiederverwendung von Kennwörtern zu verhindern. Wenn Sie jedoch Benutzer aus ihrer Komfortzone herausschubsen, werden sie möglicherweise das Kennwort in einer Textdatei speichern, damit sie sich daran erinnern können. Sie sollten betonen, dass sich der Benutzer sein Kennwort merken oder einen Kennwortmanager verwenden muss, um es sicher zu speichern (wenn dies für Sie und Ihr System akzeptabel ist). Ich würde auch sicherstellen, dass die Lösung mit mehreren Feldern mit gängigen Kennwortmanagern funktioniert, obwohl ich keine anderen Probleme beim Aufteilen der Wörter auf diese Weise feststellen kann.

Da die Kennwortmanagerfunktionalität mit mehreren als Kennwort bezeichneten Feldern möglicherweise schwierig ist Zur Implementierung würde ich Benutzern auch die Möglichkeit geben, auch ihre eigenen Passwörter zu verwenden. Sie sollten jedoch angeben, dass Benutzer nur sicher generierte Zufallssequenzen verwenden dürfen, z. B. solche, die in Passwortgeneratoren verwendet werden, die in Keepass oder LastPass enthalten sind. Um zu verhindern, dass ein Benutzer nur das gleiche Kennwort eingibt, das er immer verwendet, können Sie eine dumme Einschränkung erzwingen, nur für den Fall, dass er vom Benutzer eingegeben wird, um sicherzustellen, dass es tatsächlich eindeutig ist. Zum Beispiel. Mindestens 50 Zeichen, mindestens 20 Zahlen, und es müssen Klein- / Großbuchstaben und mindestens ein Symbol enthalten sein. Dies wird erfahrene Benutzer glücklich machen und gleichzeitig schwache Passwörter von anderen verhindern (obwohl einige Benutzer ihre schwachen Passwörter möglicherweise mit 45 " 2" s und einem "! " auffüllen). . Sie könnten versuchen, Fälle wie diese zu erkennen, und dann die Meldung verstärken, dass diese Option nur für Kennwortgeneratoren verwendet wird. Es würde jedoch zu geringeren Erträgen führen, wenn Sie so viel Aufwand in Randfälle investieren. Die bessere Wahl wäre, zu versuchen und nicht erfahrenen Benutzern zu erklären, dass die generierte Option für andere Wörter vorteilhafter wäre.

Ich entwerfe einen Dienst, der unter anderem vertrauliche Informationen speichert. Um sicherzustellen, dass niemand auf unserer Seite diese Informationen abrufen kann, werden sie mit einem Schlüssel verschlüsselt, der von ihrem Passwort abgeleitet ist (PBKDF2). Das Passwort wird in einem BCrypt-Hash + Salted-Format in der Datenbank gespeichert. Es wird niemals im Klartext gespeichert.

Damit eine kennwortbasierte Verschlüsselung vor Offline-Angriffen geschützt ist (z. B. die Personen auf Ihrer Seite oder wenn ein Angreifer auf andere Weise Zugriff erhalten hat) ) würden Sie eine Entropie von 128 Bit oder mehr benötigen, was bedeutet, dass Sie dafür zehn zufällige Wörter anstelle von vier oder fünf benötigen würden. Wenn Sie PBKDF2 verwenden, um den Schlüssel zu verstärken, erhalten Sie möglicherweise 16 Bit zusätzliche Entropie (abhängig von Iterationen ). Daher werden nur neun Wörter benötigt. Ich möchte sicherstellen, dass Sie die Berechnungen durchführen, um sicherzustellen, dass Ihre Verschlüsselung angemessen ist.

Dies würde es für einen durchschnittlichen Benutzer noch schwieriger machen, sich an die Passphrase zu erinnern, und wenn er einen Passwort-Manager verwendet, können Sie dies tun Wählen Sie auch die Option mit 50 Zeichen und lassen Sie sie sich auf diese Weise anmelden. Wie andere bereits betont haben, scheint dies möglicherweise viele Supportanfragen zu generieren, und es ist sehr aufwändig, nur einen Teil eines sicheren Authentifizierungs- und Sitzungsverwaltungssystems zu entwickeln.

Die Anpassung von Edge-Case-Benutzern, die geistig mehr als 40-Bit-Entropiekennwörter im Auge behalten, scheint Zeitverschwendung zu sein, verglichen mit der Sicherheit, die durch das Zulassen benutzerdefinierter Kennwörter geopfert wird, selbst wenn absurde Standards für potenzielle Entropie erforderlich sind. Ich werde mich mit den Vorschlägen des Passwort-Managers befassen, da diese immer beliebter werden und das Potenzial haben, sicherere Schlüssel bereitzustellen.
@StephanHeijl: Einverstanden. Ich habe diese Option dort hinzugefügt, da es schwierig sein kann, die Option mit fünf Feldern zu implementieren, um sie mit mehreren browserbasierten Kennwortmanagern kompatibel zu machen. Es verstärkt auch die Meldung "Verwenden eines Kennwortmanagers", da ich glaube, dass viele Benutzer die fünf Wörter einfach in einer Textdatei speichern, wenn nur die erste Option angegeben wird.
@StephanHeijl Der einzige wirklich relevante Kennwortentropiefaktor ist die Länge des Kennworts. Benötigen Sie ein 25-stelliges Passwort, machen Sie sich keine Sorgen über andere "Komplexitäts" -Faktoren, da diese einfach nicht so viel bedeuten, und Sie sind auf dem besten Weg zu einer soliden Lösung.
@StephanHeijl Viele Benutzer schreiben einfach die 5 Wörter auf eine Haftnotiz und kleben sie auf ihren Monitor oder unter ihre Tastatur. Vertrau mir - das passiert. ;-);
Einverstanden ist, dass Benutzer, die noch keinen Passwort-Manager haben, die Wahl haben, das Passwort unsicher aufzuschreiben (viele nehmen es an), sich daran zu erinnern, es dann zu vergessen und das Zurücksetzen des Passworts zu verwenden (viele nehmen dies zumindest versehentlich einmal) oder die Installation einer Software, die sie nicht verstehen, um sich daran zu erinnern (fast keiner wird dies tun). Entscheiden Sie also, ob dieses Szenario besser oder schlechter ist als das Verwenden und Wiederverwenden ihrer eigenen schwachen Passwörter, und los geht's. Stellen Sie sich nur nicht vor, dass sie einfachen Anweisungen wie "Merken Sie sich diesen Satz" folgen.
Hagen von Eitzen
2015-01-03 18:06:15 UTC
view on stackexchange narkive permalink

Ihre Methode ist interessant, aber ich glaube, sie gefällt mir nicht.

  1. Sie erlauben den Benutzern, das Rad zu "respinieren", bis sie ein Passwort finden, das ihnen gefällt. Wenn Sie dies mit vierstelligen Zahlen tun würden, könnten sich einige Leute möglicherweise immer wieder drehen, bis sie 1234 oder 0000 erreichen. Dies würde den Angreifer glücklich machen.

  2. Obwohl es viele Kombinationen gibt, kann sich ein Angreifer darauf beschränken, nur Passwörter Ihrer vorgeschriebenen Struktur zu versuchen (und tatsächlich kann er Ihren Dienst verwenden, um zu bestimmen, welche Wortliste Sie verwenden).

August Detlefsen
2015-01-03 04:44:35 UTC
view on stackexchange narkive permalink

Bevor Sie versuchen, eine Kennwortrichtlinie zu implementieren, sollten Sie sich diese großartige Präsentation von Rick Redman auf der AppSecUSA 2014 mit dem Titel "Ihre Anforderungen an die Kennwortkomplexität sind wertlos" ansehen:

https://www.youtube .com / watch? v = zUM7i8fsf0g

Er beschreibt das Knacken von Passwörtern anhand der ähnlichen Muster, die alle Menschen zum Erstellen von Passwörtern verwenden.

Malachi
2015-01-03 03:23:16 UTC
view on stackexchange narkive permalink

Dem Benutzer werden 4-5 verschiedene Wörter aus einer großen Wortliste mit mehr als 6 Zeichen angezeigt (keine Wörter mit Sonderzeichen, nur ASCII). Der Passworteingabedialog würde mit 4-5 Feldern anstelle des normalen Einzelfelds formatiert, um das Passphrasenparadigma zu verstärken. Bei der Registrierung kann das Passwort nach Belieben neu generiert werden, um dem Benutzer die Möglichkeit zu geben, eine Passphrase auszuwählen, die aus Wörtern besteht, an die er sich leicht erinnern kann. Der Benutzer kann keine eigenen Wörter eingeben.

Dies wird ein Problem sein.

Dies bedeutet, dass Sie eine Liste der vorhandenen Wörter haben müssen in der Passwortphrase verwendet, und dass es keine Abweichung von dieser Liste gibt.

Wenn ein Hacker in der Lage ist, die Liste irgendwie zu erhalten, sei es durch Brute-Force-Versuche oder soziales Hacken oder auf andere Weise, dann haben sie die Liste der Wörter und es ist für sie viel einfacher, sie herauszufinden Geben Sie das Kennwort aus.

Wenn Sie es stattdessen so gestalten, dass ein Benutzer seine eigenen Wörter eingeben und Zahlen und / oder Sonderzeichen zulassen kann, ist die Kennwortphrase viel sicherer und Sie können sie weiterhin nicht verwenden das gleiche Passwort wie { überall sonst }, da Sie immer noch 4-5 Wörter für die Passwortphrase erzwingen.

Einige Dinge (von denen einige bereits erwähnt wurden)

  1. Stellen Sie sicher, dass die Wörter nicht mehr als einmal wiederholt werden.
  2. Nicht zulassen sie, um ein Wort mehr als einmal zu wiederholen ( pass , word , pass , word )
  3. Verwenden Sie das Kennwort nicht als Schlüssel zum Verschlüsseln der Daten.
    • Dies ist eine sehr schlechte Idee, insbesondere wenn der Benutzer sein Kennwort vergisst und ein Zurücksetzen des Kennworts benötigt.
  4. Verwenden Sie kein Passwortschema
    • Dies hinterlässt Hinweise für einen Hacker, um Wörter und Phrasen zu entfernen und das Feld einzugrenzen.
  5. ol>


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...