チャットでは、システムが従来の (非シャドウ) パスワード ストレージと従来の Unix パスワード ハッシュ アルゴリズムを使用していることが判明しました。どちらも、今日のセキュリティ環境では適切な選択ではありません。
従来のパスワード ハッシュ アルゴリズムは、パスワードの最初の 8 文字のみを格納して比較するため、元の質問で気づいた動作が説明されます。
投稿された sshd 出力には次の行が含まれます:
Could not get shadow information for user
これは少なくとも sshd
を意味すると思います (またはおそらく PAM Unix パスワード ストレージ ライブラリ) には、このシステムにシャドウ パスワード機能が含まれていますが、何らかの理由で、システム ベンダーはそれを使用しないことを選択しました。
BusyBox ベースのディストリビューションでは、Yocto で構築されたものと同様に、BusyBox 構成で適切なオプションを有効にすることでおそらく修正できます。このソリューションは、レシピがあり、独自の適応した OS イメージ、または少なくとも適切な BusyBox バイナリを構築できることを前提としています。また、(libc から) 利用可能な高度な暗号化ハッシュ アルゴリズム (少なくとも SHA-256、より良い SHA-512) も必要です。
BusyBox 構成で、設定
- ログイン/パスワード管理ユーティリティ
- シャドウ パスワードのサポート →有効
- 内部暗号化機能を使用する →無効
- デフォルトのパスワード暗号化方法 →
sha512
またはsha256
さらに /etc/passwd
の内容 と /etc/shadow
適応する必要があります。 g.強化された BusyBox ビルド (passwd
) のコマンド ライン ツールを使用する 、 mkpasswd
、 chpasswd
)、または EXTRA_USERS_PARAMS
を使用してイメージのビルド中にそれらを設定する :
EXTRA_USERS_PARAMS = " \
usermod -p '\$6\$<salt>\$<encrypted_pwd>' root; \
useradd -m -s /bin/sh -G … -u … -p '…' <username>; \
"