ブルートフォースアタック

ページ名:ブルートフォースアタック

登録日:2020/01/29 Wed 12:59:28
更新日:2024/05/16 Thu 12:30:18NEW!
所要時間:約 8 分で読めます



タグ一覧
不正ログイン パスワード 強引 ハッキング ゴリ押し ブルートフォースアタック 総当たり 脳筋 犯罪 暗号 (物理) it it用語 アニヲタit教室



ブルートフォースアタック(Brute-force attack)は、パスワードを入力するタイプのロックを破る手法の一つ。「総当たり攻撃」「力押し攻撃」とも呼ばれる。


【概要】

どのような手法なのかと言うと、パスワードに使われている文字列を1つずつ変えながら片っ端から試していって正解を引き当てる、というものである。


銀行のATMの暗証番号入力に例えると0000、0001、0002、0003と順に試していき、その作業を9999に到達するまで続けること。
暗証番号が4649であろうとも8931であろうとも5963ごくろうさぁあああああああああん!!であろうとも、この方法ならばどんな番号でも突破することが可能となる。


理論上はどれだけの長くても英数字と記号を組み合わせた複雑なパスワードでも、時間と機会があれば突破できる方法と言える。


【対策】

(1)入力回数に制限を付ける

上述のATMの例を挙げると、実際にはどの銀行でも入力回数に制限が存在する。一定回数以上入力を間違えるとセキュリティシステムが作動してカードが使用不可能になり、再使用する為には窓口での手続きが必要となる。
実際には総当たりするチャンスが無い為、単にキャッシュカードを盗んだ者がブルートフォースアタックによって預金を引き出すのは不可能である。


(2)パスワードの桁数を増やす

時間をかけて総当たりするというやり方の為、パスワードの桁が多いと試す回数も指数関数的に増加して費やす時間が長くなる。
8桁よりも10桁、12桁よりも14桁、とパスワードが長ければ長い程総当たり攻撃への耐性は高くなる。
ただし、8桁まで、16桁までとパスワードの上限が決められているケースもある上に、例え上限が36桁や124桁だとしてもそんなに長いパスワードを設定するとなると記憶するのも打ち込むのも大変なので現実的とは言えない対策だが。


(3)パスワード入力以外の認証を設定する。

指紋認証、声紋認証、虹彩認証、静脈認証、顔認証といった肉体で照会する方式や、鍵やIDカードといった物理的な施錠はどうにもならない。だがいずれも手間だったり、読み込みの不具合で解除出来なくなったりと不便な点がある為、銀行のATMを始め、現代ではパスワード入力式のセキュリティが主流なのも事実である。


【デメリット】

時間がかかり過ぎる
例え入力ミスの回数制限が存在しないと仮定し、ATMでの入力チャンスが無限だったとする。
上述のATMの場合でもブルートフォースを実行しようとすると、実際の行程はこうなる。


1.カードを入れる

2.番号を入力する

3.外れた場合「番号をお確かめの上、もう一度やり直してください」というアナウンスと共にカードが返却される。

4.1に戻る


この工程を手際よくやっても最低20秒はかかる。20秒を1セットとして、


20秒×1万回=20万秒=3333分=55時間


こんな長時間に渡ってATMで作業していたら防犯カメラで特定される他、周囲の人間に不審に思われるのは確実である。



ならば携帯電話やスマホのロックならばどうか。
盗んだスマホを自室で検分する場合ならば人の目を気にする必要もなく、入力回数制限も機種によっては無い場合があるので時間さえあれば試す機会は無限である。


仮に携帯電話のダイヤルロックの場合、入力するのは数字のみ。パスワードの通りは0000から9999まで1万通りである。
一つのパスワードを入力するのに3秒かかると計算して

3秒×1万回=3万秒=500分=8時間20分

途方も無い作業ではあるが、決して不可能ではないと思えるのではないだろうか。


仮に0000から開始するとして、正解のパスワードを特定する時間の指数表は以下の通り。

