辞書攻撃

Tue, 10 Jan 2012 14:31:54 JST (4730d)

広告

辞書攻撃

passwordはパスワードファイルに暗号で書かれていて、これを直接解析するのは不可能と言っていいでしょう。

しかし、辞書攻撃といってpasswordに使われそうな単語を集めた辞書を用い、passwdプログラムと同じ暗号方式を用いて暗号化しそれらを比較することで、パスワードを解析する方法があります。

この辞書は非常に多く公開されていて、ジャンル毎にファイルになっています。辞書を作ろう!

これらのパスワードを用いて次のように解析していきます。

  1. ログインネームや名前、ホスト名で試す。(yamada,taro)
  2. 上と数字を組み合わせる。(yamada1234,taro1234,yama1234da,ta1234ro)
  3. 辞書の単語で試す。(unix,windows,html,kyonkyon)
  4. 上と数字の組み合わせ(windows2000,unix1234)
  5. 辞書と1.の組み合わせ(yamadaunix,tarowindows)
  6. 辞書の単語の組み合わせ(unixwindows,kyonkyonnorika)
  7. 上と数字の組み合わせ
  8. すべての可能性を試す。

1,2,3の組み合わせで数十%がヒットすると言われ、かかる時間は数分で済んでしまいます。もっとも安全なpasswordは、使える文字(数字、アルファベット、その他)をランダムに用いたものでしょう。更にこれを頻繁かつランダムに変えることで、安全性が増します。

数字が10個、アルファベットが大文字小文字で52個、その他を合わせるとおよそ70個の文字を使うことができ、これは、通常使われる8文字のパスワードでは、

70+70^2+70^3+70^4+70^5+70^6+70^7+70^8=5.8*10^14

ときわめて多くの組み合わせが存在し、これを総当りで解析するのは事実上不可能でしょう。しかし、ランダムなpasswordは覚えにくく、また、頻繁に変更するのは手間のかかることです。passwordを忘れてしまうかも知れません。

よって、非常に使いにくいものになってしまいます。

そのため、多くの人は使い慣れた単語(名前、ログインネームなど)をパスワードとして使ってしまいます。そこで、上で述べたようにパスワードに使われそうな単語を用いて解析することで飛躍的に解析スピードを改善することができるようになります。クラッカーにとって質の良い辞書を手に入れることはとても有意義であり、またセキュリティを考える上では、辞書に載っていない単語を使うことが重要となります。