htpasswd の暗号化アルゴリズムをどのように区別すればよいでしょうか?

htpasswd の暗号化アルゴリズムをどのように区別すればよいでしょうか?

Debian Linux で Apache Web サーバーを実行していて、特定のディレクトリを htaccess で保護しています。.htpasswd ファイルがどのように作成されたかはわかりません。Apache のドキュメントには、バージョン 2.2.17 まではパスワードの暗号化に crypt() 暗号化が使用され、2.2.18 以降では MD5 暗号化が使用されていると記載されています。.htpasswd ファイルで使用されている暗号化を判別するにはどうすればよいでしょうか。

答え1

.htpasswd ファイルがどのように作成されたかについては履歴も知識もありません。

おそらくコマンドを探しているのでしょうhtpasswd。詳細については、man ページを参照してください。

man htpasswd

.htpasswd ファイルで使用されている暗号化を区別するにはどうすればよいですか?

なぜそれを知る必要があるのですか? 単にファイルを編集したいだけなら、それを知ることは重要ではないと思います。

どちらも脆弱であるという印象を受けたので質問します。

htpasswd私のマシン上のコマンドでは、次の 4 つの異なるパスワード形式を使用できます。

# MD5 (default)
martin@martin ~ % htpasswd -m -b -n user pass
user:$apr1$uFKIg3No$ItOJ5p6EEbALwPDYcPDd0.
# crypt
martin@martin ~ % htpasswd -d -b -n user pass
user:qMYdeiUkbhR/o
# SHA
martin@martin ~ % htpasswd -s -b -n user pass
user:{SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=
# Plain
martin@martin ~ % htpasswd -p -b -n user pass
user:pass

これにより、使用している形式を把握しやすくなります。

しかし、あなたが何を心配しているのか疑問に思います...ハッシュが脆弱であるかどうかは、攻撃者がファイルにアクセスできる場合にのみ懸念されますが.htpasswd、正常な構成でそれが可能になる可能性は非常に低いはずです。ファイルは、Web サーバーがアクセスできるが提供しない、.htpasswdたとえば 内のどこかなど、提供されるディレクトリの外部に保存する必要があります。/etc

もっと心配すべきなのは、HTTP 基本認証 パスワードを平文で送信する、HTTPSを使用していない場合は間違いなく安全ではありません。セキュリティが心配な場合は、HTTP ダイジェスト認証

関連情報