0000から1000までのいずれかの場合、3秒×1000回=3000秒=50分
1000から2000までのいずれかの場合、3秒×2000回=6000秒=100分=1時間40分
2000から3000までのいずれかの場合、3秒×3000回=9000秒=150分=2時間30分
3000から4000までのいずれかの場合、3秒×4000回=12000秒=200分=3時間20分
4000から5000までのいずれかの場合、3秒×5000回=15000秒=250分=4時間10分
5000から6000までのいずれかの場合、3秒×6000回=18000秒=300分=5時間
6000から7000までのいずれかの場合、3秒×7000回=21000秒=350分=5時間50分
7000から8000までのいずれかの場合、3秒×8000回=24000秒=400分=6時間40分
8000から9000までのいずれかの場合、3秒×9000回=27000秒=450分=7時間30分
9000から9999までのいずれかの場合、3秒×10000回=30000秒=500分=8時間20分


ただし、正確に1字違いのパスワードを打ち込む作業を繰り返すというもの神経をすり減らす苦行である。
行っている途中で「あれ、次は0090だっけ、それとも0091だっけ」と疑問に思って「0091だな」と入力してそのまま作業を続けたとする。
次に打ち込むべき数字が「0090」であり、かつ正解のパスワードが「0090」であった場合、全ての作業が水の泡である。


実際やるとしたら確実に休憩を挟むことになるので、上記の計算はあくまでも理論上でもっと時間がかかることになる。




これがパソコンやインターネットアカウントの場合、パスワードに数字だけでなくローマ字を使用するケースが多い為、パスワードの総数は1万をはるかに上回る。場合によっては\[]\^@:/-p;.,といった記号も使用するケースもある為、更に数は膨大な数となる。


例を挙げると英字で組み合わせた26文字を使用した8桁のパスワードの総数は2088億2706万4576通りとなる。


パスワード入力を1度試すのに5秒かかると計算した場合、

5秒×208827064576回=1044135322880秒=17402255381分=290037589時間=12084899日=33109年


このようにとてつもない時間がかかる為、人力で突破するのはどうやっても不可能である。


コンピュータを使用すると比較にならない速度で実行することが可能であり、上記の例の26文字8桁で組み合わせた2088億2706万4576通りのパスワードは簡単に破ることが可能。


だが、英字だけでなく数字や記号を組み合わせ、更に英字の大文字小文字を区別する形で8桁や10桁のパスワードを組み合わせると普通のコンピュータでは年単位、スーパーコンピュータを使用しても数ヶ月の時間がかかるとされている。


また、コンピュータを使えばブルートフォースは最強の矛という訳ではない。本体の起動ならともかく、ブラウザやアプリで入力する場合、インターネット回線を使用する以上アクセス履歴と言った記録は残る。短期間で万、または億というアクセスがあれば回線業者が異常事態だと気付くに決まっており、場合によってはアクセス過多によって回線そのものがダウンする可能性もある。


以上のようにパスワード式のセキュリティ認証ならば必ず突破出来るというのはあくまでも理論上の話である。


だが、携帯電話やパソコンのパスワードを持ち主の遺族がこの手法で年単位の時間をかけて突き止めてロックを解除した、または金庫を解錠したという例もあるので、場面は特定されるもの時間さえあればブルートフォースアタックが有効な手法であることは確かである。


【類似した手段】

リバースブルートフォースアタック

同じくパスワード入力式のセキュリティを突破する為に用いられる手段。
リバースの名の通り、ブルートフォースアタックの手段を逆転させて、一つのパスワードを複数のアカウントで試し続けることで突破するといる手法。


上述のATMで例えるとこのような流れとなる。


1.1万枚のキャッシュカードを持ってATMに行く。

2.適当な番号を決めて入力する。この場合「0108」とする。

3.違った場合次のカードを入れて0108を入力する。この作業を繰り返す。

4.いずれ0108に設定しているカードを引き当てればロックを突破することが出来る。



