全数探索
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "総当たり攻撃" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2012年9月)

総当たり攻撃(そうあたりこうげき)とは、暗号解読方法のひとつで、可能な組合せを全て試すやり方。力任せ攻撃、または片仮名でブルートフォースアタック(: Brute-force attack)とも呼ばれる。
概要

総当たり攻撃とは、暗号暗証番号などで、理論的にありうるパターン全てを入力し解読する暗号解読法。例としては、自転車のチェーンロックやトランクダイヤル錠を、全ての番号の組み合わせ(4桁なら0000から9999まで)を片っ端から試す方法と同じで、この「片っ端から」で、いずれ正解に行き着こうというものである。

人間による操作では、とても気が遠くなるほどの時間と、肉体的・精神的な負荷がかかるような回数の計算をコンピュータにまかせ、時間の許す限りパスワードの検証等を行う行為がコンピュータセキュリティ分野で良く知られている。時間的制約が無い限りは、確実にパスワードをクラックする方法である。

類似する暗号解読方法としては、「人間が発想するパスワード」はワンパターンな事が多いため、予め言葉が予想される候補を優先的に組み合わせて検証していく辞書攻撃等があり、一部ハッカーなどは「良く的中する効率が良い辞書」の育成の為に、「過去の流出したパスワードからの傾向性分析」などに血道をあげる者もおり、あるいはどちらの辞書が優秀か、ハッカー同士で競い合うケースもある。実際には、総当たり攻撃と辞書攻撃を組み合わせて、総当たりしつつも確率が高いワードから取り掛かり、時短を図るケースも多い。
メリット

人間が手作業で行った場合、入力が速い人が行ったところでとてつもなく膨大な時間と労力が掛かる事となるが、単純なコンピュータプログラムで自動化する事が可能であり、またコンピュータはそのような繰り返しの作業において、非常に有効に機能する。

1台のコンピュータを使った場合は、そのコンピュータの処理速度(主演算装置の処理能力だけではなく、処理に関係する部分の全体的な処理能力)に応じていずれは正解に行き当たる。分散コンピューティングにおいては、(個々のコンピュータの空き時間に)探索する役割を分担して検索するようプログラムすると、使えるコンピュータの数によっては直ちに解読できる事がある。インターネットを使用したサイバーアタックでの総当たり攻撃では、回線速度も関係してくるが、近年光ファイバー等のブロードバンドインターネット接続の普及により、回線速度がボトルネックになる事は減少している。なお、遅いか早いかはあくまでも確率の問題である。

ゆえに、もっとも原初的な方法論でありながら、時間的制約が無い、あるいは試行回数制限が無い場合など条件を満たせば、最も万能かつ普遍的に使う事が出来る方法である為、暗号解読あるいはサイバー攻撃の基礎とみなされる。
パスワード長と解読時間の関係

数字0?9のみのパスワード(10ワード)6桁で100万パターン、8桁で1億パターン。アルファベットA?Z(26ワード)+数字の組み合わせ(+10ワード合計36ワード)6桁で21億7678万2336パターン、36ワード8桁で2兆8211億0990万7456パターン。アルファベット大文字小文字を区別してA?Z・a?zおよび数字の場合(62ワード)において6桁時に568億0023万5584パターン、62ワード8桁時に218兆3401億0558万4896パターンとなる。(詳細な試行パターンは、下表参照)

総当たり攻撃の全パターン試行回数使用する文字の種類1文字の場合4文字の場合6文字の場合8文字の場合10文字の場合
数字のみ(0?9)1010,0001,000,000100,000,00010,000,000,000
英字(大文字、小文字区別しない)26456,976308,915,776208,827,064,576141,167,095,653,376
英字(大小区別しない)+数字361,679,6162,176,782,3362,821,109,907,4563,656,158,440,062,976
英字(大文字、小文字区別)+数字6214,776,33656,800,235,584218,340,105,584,896839,299,365,868,340,224
英字(大小区別)+数字+記号31文字9374,805,201646,990,183,4495,595,818,096,650,40148,388,230,717,929,320,352
英字(大小区別)+数字+記号34文字9684,934,656782,757,789,6967,213,895,789,838,33666,483,263,599,150,104,576


独立行政法人
情報処理推進機構(IPA)が2008年に行った試験によれば、パスワード解析には以下の時間が必要となる[1]

使用できる文字数と入力桁数によるパスワードの最大解読時間(IPA,2008)使用する文字の種類4文字の場合6文字の場合8文字の場合10文字の場合
英字(大文字、小文字区別しない)約3秒約37分約17日約32年
英字(大文字、小文字区別)+数字約2分約5日約50年約20万年
英字(大文字、小文字区別有)+数字+記号約9分約54日約1千年約1千万年

