パスワードクラック(
パスワードクラッキング)とは、
コンピュータシステムに保存されている
パスワードを、不正に解読する行為を指します。この行為は、忘れられた
パスワードの回復、システムへの不正アクセス、または脆弱な
パスワードの使用をチェックする目的で行われます。また、裁判所がデジタル証拠にアクセスするために、ファイルレベルの
パスワードクラックが必要になる場合もあります。
パスワードクラックの主な攻撃手法
パスワードクラックには様々な攻撃手法が存在します。以下に代表的なものを解説します。
脆弱な暗号化の利用
システムが脆弱な
パスワードハッシュアルゴリズムを使用している場合、強固な
パスワードでも攻撃者に解読される可能性があります。例えば、Windows XP以前のバージョンで使われていた
LMハッシュは、
パスワードを大文字に変換し、2つの7バイト文字列に分割してハッシュ化するため、個別に攻撃されるリスクがありました。
より強力な
ハッシュ関数(
MD5、SHA-512など)を使用しても、
総当たり攻撃や事前計算攻撃に対する脆弱性は残ります。これらの攻撃では、
ハッシュ関数の逆算ではなく、大量の候補文字列のハッシュ値を計算し、対象の
パスワードハッシュと比較します。現代的な手法(
MD5-crypt、bcryptなど)は計算負荷の高いアルゴリズムを使用し、攻撃者が試せる候補数を制限しています。ソルトを使用することで事前計算攻撃の難易度はさらに高まります。
既存の暗号ハッシュアルゴリズムの安全性は常に変化します。過去に安全とされていた
MD5や
SHA-1も、現在では効率的な
総当たり攻撃に対して脆弱性が指摘されています。暗号化アルゴリズムも同様であり、DESは既に破られており、短いキー長は
総当たり攻撃に耐えられません。
これらの攻撃は、
パスワード候補のリストを順番に試すという点で共通しています。リストは、ターゲットに関する情報や言語学的な観点から作成される場合があります。
類推攻撃
類推攻撃では、攻撃者がターゲットの個人情報から
パスワードを推測します。よく使われる
パスワード例としては、「password」「12345」といった単純なもの、キーボードの配列、ユーザー名、
誕生日、ペットの名前などが挙げられます。現在では、オンラインで容易に個人情報を入手できるため、類推攻撃は依然として有効な手法です。
辞書攻撃では、辞書に掲載されている単語や一般的な
パスワードリストを試します。ユーザーは脆弱な
パスワードを選びがちで、辞書に載っている単語や短すぎる
パスワード、推測しやすい
パスワードがよく使用されます。初期
パスワードを変更しないユーザーも多く、システム管理者もOSやハードウェアの初期
パスワードを変更しない場合があるため、注意が必要です。
総当たり攻撃では、考えられるすべての
パスワードを試します。
パスワードが長くなるほど、試行回数が増加しますが、並行処理によって時間を短縮することが可能です。オフライン攻撃では、攻撃者は
パスワードのハッシュ値とアルゴリズムを知っている必要があります。オンライン攻撃では、認証を試みるたびにシステムによって制限が課せられます。
パスワードは、アルファベット、数字、記号をランダムに組み合わせ、8文字以上にするのが推奨されますが、旧式のWindowsシステムでは、
LMハッシュが使われているため、効果が限定的です。
パスワードリスト攻撃は、あるサービスから流出した
パスワードを別のサービスに試す攻撃手法です。
事前計算攻撃
事前計算攻撃では、辞書にある単語のハッシュ値を計算し、平文
パスワードとハッシュ値のペアを保存しておきます。これにより、新しいハッシュ値を手に入れたときに、容易に平文
パスワードを割り出すことができます。ソルトが適切に使用されていない場合、事前計算は非常に効果的です。
時間と空間のトレードオフを考慮した、より効率的な事前計算攻撃も存在します。
ソルトによる対策
ソルトは、ハッシュ化の過程をランダム化する仕組みです。ユーザーが
パスワードを設定する際に、ランダムな文字列を
パスワードに追加してハッシュ化します。ソルトは
パスワードごとに異なるため、事前計算済みのリストが無効になります。現代的な手法では、より長いソルトを使用することで、攻撃に対する耐性を高めています。
初期の
Unixシステムでは、
パスワード長が8文字以下に制限され、12ビットのソルトが使用されていました。このため、よく使われる
パスワードに対する事前計算攻撃が可能でした。
パスワードクラックを防ぐためには、以下の対策が有効です。
暗号化された
パスワードへのアクセスを制限する(/etc/shadowなど)
より強力な
パスワードハッシュアルゴリズムを使用する(
MD5、
Blowfishベース)
ソルトを使用する
セキュリティトークンを使用し、
パスワードを定期的に変更する
パスワードクラックには、多くのソフトウェアが利用されています。これらのソフトウェアは、
総当たり攻撃や
辞書攻撃などの様々な手法を組み合わせて、
パスワードの解読を試みます。また、訴訟支援用のソフトウェアにも
パスワードクラック機能が搭載されている場合があります。
代表的なソフトウェアとしては、Crack, Cain, ElcomSoft, Hydra,
John the Ripper,
Hashcatなどが挙げられます。
まとめ
パスワードクラックは、システムセキュリティを脅かす重要な問題です。強力な
パスワードポリシーを実施し、最新のセキュリティ対策を講じることで、
パスワードクラックのリスクを低減することができます。
関連項目
暗号学的
ハッシュ関数
キーロガー
辞書攻撃
総当たり攻撃
PPAP (セキュリティ)
ZIP