Dalam obrolan, ternyata sistem menggunakan penyimpanan kata sandi tradisional (non-bayangan) dan algoritme hashing kata sandi Unix tradisional. Keduanya adalah pilihan yang buruk dalam lingkungan keamanan saat ini.
Karena algoritme hashing sandi tradisional hanya menyimpan dan membandingkan 8 karakter pertama sandi, hal itu menjelaskan perilaku yang diperhatikan dalam pertanyaan awal.
Output sshd yang diposting menyertakan baris:
Could not get shadow information for user
Saya akan menganggap ini berarti setidaknya sshd
(atau mungkin perpustakaan penyimpanan kata sandi PAM Unix) pada sistem ini menyertakan fungsionalitas kata sandi bayangan, tetapi karena beberapa alasan, vendor sistem memilih untuk tidak menggunakannya.
Dalam distribusi berbasis BusyBox, seperti yang biasanya dibuat dengan Yocto, ini mungkin dapat diperbaiki dengan mengaktifkan opsi yang sesuai di konfigurasi BusyBox. Solusi ini mengasumsikan bahwa Anda memiliki resepnya dan mampu membangun citra OS Anda sendiri yang diadaptasi, atau setidaknya biner BusyBox yang sesuai. Ini juga membutuhkan algoritme hashing kriptografi lanjutan (setidaknya SHA-256, SHA-512 yang lebih baik) tersedia (dari libc).
Dalam konfigurasi BusyBox, atur
- Utilitas Login/Pengelolaan Kata Sandi
- Dukungan untuk sandi bayangan → diaktifkan
- Gunakan fungsi crypt internal → dinonaktifkan
- Metode enkripsi sandi default →
sha512
atausha256
Selain itu isi dari /etc/passwd
dan /etc/shadow
harus disesuaikan, e. g. menggunakan alat baris perintah dari build BusyBox yang disempurnakan (passwd
, mkpasswd
, chpasswd
), atau menyetelnya selama pembuatan gambar dengan EXTRA_USERS_PARAMS
:
EXTRA_USERS_PARAMS = " \
usermod -p '\$6\$<salt>\$<encrypted_pwd>' root; \
useradd -m -s /bin/sh -G … -u … -p '…' <username>; \
"