上記試験に使用したパソコンはIntel Core 2 Duo T7200 2.00GHz、メモリ:3GB。パスワード解析に使ったアルゴリズムは未公開。また、ネットワーク経由でのものかどうかも不明。記号は、31文字使用可能と仮定した場合。

また、 ⇒Lockdown.co.ukが2009年に行った試算[2]によると、総当たり攻撃によるパスワードの解読時間は、次のとおりとしている。

コンピュータ性能によるパスワード解読時間の関係(Lockdown.co.uk,2009)使用する文字の種類使用できる文字の選択肢の数低速パソコン
(Pentium 100MHz)高性能パソコン
(当時)コンピュータ・クラスター
又は、ワークステーションスーパーコンピュータ
6桁の大小いずれかの英字だけのパスワード265分間?8.5時間30秒3秒瞬間
8桁の大小英数字を含むパスワード627年?692年253日25.25日60.5時間
8桁の大小英数字および記号を含むパスワード96229年?2万2875年23年2.25年83.5日

上記コンピュータの性能は2009年の当時。なお、日進月歩で性能が向上しているため、現在は上記より大幅に高速化されているとみられる。例えば、上記の表のスーパーコンピュータは10億回/秒の解析能力とされているが、2016年の市販GPUを一つ使用して解析すれば、その10倍以上の速度を出すことができる。また、仮想通貨の採掘業者などは数千万倍の計算能力を持っている。なお、パスワードの保管に脆弱性がある場合は、数分で突破される場合がある(例:Microsoft Windows XPと以前のバージョンにあるLMハッシュ[3][4](回避方法:レジストリに NoLMHash を設定する。[3]))
問題点

総当たり攻撃は、回答となるキーワードが長ければ長い程、指数的に正解(目的の結果が得られるキーワードが出る)へ至るのに掛かる時間が長くなる。また「入力する」、「正解かどうかチェックする」、「不正解だったら1ビット追加する」を繰り返して行うため、正解かどうかチェックする対象のシステム(攻撃を被っている側)が何らかの理由で反応を返さなくなった場合には、検証作業は停止してしまう。

一般的にパスワードによる保護を行っているコンピューターは、一定時間内に規定回数以上のパスワード誤入力が続いた場合、アクセス禁止にしてしまうように設計されているため、総当たり攻撃による解析が難しい場合がある。銀行キャッシュディスペンサーが一定回数以上連続して暗証番号を間違えると、それ以上の操作を受け付けなくなるのと同様である。
防衛手段

攻撃されても、主要なシステムへの侵入が困難であるようシステムを構築することが大事である。よく以下のような防衛手段が挙げられるが、次項以降に挙げるように攻撃方法は日進月歩で進化するため、すぐに有効でなくなる事を考えるべきである。

パスワードの桁数を増やす(長さを大きくする)

パスワードに使える文字数に記号や漢字など他の文字を許可しパターンを増加させる

第2のパスワードを用意する(セキュリティーコードなど)

パスワードの試行回数を制限する

アクセス元を制限する

一定の速度以上でのパスワード試行を禁止する

数分ごとに自動変化するパスワードにする詳細は「
ワンタイムパスワード」および「セキュリティトークン」を参照

一定以上のミスに対して、警告メールを管理者に送信する

人による常時監視システムにて、異常なパスワード試行がないか監視する

影響

総当たり攻撃には、様々な悪影響が出る。サーバーに対しては数万?数億回(あるいはそれ以上)のアクセスが殺到するために、負荷がかかりサーバーが重くなる。CPU使用率の異常負荷から技術者が気が付く事も多い。また、防衛策を使用すればするほど、パスワード入力が複雑化していき、ユーザーの手間が増え利便性が低下する。ブルートフォースアタックを遮断するために、攻撃元のIPアドレスを遮断するのが負荷対策としてもっとも有効だが、IPアドレスを次々に変更するためにいたちごっことなり、その際に「正規のユーザー」までIPブロックに巻き込まれてログオンできなくなるなどの弊害も発生している。また、試行回数の上限に達したIDがパスワードロックされる事により正規ユーザーが使用できなくなる例も発生しているなど、サーバー担当者のみならず正規ユーザーにも悪影響が出ている。年々、パスワードの桁数は増加傾向にあり、複雑化したパスワードを忘れるなどのデメリットも発生しており、ITコストおよび事務手間コストの増大を発生させており、コスト面からも悪影響が出ている。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:39 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef