Wenn Sie 8 Zahlen durch 3 Buchstaben ersetzen, ändert sich die Häufigkeit.

Angenommen, die ganzen Zahlen 0 bis 7 sind gleich wahrscheinlich. Beim Rest der Division durch 3 kommen 0 und 1 je dreimal vor, 2 zweimal. Gleichverteilte Ausgangszahlen ergeben hier keine gleichverteilten Reste. Das ist der Modulo-Bias dieses Beispiels.

0 % 3 = 0    1 % 3 = 1    2 % 3 = 2
3 % 3 = 0    4 % 3 = 1    5 % 3 = 2
6 % 3 = 0    7 % 3 = 1
// counts: [3, 3, 2]

Wenn Sie die letzten beiden Zahlen ablehnen, erhalten Sie die gleiche Häufigkeit

Verwerfen Sie 6 und 7 und ziehen Sie eine neue Zahl. Unter den akzeptierten Zahlen 0 bis 5 kommt jeder Rest zweimal vor. Bei gleichverteilten Ausgangszahlen entfällt so die Verzerrung im akzeptierten Bereich. Die verworfene Zahl wird nicht wiederverwendet.

Häufigkeiten der Reste: 3, 3, 2 für die Zahlen 0 bis 7 und 2, 2, 2 nach dem Ausschluss von 6 und 7.
Eigenes Diagramm aus berechneten Häufigkeiten: links 0 bis 7, rechts nur 0 bis 5. Keine gemessene Verteilung der Browser-Zufälligkeit.

Moyoutils randomInt füllt Uint32Array(1) mit crypto.getRandomValues. Die Grenze ergibt sich aus 2^32 geteilt durch die Anzahl der Optionen, abgerundet und wieder mit dieser Anzahl multipliziert. Werte ab einschließlich dieser Grenze werden verworfen und neu gezogen. Bei drei Optionen liegt die Grenze bei 4294967295; nur der Höchstwert wird verworfen.

Math.floor(4294967296 / 3) * 3
// 4294967295
// accept: 0 through 4294967294
// reject: 4294967295

W3C Web Cryptography: getRandomValues

In der Web-Kryptographie-Dokumentation wird angegeben, dass getRandomValues ​​​​kryptografisch starke Zufallszahlen generiert. Die Überprüfung in diesem Artikel soll sicherstellen, dass der Projektcode Ablehnungsgrenzen berücksichtigt, und stellt keine Prüfung der Entropie des Betriebssystems oder spezifischer Browser-Zufallszahlenimplementierungen dar.

Zeichentypen einzubeziehen unterscheidet sich von der unabhängigen Wahl jeder Position

Das Werkzeug wählt zuerst ein Zeichen aus jedem ausgewählten Typ, füllt die übrigen Positionen aus dem gemeinsamen Zeichenvorrat und mischt die Reihenfolge. Jeder ausgewählte Typ kommt mindestens einmal vor. Nur Großbuchstaben und alle vier Typen sind unterschiedliche Bedingungen. Dies garantiert keine Sicherheit; eine Anzahl von Kombinationen ergibt keine tatsächliche Zeit zum Erraten.

Die Länge muss eine ganze Zahl von 4 bis 128 sein; mindestens ein Zeichentyp muss ausgewählt sein. Bruchteile, Werte außerhalb des Bereichs und keine ausgewählten Typen führen zu Fehlern. Vier zulässige Zeichen bedeuten nicht, dass vier eine sichere Mindestlänge sind. NIST SP 800-63B-4 verlangt von Prüfsystemen in seinem Geltungsbereich mindestens 15 Zeichen bei Ein-Faktor-Passwörtern und acht bei Passwörtern als Teil einer Mehr-Faktor-Authentifizierung. Das sind keine allgemeinen Eingaberegeln für alle Websites.

NIST SP 800-63B-4: Anforderungen an die Passwortüberprüfung

Unterscheiden Sie zwischen Speichern und Löschen des Bildschirms nach der Erstellung.

  1. Überprüfen Sie die zulässigen Längen- und Zeichenbedingungen für den von Ihnen genutzten Dienst. Die Standardlänge von Moyoutil beträgt 20, und Sie können die Länge und den Typ anpassen.
  2. Erzeugen Sie ein neues Passwort mit den aktuellen Einstellungen. Eine Änderung löscht das bisherige Ergebnis und deaktiviert das Kopieren. Klicken Sie anschließend erneut auf die Schaltfläche zum Erzeugen.
  3. Verwenden Sie für jede Site unterschiedliche Passwörter und bewahren Sie diese in einem Passwort-Manager auf. Dieses Tool bietet keinen Passwort-Tresor und keine Service-Anmeldefunktion.
  4. Durch das Löschen der Bildschirmergebnisse wird der Bildschirm ausgeblendet, der kopierte Inhalt der Zwischenablage wird jedoch nicht gelöscht. Überprüfen Sie den Status der Zwischenablage und der freigegebenen Geräte separat.

NIST SP 800-63B-4: Passwortmanager und dienstspezifische Passwörter

Derzeit werden die generierten Ergebnisse nicht an den Tool-Server gesendet oder dort gespeichert. Es blockiert jedoch nicht Erweiterungen, die Eingaben und die Zwischenablage lesen, sowie Phishing-Angriffe von gemeinsam genutzten Geräten und Konten. Verwenden Sie die veröffentlichte Beispielzeichenfolge nicht als Ihr tatsächliches Kontokennwort.

Häufig gestellte Fragen

Ist es sicher, alle Sonderzeichen auszuwählen?

Zeichentypen allein bestimmen die Sicherheit nicht. Beachten Sie Dienstanforderungen, ausreichende Länge, unterschiedliche Passwörter je Dienst und sichere Aufbewahrung.

Überprüft dieser Artikel die Qualität der Browser-Zufallszahlen?

Nein. Wir haben einen kleinen Zahlenbereich vollständig aufgezählt und die Ablehnungsgrenze der Projektfunktion reproduziert. Browser-Entropie oder die Zeit zum Erraten eines Passworts wurden nicht gemessen.