この手法ならば入力回数制限があったところで1枚のカードで試す回数は1度だけなのでそれを潜り抜けることが出来る。
ただし、1万枚のカードがあるからとはいえ、番号が1万通りとは限らない。ダブリや飛び数があるのが当然である。
運よく暗証番号を決めた数字に設定しているカードが複数あった為に複数の口座から預金を引き出すことが出来るケースもあれば、運悪く1枚も無かった為に最後まで試しても突破できずに終わるというケースも当然あり得る。


また、長時間ATMの前で入力を試し続けるのが非現実的という点は同様であり、1万枚もキャッシュカードを入手するのはそれ以上に非現実的なので、こちらも理論上の話ではあるが。



ディクショナリーアタック

ブルートフォースアタックと似て非なるパスワード入力式セキュリティの突破方法。「辞書攻撃」とも呼ばれる。


ブルートフォースでやるとしても実際にやる際にはある程度ヤマを張った方が正解に辿り着きやすいのは言うまでもない。
ここでいう「辞書」とはこの「ヤマを張る」にあたるものである。


例えば、4ケタの番号を組み合わせるパスワードに誕生日を使う人は多い。銀行などは使用しないように注意を呼び掛けてはいる*1のだが「憶えやすいから」「忘れないように」と考えてしまう人が減らないのが現状である。
誕生日となりうる月日の数字は0101から1231までの366通りに絞られる。
そのためこのように読みを加えて作った「辞書」を基に総当たりすれば驚くほどの短時間で破れる可能性も十分にありうる、というわけである。


1111、1234などの簡単に想像できるようなものは勿論、football、password、sunshine、iloveyou、welcome、31415926*2、14142135*3114514といったパスワードの場合、悪意ある「辞書」に登録されてしまっている可能性は高いであろう。


上記football、passwordのような憶えやすいように何らかの単語をそのままパスワードとして設定している人も多いため、文字通りの「辞書」をそのまま「攻撃用辞書」として使うパターンもある。


その他、スマホで設定するパスコードは右利きの場合は上段右にある3、左利きの場合は上段左部にある1と親指で押しやすい数字から始まるパスワードを設定していることが多いという傾向も報告されている。


【使用例】

〔現実〕

※リアルな犯罪の手口についての詳細は控えるようにお願いします。

JAL(日本航空)

2014年にJALマイレージバンクのマイルが勝手にAmazonギフト券に交換されるという事件が発生。
数百万円という被害が発生したが、これはリバースブルートフォースによる不正なログインによって行われたものであった。
マイレージバンクで使用されるパスワードは6桁の数字であり、組み合わせ総数は100万通り。
会員数が2700万人なので572903、572310、と適当な数字を打ち込んでもそのパスワードに設定しているユーザーが確率的に27人は居るという計算になる。
上述の辞書攻撃と組み合わせてよくあるパスワードを使って行えば更に確率は上昇する。
パスワードの組み合わせが100万通りというのは明らかに少なすぎるのだが、JALはその点を見落としてしまった。


ヘリオス航空522便墜落事故

とある番組で紹介されたことで有名な航空事故。
機内の与圧システムが点検ミスによって作動しなかった為に操縦士と乗客全てが酸欠になって意識を失ってしまう。
そんな中、一人の客室乗務員が非常用の酸素マスクを使って意識を失わずに行動することが出来た。
墜落を防ぐ為にコクピットに向かったのだが、ドアには番号入力式のロックがかかっていた。
彼は番号を知らされてなかったので、2時間かけて番号を片っ端に入力して解除したとされている。
(あくまでも推測。2時間かけて他の客室乗務員が持っていたメモを捜して見つけたのではという説もある)
だがコクピットに入った時点で燃料だけでなく酸素も空になっていて、また旅客機を操縦する技術も持っていなかった為、無線で助けを呼ぶのが精一杯で墜落を防ぐことは出来ず乗客乗員全員が死亡した。
(その通信も周波数を合わせていなかった為、ボイスレコーダーに記録されただけで管制には届いていなかった)


〔フィクション〕

※一応ネタバレ注意

名探偵コナン

