パスワードクラック

パスワードクラックとは



パスワードクラック(パスワードクラッキング)とは、コンピュータシステムに保存されているパスワードを、不正に解読する行為を指します。この行為は、忘れられたパスワードの回復、システムへの不正アクセス、または脆弱なパスワードの使用をチェックする目的で行われます。また、裁判所がデジタル証拠にアクセスするために、ファイルレベルのパスワードクラックが必要になる場合もあります。

パスワードクラックの主な攻撃手法



パスワードクラックには様々な攻撃手法が存在します。以下に代表的なものを解説します。

脆弱な暗号化の利用



システムが脆弱なパスワードハッシュアルゴリズムを使用している場合、強固なパスワードでも攻撃者に解読される可能性があります。例えば、Windows XP以前のバージョンで使われていたLMハッシュは、パスワードを大文字に変換し、2つの7バイト文字列に分割してハッシュ化するため、個別に攻撃されるリスクがありました。

より強力なハッシュ関数MD5、SHA-512など)を使用しても、総当たり攻撃や事前計算攻撃に対する脆弱性は残ります。これらの攻撃では、ハッシュ関数の逆算ではなく、大量の候補文字列のハッシュ値を計算し、対象のパスワードハッシュと比較します。現代的な手法(MD5-crypt、bcryptなど)は計算負荷の高いアルゴリズムを使用し、攻撃者が試せる候補数を制限しています。ソルトを使用することで事前計算攻撃の難易度はさらに高まります。

既存の暗号ハッシュアルゴリズムの安全性は常に変化します。過去に安全とされていたMD5SHA-1も、現在では効率的な総当たり攻撃に対して脆弱性が指摘されています。暗号化アルゴリズムも同様であり、DESは既に破られており、短いキー長は総当たり攻撃に耐えられません。

類推・辞書・総当たり攻撃



これらの攻撃は、パスワード候補のリストを順番に試すという点で共通しています。リストは、ターゲットに関する情報や言語学的な観点から作成される場合があります。

類推攻撃


類推攻撃では、攻撃者がターゲットの個人情報からパスワードを推測します。よく使われるパスワード例としては、「password」「12345」といった単純なもの、キーボードの配列、ユーザー名、誕生日、ペットの名前などが挙げられます。現在では、オンラインで容易に個人情報を入手できるため、類推攻撃は依然として有効な手法です。

辞書攻撃


辞書攻撃では、辞書に掲載されている単語や一般的なパスワードリストを試します。ユーザーは脆弱なパスワードを選びがちで、辞書に載っている単語や短すぎるパスワード、推測しやすいパスワードがよく使用されます。初期パスワードを変更しないユーザーも多く、システム管理者もOSやハードウェアの初期パスワードを変更しない場合があるため、注意が必要です。

総当たり攻撃


総当たり攻撃では、考えられるすべてのパスワードを試します。パスワードが長くなるほど、試行回数が増加しますが、並行処理によって時間を短縮することが可能です。オフライン攻撃では、攻撃者はパスワードのハッシュ値とアルゴリズムを知っている必要があります。オンライン攻撃では、認証を試みるたびにシステムによって制限が課せられます。

パスワードは、アルファベット、数字、記号をランダムに組み合わせ、8文字以上にするのが推奨されますが、旧式のWindowsシステムでは、LMハッシュが使われているため、効果が限定的です。

パスワードリスト攻撃



パスワードリスト攻撃は、あるサービスから流出したパスワードを別のサービスに試す攻撃手法です。

事前計算攻撃



事前計算攻撃では、辞書にある単語のハッシュ値を計算し、平文パスワードとハッシュ値のペアを保存しておきます。これにより、新しいハッシュ値を手に入れたときに、容易に平文パスワードを割り出すことができます。ソルトが適切に使用されていない場合、事前計算は非常に効果的です。時間と空間のトレードオフを考慮した、より効率的な事前計算攻撃も存在します。

ソルトによる対策



ソルトは、ハッシュ化の過程をランダム化する仕組みです。ユーザーがパスワードを設定する際に、ランダムな文字列をパスワードに追加してハッシュ化します。ソルトはパスワードごとに異なるため、事前計算済みのリストが無効になります。現代的な手法では、より長いソルトを使用することで、攻撃に対する耐性を高めています。

初期Unixパスワード強度



初期のUnixシステムでは、パスワード長が8文字以下に制限され、12ビットのソルトが使用されていました。このため、よく使われるパスワードに対する事前計算攻撃が可能でした。

パスワードクラックへの対策



パスワードクラックを防ぐためには、以下の対策が有効です。

暗号化されたパスワードへのアクセスを制限する(/etc/shadowなど)
より強力なパスワードハッシュアルゴリズムを使用する(MD5Blowfishベース)
ソルトを使用する
セキュリティトークンを使用し、パスワードを定期的に変更する

パスワードクラックソフトウェア



パスワードクラックには、多くのソフトウェアが利用されています。これらのソフトウェアは、総当たり攻撃辞書攻撃などの様々な手法を組み合わせて、パスワードの解読を試みます。また、訴訟支援用のソフトウェアにもパスワードクラック機能が搭載されている場合があります。

代表的なソフトウェアとしては、Crack, Cain, ElcomSoft, Hydra, John the Ripper, Hashcatなどが挙げられます。

まとめ



パスワードクラックは、システムセキュリティを脅かす重要な問題です。強力なパスワードポリシーを実施し、最新のセキュリティ対策を講じることで、パスワードクラックのリスクを低減することができます。

関連項目



暗号学的ハッシュ関数
キーロガー
辞書攻撃
総当たり攻撃
PPAP (セキュリティ)
ZIP

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。