定期的にランダムに生成されたソルトを使用して、より安全なパスワードを生成しますか?

定期的にランダムに生成されたソルトを使用して、より安全なパスワードを生成しますか?

パスワードをさらに安全にする方法はありますか? たとえば、スケジュールされた Bash スクリプトを使用して、ユーザーのパスワードのランダムに生成されたソルトを、たとえば月に 2 回、定期的かつ通常のサーバー ユーザーに何も知らせず、ユーザーの行動に影響を及ぼさず、ユーザーが自分でパスワードを使用してアクションを実行する必要がないように変更する方法はありますか?

私のコメントが削除された後にモデレーターが新しい質問をするように言った以前のフォーラムトピックの参照リンクは、 暗号化されたパスワードを作成する方法

答え1

Unix & Linux StackExchange へようこそ!

このアイデアの問題点は、パスワードハッシュが元に戻せない: ハッシュされたパスワードを「復号化」してログイン時にユーザーの入力と比較する代わりに、ユーザーが入力するパスワードは保存されているパスワード ハッシュと同じソルトでハッシュされ、その結果が保存されているハッシュと比較されます。一致する場合、ユーザーが有効なパスワードを入力したとみなされ、ログインが受け入れられます。

(はい、理論的には2つのパスワード入力で同じハッシュが生成される可能性はありますが、それは非常にありそうにありません。

ユーザを介さずにすべてのパスワードを新しいソルトで再ハッシュできるようにするには、全員の現在のパスワードのプレーンテキスト(または可逆的に暗号化され、プレーンテキストと同等)バージョンを保存する必要があります。これはまさに、パスワード ハッシュ スキームが最初から回避するように設計されたものです。

既存のパスワードを新しいソルトで再ハッシュすることは、あまり役に立ちません。悪意のある人が再ハッシュする前にパスワードハッシュのコピーを入手できた場合、古いソルトでハッシュをブルートフォース攻撃し、発見したパスワードを新しいソルトでシステムで使用することができます。ログイン時にシステムが要求する実際のパスワードは同じままであるためです。

パスワード保存時にソルト付きハッシュを使用する目的は 2 つあります。

1.) ハッシュを閲覧する管理者が、2人のユーザーが同じパスワードを持っていることに気付くのを防ぐ。

2.) パスワード ハッシュを含むファイルが悪意のある人物の手に渡った場合、システム管理者は漏洩に気付き、悪意のあるログインが行われる前にユーザーにパスワードを変更させる時間があります。(適切なパスワードは実際には辞書攻撃に耐えられる可能性がありますが、それを保証するには、パスワードの設定時または変更時にパスワード品質チェックを実装する必要があります。)

最新のシステムでは、パスワード ハッシュは/etc/shadow一般ユーザーが読み取れない場所に保存されることに注意してください。したがって、ハッシュが悪意のある人物の手に渡った場合、システムのセキュリティがすでにかなり危険にさらされていることを意味します。パスワードを変更する必要があるというユーザーの不満を心配するよりも大きな問題があります。

関連情報