仕事をしていると、何らかの形でパスワード付きの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+
- 作者: Andrew Lockhart,渡辺勝弘,鶴岡信彦,黒川原佳
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/06/18
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 54回
- この商品を含むブログ (15件) を見る