Warum ist die maximale Länge von OpenWrts Root-Passwort 8 Zeichen?

29

Wenn ich versuche, das rootPasswort zu setzen:

root@OpenWrt:~# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.

Es scheint, dass die maximale Länge 8 ist. Wenn ich versuche, ein Kennwort festzulegen, das länger als 8 ist, sind nur die ersten 8 Zeichen gültig. Wie kann ich ein längeres Passwort festlegen root?

Meine OpenWrt-Version:

Linux OpenWrt 4.14.108 #0 SMP Wed Mar 27 21:59:03 2019 x86_64 GNU/Linux
Alan42
quelle

Antworten:

35

Dies liegt daran, dass DES-basierte Verschlüsselung (AKA 'descrypt') Kennwörter bei 8 Byte abschneidet und nur die ersten 8 zum Zweck der Kennwortüberprüfung überprüft.

Das ist die Antwort auf Ihre direkte Frage, aber hier sind einige allgemeine Ratschläge, die sich aus Ihrem Kontext ergeben:

  • Glücklicherweise ist nach meiner Lektüre MD5in /etc/login.defsmd5crypt ($ 1 $), das, obwohl es vom Autor als veraltet und veraltet eingestuft wurde , der DES-basierten Krypta immer noch weit überlegen ist (und definitiv viel besser als ein roher, ungesalzener Hash wie Plain) MD5! Die meisten ungesalzenen Hashes können auf Standard-GPUs mit einer Rate von Milliarden pro Sekunde geknackt werden. )

  • Es sieht aus wie SHA256(eigentlich sha256crypt) und SHA512(eigentlich sha512crypt) auch da sind. Ich würde stattdessen eine davon auswählen.

  • Wenn Sie Ihr Passwort auf passwordoder etwas unter jedem Schema setzen, können Sie visuell überprüfen, ob meine Schlussfolgerung, dass es sich um die -crypt-Varianten handelt, richtig ist oder nicht (Beispiele hier sind den Hashcat-Beispiel-Hashes entnommen , alle 'Hashcat', einige sind verpackt für Lesbarkeit):

Nicht empfohlen - ungesalzene oder ältere Hash-Typen, viel zu "schnell" (Cracking-Raten) für die Speicherung von Passwörtern:

MD5         - 8743b52063cd84097a65d1633f5c74f5
SHA256      - 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
SHA512      - 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e2 \
              9134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
descrypt    - 48c/R8JAv757A

OK - viel besser als ungesalzen, kein Abschneiden, aber nicht mehr beständig genug gegen Brute Force auf moderner Hardware:

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

Besser - relativ moderne Hashes mit großen Salzen und Arbeitsfaktoren:

sha256crypt - $5$rounds=5000$GX7BopJZJxPc/KEK$le16UF8I2Anb.rOrn22AUPWvzUETDGefUmAV8AZkGcD
sha512crypt - $6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/

Davon schneidet nur Descrypt bei 8 ab. Die letzten beiden sind Ihre beste Wahl.

(Randnotiz: Die oben genannten Nur-Ziffern-Salze in md5crypt und sha512crypt sind nur Nebeneffekte davon, wie Hashcat Beispiel-Hashes erstellt. Reale, gesunde Salze werden normalerweise aus einem viel größeren Schlüsselbereich gezogen.)

Beachten Sie auch, dass ich nur die Hash-Typen aufführe, die von /etc/login.defs auf dieser Plattform unterstützt werden. Für den allgemeinen Gebrauch wurden sogar sha256crypt und sha512crypt ersetzt - zuerst durch bcrypt und später durch wirklich parallele angriffsresistente Hashes wie scrypt und die Argon2-Familie. (Beachten Sie jedoch, dass bcrypt für interaktive Anmeldungen, die in weniger als einer Sekunde ausgeführt werden sollen, tatsächlich widerstandsfähiger gegen Angriffe ist als letzteres.)

Royce Williams
quelle
20

Ich habe dies geändert in /etc/login.defs:

PASS_MAX_LEN            8

Problem gelöst.


Wichtige Ergänzungen:

Nachdem ich die obigen Parameter geändert habe, kann ich zwar ein Kennwort mit mehr als 8 Stellen festlegen, es ist jedoch weiterhin ungültig, da das echte Kennwort nur aus den ersten acht Stellen besteht. Ich weiß nicht, ob das mein Problem ist.

Meine endgültige Lösung ist das Setzen

# ENCRYPT_METHOD DES

zu

ENCRYPT_METHOD MD5

in /etc/login.defs.

Jetzt kann ich endlich ein root-Passwort setzen, das wirklich größer als acht ist.

Alan42
quelle
16
Gute Lösung, aber schlechte ursprüngliche Wahl für ein System standardmäßig obwohl ...
HBruijn
8
Ich nehme an, Sie haben Ihr Passwort jetzt auf etwas länger als 8 Zeichen geändert. Können Sie versuchen, sich mit nur den ersten 8 Zeichen Ihres längeren Passworts anzumelden? Weil es vielleicht ...
marcelm
9
Möglicherweise möchten Sie dies in SHA256 oder SHA512 ändern, oder sie werden unterstützt - MD5 gilt heutzutage als defekt.
PhilippNagel
8
wirklich sha256 und sha512 für sich sind nicht viel besser als md5. Sie benötigen ein Salt und verwenden die Crypt-Versionen dieser Algorithmen.
SnakeDoc
4
@PhilippNagel Mit einem Passwort mit hoher Entropie ist es nicht so schlimm. Während MD5 sicherlich als defekt angesehen werden sollte, wirken sich die derzeit bekannten Schwachstellen nicht auf das Passwort-Hashing aus. Was ist ein Problem für Passwort-Hashing ist die Geschwindigkeit; Nicht iteriertes MD5 ist so schnell, dass Brute-Forcing für viele Kennwörter sehr gut möglich ist.
marcelm