ZIPファイルのパスワード解析の手法まとめ

以前にも「ZIPパスワードの解析や解除を簡単に実現する方法」で簡単には説明していますが、ここではもう少し掘り下げてさまざまなZIPファイルのパスワード解析方法を紹介していきます。色々なパスワード解析の方法を知っておくことで、自分でZIPファイルにかけたパスワードを解除したいときや、逆に他人に解析されないようセキュリティ対策を実施するときに役立つかもしれません。

目次

  • 1.ブルートフォース解析(総当たり攻撃)って何?
  • 2.辞書解析(ディクショナリー攻撃)って何?

ブルートフォース解析について


ブルートフォース解析は、総当り攻撃ともいわれます。これらのパスワード解析技術はクラッキング(不正アクセス)の用途で用いられる可能性もあるため、「攻撃」という物騒な呼称が使われることも多いですが、ここではあくまで自分で設定したパスワードを忘れた場合に、解析を行う、という用途を想定して「ブルートフォース解析」と呼称します(実際、そういう例は非常に多くあります)。

総当り解析の仕組み


ブルートフォース解析の仕組みは非常にシンプルで、理論上、存在しうる全ての文字列の組み合わせを時間の許す限り片っ端から試してみる、という方法です。例えば数字4桁のパスワードであれば、「0000」「0001」「0002」にはじまり、「9999」までもの全てのパターン(10 × 10 × 10 × 10 = 1000 通り)を全て計算します。数字だけでなく、英文字や特殊記号が混ざる可能性も当然ありますが、コンピューターからするといずれも最終的には2進数の文字列になりますので、総当りによる解析が可能です。

理論上は、当然ながら総当りで解析できないパスワードは存在しません。時間を無視すればいつか正解のパスワードに当たります。ただ、現実的にはパスワードが必要な場面の多くは一定の緊急性を要する場合であり、1年後や10年後でもいいから解析したい、というケースはあまりないと思います。そういう意味でいえば、実用性という意味で現実的に解析できるパスワードにはある程度の上限があります。

出現頻度の多い文字と少ない文字を考慮する方法


総当り(BruteForce)の応用ではありますが、出現頻度の多い文字と少ない文字を考慮した上で総当り解析を行う方法もあります。例えば、英語圏ではアルファベットの「e」や「a」の利用頻度は高く、逆に「y」の使用頻度は低い傾向にあります。この場合、「e」や「a」での解析を先に試して、「y」を用いた解析を後に回すことで、効率的に総当り解析を行うことも可能です。


出現頻度の多い文字と少ない文字を考慮する方法