it-swarm.com.de

Wie sind kurze Passwörter nicht sicher, wenn Sie die Anzahl der Versuche begrenzen?

Bei allen Webdiensten, für die Kennwörter erforderlich sind, z. B. Google Mail, werden Sie aufgefordert, ein langes Kennwort festzulegen. Wie 8 Zeichen oder mehr.

Der Grund ist höhere Sicherheit.

Dieselben Dienste begrenzen jedoch die Anzahl der Anmeldeversuche auf 3-4 Versuche, bevor Sie Ihr Konto sperren und weitere Informationen anfordern. Etwas, das ich sehr nervig finde, aber das ist ein anderes Thema.

Wie ist ein kurzes Passwort unsicher, wenn es Anmeldeversuche einschränkt? Wenn das Passwort 5 Zeichen hat, kann jemand nicht alle Kombinationen in nur 3 Versuchen ausprobieren.

32
Alex

Der Hauptgrund, warum Passwörter lang und zufällig sein müssen (d. H. Hohe Entropie), ist der Schutz vor Offline-Brute-Force-Angriffen.

Passwörter werden normalerweise nicht im Klartext gespeichert. Stattdessen sind sie gehasht . Wenn jemand die Datenbank mit den gehashten Passwörtern stiehlt (dies ist überraschend häufig ), kann er die Passwörter nicht direkt lesen. Stattdessen müssen sie eine Menge Passwörter ausprobieren, um eines zu finden, das dem Hash entspricht. Da die Passwort-Hashes gestohlen wurden, kann dies auf dem Computer des Angreifers und nicht über die Website selbst erfolgen (daher Offline-Angriff ). Dies bedeutet, dass keine Beschränkungen für Wiederholungsversuche auf der Webseite gelten.

Lange und zufällige Passwörter erfordern mehr Vermutungen, sodass sie selbst dann schwer zu knacken sind, wenn die Datenbank jemals gestohlen wird. Deshalb werden sie im Internet ermutigt.

74
Anders

Es ist nicht so einfach ...

Über Online-Bruteforce

Wenn das Konto nach 3 Versuchen vollständig gesperrt wird, ist es einfach, DOS (Deny Of Service) durch Sperren aller Konten zu erstellen!

Der Server muss die Sperrentscheidung nicht nur auf der Anzahl der fehlerhaften Versuche basieren, sondern verwendet auch die IP-Adresse, die Browser-ID und das Include Dauer zum Sperren. Wenn also jemand nur eine falsche Tastatur verwendet, kann er die Verbindung wieder herstellen einige Verzögerung ...

Von dort aus könnte ein Angreifer unter Berücksichtigung von botnets viele verschiedene IP-Adressen verwenden und viele verschiedene Versuche unternehmen. Mit einigen smooth Optionen und langen Verzögerungen werden kurze Passwörter schwach.

  • Stichprobe:

    Unter Berücksichtigung der vollen Brute Force gegen 5 in a-z, A-Z, 0-9, $+"*/%&()_ ausgewählte Zeichen: 72 Zeichen

    72^5                 => 1'934'917'632 # all possible combination
    72^5 / 300000        =>         6'449 # botnet
    72^5*900/300000/3    =>     1'934'917 # 3 attemps -> 15' penalty
    

    In Sekunden: Dies entspricht ~ 22 Tagen, um alle Kombinationen zu testen.

Nota: 300000 Maschine einen beliebigen Mittelwert aus Botnet @Wikipedia . Bei einem 6M-Botnetz endet der Auftrag in weniger als einem Tag.

Über Offline-Bruteforce

Passwörter werden normalerweise gespeichert hashed. Wenn jemand Ihre Passwortdatei stehlen könnte (mithilfe von Remote-Exploit, Social Engineering oder anderen), könnte er Brute Force gegen Hash verwenden = in Passwortdatei gespeichert.

Von dort ist der Angreifer nicht mehr auf 3 Versuche beschränkt !!

Wenn Ihr Passwort länger als 12 Zeichen ist: 72^12 => 2'435'196'222'894'505'984. Dies wird schwer, auch durch Botnetz ...

Aber jedes john wie Passwort-Cracker durchsucht die gestohlene Passwortdatei und extrahiert schnell alle gängigen Word-basierten Passwörter und alle kurzen Passwörter.

Über lange Passwörter gegen Passphrasen

Da ich (wann immer möglich) lieber Passphrasen als Passwörter verwende, gefällt mir das wirklich XKCD-Streifen :

(enter image description here

Es gibt also eine kleine mathematische Demo:

  • Betrachtet man ein 12-Buchstaben-Passwort mit 72 Zeichen:

    $ printf "%'.u\n" $[(72**12)]
    2'435'196'222'894'505'984
    
  • Betrachtet man 4 Wörter , die zufällig im amerikanischen Wörterbuch in Word ausgewählt wurden und 5 bis 9 einfache Buchstaben enthalten (a-z, keine Akzente):

    $ printf "%'u\n" $[$(
        LANG=C grep '^[a-z]\{5,9\}$' /usr/share/dict/american-english|
            wc -l) ** 4]
    2'945'898'655'785'685'681
    

    nahezu die gleiche Anzahl von Kombinationen,

    mit minimaler Phrasenlänge: 5x4 = 20 alphabetische Buchstaben:

    $ printf "%'.u\n" $[(26**20)]
    5'350'152'024'406'097'920
    

    (Nota Brute Force Cracking Passphrase impliziert eine Kombination von Buchstaben, dies reduziert die Gesamtkombination, bleibt aber höher als 41'429 ^ 4... 41429 ist das Ergebnis von wc -l in meinem vorherigen Test)

    Und Sie könnten sogar etwas Salz hinzufügen, indem Sie Großbuchstaben, Zahlen und/oder Sonderzeichen hinzufügen ... während Sie sich daran erinnern können!

35
F. Hauri

Um das "Sprühen von Passwörtern" zu verhindern, bei dem jemand ein gemeinsames Passwort für viele Konten versucht.

9
paj28