今回はパスワードを狙う代表的な攻撃手法を整理するわ。攻撃の違いと有効な対策をセットで覚えましょう。
パスワードを破る攻撃っていろいろ名前があるよね? 全部同じに見えちゃう…
手口ごとに違いがあるのよ。
まず総当り攻撃(ブルートフォース攻撃)は、考えられる文字の組み合わせを片っ端から試す方法ね。
力任せですね。
桁数が長く、使える文字種が多いほど組み合わせが爆発的に増えて破りにくくなります。
じゃあ辞書に載ってる言葉を使うのは…あぶないんですかぁ?
そこを突くのが辞書攻撃よ。
よく使われる単語や人名をリスト化して試すの。
『password』や『123456』なんかは真っ先に狙われるわ。
他のサイトで使ってたパスワードが漏れると危ないって聞いたよ!
それがパスワードリスト攻撃ね。
どこかで漏えいしたIDとパスワードの組を、別のサイトのログインに使い回すの。
同じパスワードの使い回しが原因よ。
だからパスワードの使い回しは禁物なのですね。
サイトごとに違うものを設定すべきです。
レインボーテーブル…って虹の表ですかぁ? かわいい名前ですねぇ。
名前はかわいいけど強力よ。
レインボーテーブル攻撃は、パスワードとハッシュ値の対応をあらかじめ計算した表を使って、盗んだハッシュから元のパスワードを高速に逆引きするの。
ハッシュにしてても破られちゃうの? じゃあどう守ればいいの?
保存時に利用者ごとに異なるソルトをパスワードへ加えてからハッシュ化するの。
そうすると事前計算の表が使えなくなって、レインボーテーブル攻撃を防げるわ。
ログイン試行そのものへの対策も要りますね。
回数制限をかける方法があります。
ええ。
一定回数失敗したら止めるアカウントロックは総当りや辞書攻撃に有効よ。
加えて多要素認証を使えば、パスワードが漏れても不正ログインを防ぎやすくなるわ。
手口ごとに、効く対策が違うんですねぇ…
そう、そこが試験のポイントよ。
攻撃名と対策の対応をしっかり結び付けておきましょうね。
確認クイズ
利用者ごとに異なるランダムな文字列をパスワードに付加してからハッシュ化することで、特に有効に防げる攻撃はどれか。
- 総当り攻撃
- 辞書攻撃
- レインボーテーブル攻撃
- パスワードリスト攻撃
こたえを見る
正解: 3. レインボーテーブル攻撃
正解はレインボーテーブル攻撃。ソルトを付加するとパスワードとハッシュ値の対応があらかじめ計算した表と一致しなくなり、事前計算表による逆引きが無効になる。総当り・辞書攻撃は入力を総当りするため事前表とは無関係で、主な対策はアカウントロックや桁数増。パスワードリスト攻撃は使い回しの悪用であり、対策はパスワードを使い回さないこと。