「Zipファイルのパスワードを短くするのは危険だよ!」を計算して確認してみた

仕事をしていると、何らかの形でパスワード付きのZIPファイルを受け取ることがあるのですが、そのパスワードを教えてもらったときに、思いのほかパスワードが短い(3文字とか4文字とか)ことが多くて驚きます。


何のためにパスワードをかけているのかを考えると、ちょっとした努力で紐解きにくくできるものなら、堅くしておきたいものですよね。

というわけで、短いパスワードのZipファイルがどれだけ危険かを計算してみようと思います。

パスワードに使える文字パターン

もっとたくさんある気もしますが、とりあえず前提として、よく使う半角英数字/記号文字ってことで、パスワードに用いる文字列を以下の89種類とします。

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
~@#$%^&*()_+-=[]{},.\"/?:;`

パスワードの文字数毎のパターン(重複順列)数

上記の"パスワードに使える文字パターン"を前提とすると、、、

文字数 パターン(通り)
1文字 89
2文字 7921
3文字 704969
4文字 62742241
5文字 5584059449
6文字 496981290961
7文字 44231334895529
8文字 3936588805702081
9文字 350356403707485209
10文字 31181719929966183601


と、このような感じになります。最後のほうは桁がよくわかりませんね・・・。

ツールを使ってパスワード付きのZipファイルを解析する

使うのは、有名な「PikaZip」と呼ばれる解析ツールを使ってみます。

「PikaZip」での設定は、上記の「パスワードに使える文字パターン」の全組み合わせの総当りを実施し、"ディスクキャッシュ"(メモリ上にファイルを保持し、高速に解析できます)を利用しました。


その結果、使用したPCのスペックと、1秒あたりに解析できた文字数の表が以下となります。
尚、利用したパスワード付きZIPファイルのサイズは約350KBです。

PCスペック 1秒あたりの解析数
CPU: Core2 Duo T8300(2.4GHz), Mem: 2GB 約4,000,000
CPU: Pentium4 540(3.2GHz), Mem: 1GB 約3,100,000


上記表1つ目(速い方)のCore2 Duo T8300(2.4GHz)のPCを1台利用した場合、上記の「パスワードに使える文字パターン」のどれかを利用して作ったパスワード付きZipファイルの解析にかかる時間は以下となります。

文字数 解析にかかる時間
1文字 1秒以内
2文字 1秒以内
3文字 1秒以内
4文字 16秒
5文字 1415秒 (約23分35秒)
6文字 125660秒 (約34時間54分)
7文字 11183493秒 (約129日)
8文字 995330694秒 (31年)
9文字 88584431620秒 (2809年)
10文字 7884014414111秒 (25万年)


この結果からは、3文字のパスワードだと1秒以内4文字のパスワードで1〜16秒で解析されることとなります。

5文字のパスワードでも最速で16秒、最遅でも23分半以内に終了する計算です。

逆に、8文字まで長くすると、最速でも129日、最遅で31年となり、まずまず強固となっています。5文字と8文字で結構違いが出てくることが分かります。


尚、この「PikaZip」は複数台のPCを並べて、解析を並列処理することも可能となっているみたいです。

どのくらいオーバーヘッドがあるかは試していないのでわかりませんが、仮にオーバーヘッドがなかったとして、250台の上記スペックのPC(Core2 Duo T8300)を並べて解析したとしても、パスワードの文字数を11文字にしておけば、最速でも1000年かかる計算です。


尚、言い忘れていましたが、辞書に出てくるような単語を使ったり、それらを組み合わせて使うのは非常に危険です。

辞書検索を使った解析を実施すると、上記より遥かに少ない組み合わせとなりますので、すぐに解析されてしまう可能性が高くなります。

結論

今回は、よく使うであろう89文字の半角英数字/記号を対象としましたが、これに全角文字が加わるとさらにバリエーションが増す(何千字レベル)ため、より強固となりそうです。というわけで、、、

  • パスワードは少なくとも8文字以上にしたほうが良さそう
  • 全角文字はできるだけ使ったほうが良い
    • 日本語入力できない場合も、メモ帳からコピペなどで対応できる場合がある。
  • 辞書に載っている文字列を使うのは危険
    • 辞書に載っている単語による組み合わせのアタックができたりするので


以上、ご参考になれば幸いです。

まぁ、、、あれですね。もしメールでこういったやり取りをする場合は、素直にPGPとかS/MIMEでメール自体を暗号化してしまった方が良いかもしれません。


ネットワークセキュリティHacks 第2版 ―プロが使うテクニック & ツール 100+

ネットワークセキュリティHacks 第2版 ―プロが使うテクニック & ツール 100+

  • 作者: Andrew Lockhart,渡辺勝弘,鶴岡信彦,黒川原佳
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2007/06/18
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 54回
  • この商品を含むブログ (15件) を見る