Im Chat stellte sich heraus, dass das System die traditionelle (Nicht-Schatten-) Passwortspeicherung und den traditionellen Unix-Passwort-Hashing-Algorithmus verwendete. Beides ist in der heutigen Sicherheitsumgebung eine schlechte Wahl.
Da der traditionelle Passwort-Hashing-Algorithmus nur die ersten 8 Zeichen des Passworts speichert und vergleicht, erklärt dies das in der ursprünglichen Frage festgestellte Verhalten.
Die gepostete sshd-Ausgabe enthält die Zeile:
Could not get shadow information for user
Ich würde annehmen, dass dies mindestens sshd
bedeutet (oder möglicherweise die PAM-Unix-Passwortspeicherbibliothek) auf diesem System enthält eine Shadow-Passwort-Funktionalität, aber aus irgendeinem Grund hat der Systemanbieter entschieden, sie nicht zu verwenden.
In einer BusyBox-basierten Distribution, wie sie normalerweise mit Yocto erstellt wird, kann dies möglicherweise behoben werden, indem die entsprechenden Optionen in der BusyBox-Konfiguration aktiviert werden. Diese Lösung setzt voraus, dass Sie die Rezepte haben und in der Lage sind, Ihr eigenes, angepasstes Betriebssystem-Image oder zumindest eine passende BusyBox-Binärdatei zu erstellen. Es benötigt auch fortgeschrittene kryptografische Hashing-Algorithmen (mindestens SHA-256, besser SHA-512), die verfügbar sind (von libc).
Setzen Sie in der BusyBox-Konfiguration
- Dienstprogramme zur Anmeldung/Passwortverwaltung
- Unterstützung für Shadow-Passwörter → aktiviert
- Verwenden Sie interne Kryptfunktionen → deaktiviert
- Standardkennwortverschlüsselungsmethode →
sha512
odersha256
Zusätzlich der Inhalt von /etc/passwd
und /etc/shadow
angepasst werden müssen, z. g. Verwenden Sie die Befehlszeilentools des erweiterten BusyBox-Builds (passwd
, mkpasswd
, chpasswd
), oder setzen Sie sie während des Image-Builds mit EXTRA_USERS_PARAMS
:
EXTRA_USERS_PARAMS = " \
usermod -p '\$6\$<salt>\$<encrypted_pwd>' root; \
useradd -m -s /bin/sh -G … -u … -p '…' <username>; \
"