どうも!ひよこSE(@PiyoOct)です。
ブルートフォース攻撃って何?
わかりやすく一言で言えば、「パスワードを力づくで全通り試す攻撃」です。
全通り試すので、「総当たり攻撃」って言ったりしますが同じ意味です。
ブルートフォース攻撃は、古典的かつ原始的でアナログな攻撃方法なのですが、意外と防ぎづらい。
「パスワードが当たりさえすれば確実に突破できる攻撃」なので、きちんと対策を考えないといけないですね(*´ω`)。
ブルートフォース攻撃とは、パスワードを力づくで全通り試す攻撃
ブルートフォース攻撃とは、パスワードを力づくで全通り試す攻撃です。
- brute:獣、総当たり
- force:力、攻撃
すべての文字を全通り入力して突破を試みる
ってことは、0から9まで全部入れる的な?
その通りです!
例えば、銀行のATMで入力するキャッシュカードの暗証番号。
「0000」~「9999」まで番号がありますが、10×10×10×10=10,000通りをすべて試します。
数字だけでなく英数字のパスワードなら、0~9とa~z、A~Zを桁数分だけ試して入力します。
それって、人が手入力でやるの?
いやいや。さすがに大変なので、プログラムでやります!
・・・プログラム的には、入力できる文字をfor文で回すだけなので、かなり簡単ですね(*´ω`)。
基本情報技術者試験での出題例
基本情報技術者試験では、こんな感じでにH27秋に出題されています。
暗号解読の手法のうち,ブルートフォース攻撃はどれか。
ア.与えられた1組の平文と暗号文に対し,総当たりで鍵を割り出す。
「基本情報技術者試験.com」より引用
イ.暗号化関数の統計的な偏りを線形関数によって近似して解読する。
ウ.暗号化装置の動作を電磁波から解析することによって解読する。
エ.異なる二つの平文とそれぞれの暗号文の差分を観測して鍵を割り出す。
正解は、「総当たり」のキーワードがある「ア」です。
イ,ウ,エは、あまり出題されないので気にしなくていいです。
ブルートフォース攻撃の対策は3つ
それじゃあ、ブルートフォース攻撃ってどうやって対策するの?
次の3つが考えられます!
3回間違えたらロックをかける的な回数制限
ほとんどの人が真っ先に思いつくのが「回数制限」をかけること。
ひょっとしたら、なんかのサービスで「パスワードを間違えまくってロックかけられた」みたいな経験がある人もいるかも。
例えば、0~9の4桁の数字をすべて入力する方法は10,000通り。
3回間違えたらロックがかかるようにすれば、的中率は3/10000になります。
それじゃあ、これでいいじゃん。
まず、当たることはないよ!
ところが、そうでもないのです。
どういうこと?
なので、「回数制限だけだと、甘いし使う人目線でないなぁ」って気がしなくもないのです(*´ω`)。
画像認証や正しいものを選べ的なやつを入れる
次に考えるのは、 画像認証や正しいものを選べ的なやつ。
こんなのとか。
「○○のタイルをすべて選べ」とか(見つけたら貼ります)。
見たことある!地味に難しいよね!
ブルートフォース攻撃は、人の手ですべて入力していたら大変なので、プログラムでやっています。
プログラムが入力していることを逆手にとって。
万が一突破されても「人しか正解できないような問題」ではじくのが目的です。
プログラム(機械)が画像に書いてあることを、読み取るのは大変ですからね。
人間ですら間違えるような画像もあって不便ですが、かなり効果的だったりします。
ワンタイムパスワード(二段階認証)を導入する
もう一つは、ワンタイムパスワードを導入すること。
ワンタイムパスワードとは「その人しか使わないスマホやPCに、その場限りのパスワードを送ること」です。
ログインした後に送られるので、「二段階認証」っていったりします。
万が一、はじめのパスワードが力づくで突破されたとしても。
ワンタイムパスワードが突破されることは、普段使いのスマホやPCを落とさない限りは、考えづらいです。
色々と考えられてるなぁ・・・。
パスワードが突破されたとしても、画像認証やワンタイムパスワードで防げる
⇒ログイン回数制限がないサービスも多い!
他にも生体認証(指紋や虹彩認証)など、今後も、新しい対策は考えられていくと思います(*´ω`)。
まとめ
ブルートフォース攻撃ときたら、「パスワードを力づくで全通り試すこと」です。
「総当たり攻撃」も全く同じ意味。
0~9,a~z,A~Zの全通りをそのまま試して、パスワードを突破しようとします。
対策は、「回数制限によるロック、画像認証、ワンタイムパスワードの3つがあるんだなぁ~」くらいに思ってくださいまし(-_-;)。
コメント