パスワードクラック

他人のパスワードを解析し、探り当てることをパスワードクラック(password crack)と 呼びます。
攻撃ターゲットとなるパスワードは、OSログイン用、アプリケーション起動用、 RAS(Remote Access Service server:リモートアクセスサーバー)と さまざまです。

パスワードクラックは、 ターゲットに対して、アクセスしながら探し当てる操作の「オンライン攻撃」と、 どこかに保存されるパスワードのデータファイルを入手して解読を行う「オフライン攻撃」に 分類できます。

なお、「オンライン攻撃」では、誤入力が続いたら、一定時間認証できないように する方法や、アカウントを自動的に変更して使用できなくするような指定などが 対策的に有効となります。しかしその場合、管理者に連絡しないと 正規の利用者も使用できなくなるため、不便になる可能性もあります。
パスワードを不正に解析する手法としては、次の方法があります。

総当り攻撃

全ての文字数で、全ての文字の組み合わを、 順次にひたすら試していく方法で非常に時間がかかります。
「力ずくで、強引に」で暗号を解読して、パスワードを取得することから ブルートフォースアタック(Brute Force Attack/Brute Force Password Cracking)とも言います。

アルファベット小文字(26文字)で2文字のパスワードであれば、 最大で26の2乗=676通りを調べれば解読できます。

アルファベット小文字(26文字)で4文字のパスワードであれば、 最大で26の4乗=456976通りを調べれば解読できます。

アルファベット小文字と大文字そして10進の数字(26+26+10=62文字)で4文字のパスワードであれば、 最大で26の4乗=14776336通りを調べれば解読できます。

アルファベット小文字と大文字そして10進の数字(26+26+10=62文字)で4文字のパスワードであれば、 最大で62の4乗=14776336通りを調べれば解読できます。

アルファベット小文字と大文字そして10進の数字(26+26+10=62文字)で8文字のパスワードであれば、 最大で62の8乗=218340105584896通りを調べれば解読できます。

以上より、8文字以上のパスワードが望ましいのですが、 時間さえかければ必ずパスワードが解読さてしまうので、 パスワードを定期的に変更する対策が有効です。

辞書攻撃

パスワードを決める時に、つい実在する単語や名前を使いがちとなる人が多い実情があります。
ここでいう辞書とは、そのようなパスワード解析用の単語、名前が登録される辞書のことです。
解析は、この辞書の単語をで順次試していきます。
この時、逆順の並びや1部を大文字にすることや 先頭や末尾に数字を付け加えた試行も行われるようです。
対策としては、パスワードにできるだけ意味のない言葉を使うことでしょう。

レインボー・クラック(rainbow crack)

一般に、コンピュータの中では、ユーザーのパスワードをそのままの文字列で記憶している のではなく、 ハッシュ値に変換して格納しています。
そして、ユーザーが入力したパスワードからハッシュ値を算出して、 それが登録済みのハッシュ値と一致したらログインを許可するという仕組みです。

なお、ハッシュ値とは、元のデータからハッシュ関数を使って変換した値です。
ハッシュ関数と、ハッシュ値から元のデータが得られない特徴(一方向性)があます。 これを利用して、例えハッシュ化されたファイルが盗まれて、 ハッシュ関数がが分かっても、 元のデータであるパスワードが解読しにくい仕組みになっています。

「オフライン攻撃」では、このハッシュ値をコンピュータから読み出して、 行います。
辞書を使う解析では、辞書の単語を順番にハッシュ値に変換して、 このコンピュータから読み出したハッシュ値と同じ値を探します。
この見つかったハッシュ値のもとの単語がパスワードとなる訳です。
しかし、この方法では全て単語に対して、ハッシュ関数を使うため時間がかかります。
そこで予め、「パスワードの単語とそれをハッシュ化した表」を作っておいて、 そのハッシュデータと一致する単語を探す方式にすると、高速に探しだせます。 この「パスワードの単語とそれをハッシュ化した表」は レインボー・テーブルと呼ばれ、この表を利用するパスワードクラックが レインボー・クラックです。
この表は、数GByteのサイズになるものもありますが、以前の方法と比べると格段に 解読スピードが上がっています。
ちょっと席を外してた間に、パスワードが盗まれるという危険な時代になっています。

盗聴による取得

IPパケットのデータで暗号化されないパケットを 送受信するアプリケーションは盗聴される可能性があります。
例えば、telnetやPOP3では、認証用のパスワードが 含まれるパケットも暗号化されていないので注意が必要です。
なおネットワーク検証において、暗号化されている場合でも、 そこに脆弱性が発見されるとそれが狙われて、攻撃対象にされる場合があります。