「奇妙な一家の依頼」及び「疑惑を持った蘭」にてこの手法が登場。
蘭が新一の携帯にメールを送った数秒後、コナンの携帯からメールの着信音が鳴った。
偶然の可能性もあるとは言え、疑問を持った蘭はコナンの携帯を調べようとすると、コナンが慌てて携帯を蘭から取り返す。この反応で更に疑念を深めた蘭。
だが、探偵としての依頼を受けていた為にその場では追及することが出来ず、ある家へと向かう小五郎達。
その家での推理では携帯電話がキーアイテムとなり、犯人は実際に携帯電話のダイヤルロックを総当たりで入力して解除したので、それが出来る時間があった人物が犯人候補となる。
(現代のスマホでは入力回数制限がある機種もあるが、当時の携帯電話のダイヤルロックでは回数制限なしは普通だった)
その後、事件を解決して家に戻った蘭はコナンの携帯電話を調べるがダイヤルロックがかかっていた。
そこで事件の犯人が行ったように徹夜覚悟で1万通りの番号を入力しようと0000から入力を始めることに。
ただし2000まで試したところで根負けして新一が設定しそうなパスワードを推理するという手法に切り替えている。
2000まで試したので西暦及び誕生日は無いと判断して語呂合わせで思い当たる番号は無いかと考える蘭だったが…。


ちびまる子ちゃん

とあるエピソードでまる子が電話番号が記載されたメモに穴を空けてしまい、番号が読み取れなくなってしまう。
消えた文字が一つなら最大でも9回で済んだのだが、二つ消した為に当たりを引く為に最大で99回電話をかけるハメになった。



空想科学大戦!

第3巻で巨大ロボットカガクゴーの秘密を今は亡き製作者ネッケツ・サワグ博士のパソコンから引き出そうとするも、パスワードがかかっていたため総当たりでパスワードを試すブルートフォースアタックが行われた。
しかしアルファベットも含んでいたため、天才的な指捌きを誇るパイロットネッケツ・モユルをもってしても4桁で指がパンパンになってしまった。漫画内のコラムでもこの行為の無謀さが原作者に指摘されている。
因みに肝心のパスワードは博士の名前のローマ字表記だった。なんにでも名前を書く几帳面なタイプだったそうで…。


TRICKシリーズ(ドラマ)

仲間由紀恵演じるひんにゅう山田と阿部寛演じるでかちん上田さんがインチキ霊能力者を暴いていく人気ドラマ。
シーズン3最終話でとある門を開くための合言葉として5文字の言葉を言う必要があった。
全く見当のつかない山田たちは最初は「あああああ」~「んんんんん」まですべて試すブルートフォースアタックを行おうとしたのだが、実はそれはすでにすべて試されていた。
劇中では20年かかってブルートフォースアタックを行ったそうだが濁音や促音も含むと76の5乗=2535525376パターンとなり1パターンを1秒で言っても80年かかることになる。


因みに答えは「ジュテーム」。日本語発音ではなく正式なフランス語発音でないと受け付けなかったわけである。


スカディー(ラストオリジン)

同作に登場するハッカーバイオロイドで、昇進スキルとして「総当たり攻撃」を覚える。
パッシブスキルなので具体的にどのような攻撃なのかは不明だが、ラスオリの敵の多くは「地球外生命体に規制されたロボット」なので何かしらのハッキング攻撃は有効であると思われる。
が、そもそもスカディー自身がハッキング(物理)*4とかやりだすキャラであり、公式が公開したフレーバーでも「ブルートフォースとは(略)パスワードを解読する方法のことです。しかしスカディーにとっては別の意味でも使われます。」とあるので、総当たり攻撃(物理)なのかもしれない。



追記・修正は正規のアカウント、及び正規のログインを行った端末でお願いします。


