Ich frage mich, ob es klarer wäre, eine unternehmensweite Anforderung in Bezug auf die passworttheoretische Entropie zu deklarieren, als das übliche "mindestens einen großen Buchstaben und einen kleinen letzteren und ein Sonderzeichen ..."
Wenn wir also ein vernünftiges Entropieniveau anstreben, an das sich der Mensch erinnern soll, z. B. 60 Bit
, dann berechnen Sie die Entropie.
Dies kann dynamisch und lokal berechnet werden Geben Sie dem Benutzer nach Bedarf Feedback.
Ist dies nicht eine bessere sprach- / regionunabhängige Methode, um eine Kennwortrichtlinie zu erstellen?
Das grundlegende Problem ist, dass die Entropie nur aus dem Kennwort selbst geschätzt werden kann und dass diese Schätzung sehr, sehr falsch sein kann. Die Entropie wird durch die Kennwortgenerierungsmethode bestimmt. Sie können die Entropie der Methode nicht mit einem einzigen Kennwort messen.
Schauen wir uns ein praktisches Beispiel an. Ich finde es am einfachsten, sehr lange Passwörter zu speichern, die aus einem kleinen Passwortbereich generiert wurden. Daher werde ich nur Zahlen verwenden und es sehr lang machen. Ihr Algorithmus überprüft mein Passwort und stellt fest, dass es nur Zahlen enthält (auch bekannt als Zeichensatzgröße 10) und dass es 20 Zeichen lang ist. Dies ergibt eine Entropie von:
log2 (10 ^ 20) = 66,4
Es besteht Ihren Test! Schauen wir uns jedoch das Passwort an:
01234567890123456789
Hmmm ... stellt sich heraus, dass die tatsächliche Entropie hübsch ist viel Null.
Ich könnte viel technischer werden, aber in diesem Fall denke ich, ist es besser, die Antwort einfach zu halten. Ich glaube, dieses Beispiel sollte eine ausreichende Antwort auf Ihre Frage liefern.
Die Tests für jede Richtlinie sind:
- Leute wissen davon
- Leute verstehen es
- Leute wissen, ob sie es einhalten
- Leute wissen, wie , um es einzuhalten
Ihr Ansatz ist ungefähr 2 von 4 auf dieser Skala für der durchschnittliche Benutzer.
Die bessere Option besteht darin, zufällig generierte Passwörter anzufordern. Das ist leicht zu verstehen, leicht zu implementieren und Prozesse und Tools bereitzustellen ("Verwenden Sie einfach diesen Passwort-Manager").
Mit Ihrem Ansatz versuchen Sie im Grunde, Menschen dazu zu bringen, ihr eigener Zufallsgenerator zu sein. Dies wird zu vielen Versuchen und Irrtümern führen, da die Leute versuchen herauszufinden, welches Passwort den Test bestehen wird. Dies führt zu Frustration und Verwirrung.
Dies setzt jedoch voraus, dass Sie eine Richtlinie für den durchschnittlichen Benutzer schreiben und dass Ihre Entropieberechnung gültig ist (was derzeit neben dem Punkt Ihrer Frage zu stehen scheint, und ich habe einige ernsthafte Vorbehalte dagegen).
Bei der Auswahl einer Kennwortrichtlinie (oder eines Kennworts) ist es wichtig zu verstehen, dass Entropie keine Eigenschaft des Kennworts ist. Es ist eine Eigenschaft der Methode, mit der es generiert wird. Im Allgemeinen ist es eine Eigenschaft von Wahrscheinlichkeitsverteilungen, die uns ungefähr sagt, wie viele zusätzliche Informationen Sie benötigen würden, um ein aus dieser Verteilung gezogenes Element eindeutig zu identifizieren, wenn Sie wissen, um welche Verteilung es sich handelt. Ich gehe in einer vorherigen Antwort etwas detaillierter auf Sie ein, wenn Sie interessiert sind, aber für Passwörter bedeutet dies ungefähr , dass Sie Möglicherweise haben Sie eine Entropie von n generiert.
Wenn die Benutzer ihre eigenen Kennwörter generieren, können Sie nicht wissen, welche Methode sie verwendet haben. Sie können nur Richtlinien festlegen, die es wahrscheinlicher machen, dass die Benutzer eine Methode mit hoher Entropie auswählen. Wenn Sie dies tun, sollten Sie bedenken, dass Benutzer im Allgemeinen den faulsten Weg finden, eine Richtlinie einzuhalten. Aus diesem Grund entspricht die Anforderung, dass ein Kennwort Großbuchstaben und Zahlen enthalten muss, im Wesentlichen der Anforderung, dass der erste Buchstabe groß geschrieben wird Am Ende steht eine einzelne Ziffer.
Die beste Passwortrichtlinie, die ich gesehen habe, ist Stanfords, wodurch die Anforderungen an Sonderzeichen umso lästiger werden, je länger das Passwort ist die Verwendung langer Passphrasen anstelle von Password1 $
. Wenn das Kennwort weniger als 12 Zeichen enthält, sind alle Arten von Zeichentypen erforderlich. Diese Einschränkung wird mit zunehmender Länge gelockert. Sobald das Kennwort mindestens 20 Zeichen enthält, gibt es keine zusätzlichen Einschränkungen. (Es gibt auch keine obere Grenze für die Kennwortlänge. Nichts ist ärgerlicher als eine Kennwortrichtlinie, die mich zwingt, kurze Kennwörter im Namen der Sicherheit zu verwenden.) Anschließend wird vorgeschlagen, 4 Wörter zufällig als
Nach dieser Richtlinie ist der gute Ansatz auch der faulste, was bedeutet, dass die Benutzer dies möglicherweise tatsächlich tun.
Ich habe dies tatsächlich einmal mit einigen hundert Benutzern gemacht.
Ich habe die Entropie basierend auf der ungefähren verwendeten Alphabetgröße geschätzt, wobei gebräuchliche Wörterbuchwörter (aus einem englischen Wörterbuch) als eins gezählt wurden Jeweils "Buchstaben" und unbekannte Wörter wurden in unteres Alpha, oberes Alpha, Zahlen, Symbole, Leerzeichen usw. unterteilt. Es gab einige andere gebräuchliche Muster, die ich identifizieren würde, auf die ich nicht näher eingehen werde, da sie nicht relevant sind.
Wenn die berechnete Entropie zu niedrig war, wurde das Kennwort abgelehnt und dem Benutzer wurden einige Hinweise zur Verbesserung angezeigt. Es gab sicherlich Raum für Verbesserungen, aber es funktionierte sehr gut, um eindeutig schwache Passwörter herauszufiltern.
Das Problem war, dass die Benutzer es hassten, weil es schwer zu verstehen war (insbesondere war es für sie schwierig, ein Passwort zu erstellen) schwaches Passwort, das stark genug ist, um es zu verwenden, ohne es wirklich lang zu machen).
Stattdessen würde ich heutzutage empfehlen, nur eine Mindestlänge zu erzwingen, aber Benutzerkennwörter mit a zu vergleichen Datenbank mit bekannten Passwörtern (z. B. https://haveibeenpwned.com/Passwords) und Warnung des Benutzers, wenn sein Passwort gefunden wird.
Es ist Es ist verlockend, Passwörter zu blockieren, von denen Sie wissen, dass sie schlecht sind. Wenn ein Benutzer jedoch keine Warnung hört, liegt dies daran, dass ihm das Konto sowieso egal ist. Wenn Sie diese Benutzer dazu zwingen, ein härteres Passwort zu wählen, können sie es auf andere Weise kompromittieren (z. B. indem sie es auf eine Haftnotiz auf ihrem Monitor schreiben).
Zum Schluss bitte Überlegen Sie, ob Sie überhaupt ein Passwort benötigen. Wir sind längst vorbei, als jeder Webdienst sein eigenes Login hat. Es gibt eine große Anzahl von Single-Sign-On-Diensten, in die Sie integrieren können, um die Anmeldeverwaltung zu entlasten und Ihren Benutzern die Arbeit zu erleichtern (sowie MFA usw. anzubieten), und für die sichereren Dinge ist die Verwendung von Zertifikaten eine bessere Sicherheit sowieso (Browser-Unterstützung für MTLS ist jetzt ziemlich gut!)
anstelle des üblichen "mindestens ein großer Buchstabe und ein kleiner letzterer und Sonderzeichen ..."
Jede Richtlinie, die diese Anforderungen im Jahr 2020 enthält, ist fehlerhaft und muss widerrufen werden. (*)
Die wichtigsten Dinge, die normale Benutzer über Passwörter wissen müssen, sind:
- es sollte lang sein (10-12 Zeichen empfohlen)
- es sollte nicht erraten werden (nicht "Passwort" oder "1234567890" oder Ihr Name, Geburtstag usw. usw.)
auf IT-Ebene, Sie sollte eine schwarze Liste haben (die häufigsten 1000 Passwörter oder dergleichen).
(*) Komplexitätsregeln sind falsch . In fast allen Fällen erleichtern sie die Kompromittierung von Passwörtern . Benutze sie nicht. Im Ernst, nicht. Es sind nicht mehr die 1980er Jahre.