クレデンシャルフィッシング攻撃を防ぐためのソリューションは、本当にそれについて「教育」することだけですか?
この質問のために、ログインフォーム内でユーザー名とパスワードを取得するWebアプリケーションがあるとします。現在、私が把握している限り、攻撃者がWebアプリケーションの脆弱なユーザーをフィッシングして、攻撃者が作成したログインフォームのフィッシングされたバージョンに入力することを回避する方法はありません。
必要なのは、資格情報の使用がアクセスされたドメインにバインドされていること、または実際の資格情報がまったく転送されないことです。
クライアント側では、これは、ドメインの資格情報を保存し、保存されているものと一致する場合にのみ資格情報を入力するpassword managerを使用して実現できます。ドメイン。
Webアプリケーションの観点から見ると、これはクライアント証明書による認証を使用することで実現できます。これらを盗むために、攻撃者はクライアントの秘密鍵にアクセスする必要があります。これは、クライアントシステムでのみアクセス可能であり、中間者またはクレデンシャルフィッシング攻撃では取得できません。また、WebAuthn快適な方法を提供する のような最近の認証方法は、ユーザーが認証する(パスワードは不要)ため、クライアントに似ています証明書により、攻撃者はフィッシング攻撃で資格情報を盗むことができなくなります。別の方法は、独自のログインフォームを作成する代わりに、ブラウザに組み込まれたDigest Authenticationを使用することです。 この場合 パスワードは転送されませんが、代わりにクライアントはチャレンジ/レスポンス方式でパスワードを知っていることを証明します。残念ながら、サーバーはユーザーの応答を確認するためにプレーンなパスワードまたは同等のものを保存する必要があります。