ブルートフォースは認証突破を目的とした攻撃ですので、認証時間を意図的に長くする方法は
根本的な解決ではありませんが、劇的に突破までの時間を伸ばせますので少なからず効果はあります。
時間がかかりそうなサイトであれば、攻撃者も他のサイトを狙った方が効率いいですしね。
家の鍵が2個ついてるのを見つけた時点で諦めて、鍵が1個の家にターゲットを変えるという
泥棒の心理です。
遅延させるタイミングはいつか?という質門ですが、
認証に失敗したら遅延させてレスポンスするというのでいいのではないでしょうか。
認証OKな内容にも関わらず遅延させるのは意味がないですし、
不正アクセスではない、本物のユーザーにも影響が出ますし。
一定回数失敗したらブロック
この仕組みが、同じユーザーIDに対する試行が一定回数失敗したらブロックというものであれば、
ブルートフォースは防げますので、ないよりは断然いいのですが、
リバースブルートフォースに対しては効果がありません。
リバースブルートフォースは良くありそうなパスワード(Password, password, asdfghjkなど)
で固定して、ユーザーIDを総当りするという攻撃です。
なので、一定回数失敗と判断するのは同一IPアドレスでというものにした方が効果は高いでしょう。
同一セッションIDとかも、毎回Cookieを削除されて送信されれば効果はありません。
csrf対策のトークンがクライアント側に設置されています。
これは二要素認証ではないです。
レスポンスボディを見れば、どれがトークンかはわかりますので、
それをリクエストに乗せればトークンチェックをすり抜けることは可能ですし、
単純にブラウザでのログイン処理を自動化するプログラムでも攻撃は可能です。
二要素認証は、ユーザー自らの入力により認証を2回行うことですね。
1つ目の認証がOKだと、もう1つ認証画面を挟んで、そこでコメントに記載されているような
『ユーザだけが知っている何か』
『ユーザだけが所有している何か』
『ユーザ自身の特性(指紋など)』
を入力させたりといったものです。
他にも1つ目の認証がOKだと、登録されているメールアドレスにアクセストークンを送信し、
そのアクセストークンを入力してもらうなどもあります。
メールの確認にはメールアカウントの認証が必要になりますので、二要素認証となります。
ただ、二要素認証はログインするまでのステップが増えるため、
ログインするのにめんどくさいというユーザーが少なからず出てはきますね。。。
ユーザビリティとセキュリティはトレードオフなので、難しいとこではあります。
CAPTCHAを設置するのが比較的ユーザーへの負担も軽く効果的かもしれませんね。
よくある「この画像に書かれている文字を入力してください」みたいなやつです。
2018/03/05 15:53
2018/03/05 15:56
2018/03/06 00:04
2018/03/06 23:18
退会済みユーザー
2018/03/06 23:20
2018/03/06 23:22