私は PHP ログイン スクリプトに関するさまざまなトピックを読んだので、それらの議論を要約するつもりはありませんが、パスワード ハッシュでの本物のソルトと偽のソルトの使用について疑問に思っていました。
ID/パスワードのログインプロンプトではなく、ID#/ID/パスワードのログインプロンプトを考えていました。私のユーザーは全員、仕事でよく使用する私の会社に関係のない ID を持っています。一致する実際の ID# とログイン ID を入力すると、実際のソルトが取得されます。すべての一致しないエントリは、パスワードの偽のソルトになります。これらの ID 番号はおそらくインターネットで取得できますが、ユーザーの名前を知っている必要があり、これによりすべてのランダム攻撃が失敗します。攻撃を機能させる唯一の方法は、最初にユーザーの名前を見つけてから、システムを攻撃することです。ユーザー ID は一般的に知られていません。
これは実行可能なアプローチですか?一定回数の試行後に ID をロックし、GLOBAL の試行が非常に多く失敗した後にログイン試行を遅らせることにも結びついた場合、何が問題になる可能性がありますか。ただし、偽の塩が関係する試みに対してロックアウトやスロットリングを行うつもりはありませんでした. これらのフェイルセーフを実装するのは、彼らが本当の塩を得たときだけでした。ただし、既存の ID 番号を取得した場合は、スロットリングを検討する場合があります。
考えや提案はありますか?これは、IP の禁止、個人的な質問、キャプチャなどに代わる安全な方法でしょうか?