総当たり攻撃
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/29 05:27 UTC 版)
概要
総当たり攻撃とは、暗号や暗証番号などで、理論的にありうるパターン全てを入力し解読する暗号解読法。例としては、自転車のチェーンロックやトランクのダイヤル錠を、全ての番号の組み合わせ(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) | 10 | 10,000 | 1,000,000 | 100,000,000 | 10,000,000,000 |
英字(大文字、小文字区別しない) | 26 | 456,976 | 38,915,776 | 208,827,064,576 | 141,167,095,653,376 |
英字(大小区別しない)+数字 | 36 | 1,679,616 | 2,176,782,336 | 2,821,109,907,456 | 3,656,158,440,062,976 |
英字(大文字、小文字区別)+数字 | 62 | 14,776,336 | 56,800,235,584 | 218,340,105,584,896 | 839,299,365,868,340,224 |
英字(大小区別)+数字+記号31文字 | 93 | 74,805,201 | 646,990,183,449 | 5,595,818,096,650,401 | 48,388,230,717,929,320,352 |
英字(大小区別)+数字+記号34文字 | 96 | 84,934,656 | 782,757,789,696 | 7,213,895,789,838,336 | 66,483,263,599,150,104,576 |
独立行政法人情報処理推進機構(IPA)が2008年に行った試験によれば、パスワード解析には以下の時間が必要となる[1]。
使用する文字の種類 | 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]によると、総当たり攻撃によるパスワードの解読時間は、次のとおりとしている。
使用する文字の種類 | 使用できる文字の選択肢の数 | 低速パソコン (Pentium 100MHz) |
高性能パソコン (当時) |
コンピュータ・クラスター 又は、ワークステーション |
スーパーコンピュータ |
---|---|---|---|---|---|
6桁の大小いずれかの英字だけのパスワード | 26 | 5分間~8.5時間 | 30秒 | 3秒 | 瞬間 |
8桁の大小英数字を含むパスワード | 62 | 7年~692年 | 253日 | 25.25日 | 60.5時間 |
8桁の大小英数字および記号を含むパスワード | 96 | 229年~2万2875年 | 23年 | 2.25年 | 83.5日 |
上記コンピュータの性能は2009年の当時。なお、日進月歩で性能が向上しているため、現在は上記より大幅に高速化されているとみられる。例えば、上記の表のスーパーコンピュータは10億回/秒の解析能力とされているが、2016年の市販GPUを一つ使用して解析すれば、その10倍以上の速度を出すことができる。また、仮想通貨の採掘業者などは数千万倍の計算能力を持っている。 なお、パスワードの保管に脆弱性がある場合は、数分で突破される場合がある(例:Microsoft Windows XPと以前のバージョンにあるLMハッシュ[3][4](回避方法:レジストリに NoLMHash を設定する。[3]))
- ^ “コンピュータウイルス・不正アクセスの届出状況 2008年9月分および第3四半期について”. 情報処理推進機構 (2008年10月2日). 2020年3月16日閲覧。
- ^ [1][リンク切れ]
- ^ a b 辻伸弘 (2008年5月8日). “人の造りしもの――“パスワード”の破られ方と守り方 (2/4):セキュリティ対策の「ある視点」(9)”. @IT (アイティメディア) 2020年3月16日閲覧。
- ^ “Windowsのパスワードをわずか数分で解析する「Ophcrack」の使い方”. GIGAZINE (株式会社OSA). (2007年8月16日) 2020年3月16日閲覧。
- ^ 勝村幸博 (2014年9月4日). “危なすぎる数字だけのパスワード、JALとANAがユーザー認証を強化”. 日経クロステック (日経BP) 2020年3月16日閲覧。
総当たり攻撃と同じ種類の言葉
- 総当たり攻撃のページへのリンク