[#include(name=テンプレ2)]

この項目が面白かったなら……\ポチッと/
#vote3(time=600,3)

[#include(name=テンプレ3)]


  • 「安納清磨織る。」という意味不明でマジウケな誤字があったので訂正しました。 -- 名無しさん (2020-01-29 13:15:09)
  • ジョジョあんまり関係なくない? -- 名無しさん (2020-01-29 13:36:20)
  • 隠しリンク辿って裏ページにあるPASS付きZip見つけたはいいもののPASSが分からずに苦戦した思ひでが・・・。まあ当時からPASS解析ツールとかあったけど。 -- インターネット老人会 (2020-01-29 13:45:30)
  • 昔コレでテイルズオブデスティニーの「かくめい」を解除したな。今思えばか行で本当に助かった -- 名無しさん (2020-01-29 14:16:44)
  • ヘボットは? -- 名無しさん (2020-01-29 15:30:48)
  • 要は「総当たりすりゃどれかは当たる」だからジョジョは当てはまる -- 名無しさん (2020-01-29 15:34:57)
  • ジョジョの例は、パスワード解除ではないから、ブルートフォースアタックじゃなくて、ただの総当たりじゃない? -- 名無しさん (2020-01-29 15:35:24)
  • 会社のロッカーの4桁キーロックを忘れてしまいこれをやる羽目になった。数字が当たると開錠音がするから回すだけで済んだけど --   (2020-01-29 16:02:22)
  • ゴセイブルーが1000万通りのパスワードを1から試し始めた時は腹抱えて笑ったw -- 名無しさん (2020-01-29 23:32:17)
  • ミラージュフレームの必殺技かと思った -- 名無しさん (2020-01-30 10:55:40)
  • ブルートフォース攻撃はたしかに総当たり攻撃と訳しますが、パスワード関連のみに適応されるのでは?ジョジョの内容は違うと思いますよ。それを書きたいなら最初から総当たりという内容にすべきです -- 名無しさん (2020-01-30 13:19:37)
  • ニンジャスレイヤーの翻訳チームの能力バトル作品でまんま「ブルートフォースアタック」があったな 。傍目には力業で捩じ伏せたようにしか見えない極限の集中力と超高速の連続試行によるあらゆるロックの突破。 -- 名無しさん (2020-01-30 23:02:26)
  • 辞書攻撃の意味を勘違いしているような。辞書攻撃に使用する「辞書」には、もちろん国語辞書にある単語なども記載されているけど、それら単語の並べ替え、組み合わせに加え、パスワードに使用されやすい文字列や、別の案件で流出したパスワードなども使用される。つまり予め用意した「パスワードの辞書」を使うのであって、「国語辞書」を使うという意味ではない。 -- 名無しさん (2020-01-30 23:20:46)
  • あとジョジョの例のように、一般的な領域においてしらみつぶしに調べる行為はBrute-force「search」と英訳される。Brute-forceは「力任せの」という意味。BFAはセキュリティ用語としての「攻撃」なので「Attack」。ジョジョだって殴って攻撃してるじゃないか、という屁理屈は知らん。少なくとも本来の用法ではない。 -- 名無しさん (2020-01-30 23:41:15)
  • しつこいようで申し訳ないが、最後にもうひとつ。地球防衛軍4の例も、記述の中で言ってしまっているように「力押し」という意味でBrute-forceの熟語が使われているだけなので、本記事とは全く関係が無いと提言する。 -- 名無しさん (2020-01-30 23:55:36)
  • ↑ブルートフォース作戦であってブルートフォースアタックではない。というわけですね。一見一緒のようだけど実際は意味する言葉は全然別ってことか -- 名無しさん (2020-01-31 00:56:38)
  • 相談所で依頼のあったジョジョの部分を削除しました。 -- 名無しさん (2020-02-01 10:14:49)
  • 加筆されたTRICKの例いいよね。パスワードが取り得る範囲を見誤ったせいで攻撃失敗するって話は現実にもよくある。ZIPのパスワードが日本語だったり……とはいえ、ZIPは元の文字種を無視する攻撃手法もあるけど。 -- 名無しさん (2020-02-01 15:29:17)

#comment

*1 機関によっては誕生日を暗証番号にそもそも設定できないようにしてあるところもある。電話番号と同じだったり、1234や8888などの連番も拒否されることも
*2 円周率
*3 2の平方根
*4 電子セキュリティでロックされたドアの開錠が上手くいかない場合は物理的にドアをブッ飛ばして侵入する等

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