こんにちは、LRM株式会社の井崎です。
今回はZIPパスワードのお話です。
みなさんは、ファイルをZIPパスワード化するとき、パスワードをどのように設定しているでしょうか。
もちろん、推測しやすいものや、長さが極端に短いものは好ましくありません。だからと言って、極端に長い文字列を設定するのもナンセンスです。
実は、ZIPのパスワードは、知識がない人でも割と簡単なツールで総当り探索ができてしまいます。どれくらいの長さのパスワードが適切なのか、実際に探索しながら試してみましょう。
定番ソフトでZIPパスワードは探索可能
ZIPパスワードの探索には、圧縮解凍ソフトの定番「Lhaplus」を利用します。みなさんも一度は使ったことがあるのではないでしょうか?実はLhaplusの中には、ZIPのパスワード探索機能が入っています。探索範囲(文字列)を指定すると、自動で総当り攻撃を行い、パスワードを見つけてしまいます。
もちろん、パスワード探索専用のソフトと比べると、探索速度は劣ります。しかし今回のブログでは、身近で誰でも手に入れられる簡単なツールを使って、どのぐらいでパスワードが破られてしまうのかを、試してみることにします。
今回の実験には、4ケタ(ingj)、5ケタ(k78qd)、6ケタ(jpoaru)のパスワードをかけたZIPファイルを1つずつ、合計3つ用意しました。パスワードに用いた文字種は小文字アルファベットと数字です。
さて、LhaplusのZIP探索機能は、どれぐらいの時間でこれらのZIPファイルのパスワードを見つけ出すことができるのでしょうか。
※ファイル名にパスワードを記載することは、特殊な事情がない限り絶対に避けて下さい。
4ケタのパスワードを解析
まずは4ケタのパスワードを設置したZIPファイルを解析してみます。探索範囲を指定して、開始です!
どれぐらいかかるのかな~と考えようとしたその瞬間に終わりました。はやい!
かかった時間は約5秒。実際には、停止してから数秒後にスクリーンショットを取ったのでもう少し早いです。たった5秒の間に853,707個のパスワードを探索してくれました。
5ケタのパスワードを解析
次は5ケタのパスワードです。先ほどと同じ設定をして、開始します。
約1分30秒後に、探索が終了しました。これも早い…
これらの結果からわかるように、小文字アルファベットと数字からなる4ケタないしは5ケタのパスワードは、身近なソフトを使ってほんの数分で解読されてしまいます。
6ケタのパスワードを解析
では、最後に6ケタのパスワードを試してみましょう。同様に設定をして、スタートします。
時計を見てもらえば分かりますが、およそ55分後、1時間もかからないうちに解析が終了してしまいました。
6ケタのパスワードは、お昼ごはんに行っている間に破られてしまうということです。探索数は1,253,747,060回です。
パスワードは英数記号混在で8ケタ以上がベター
さて、パスワードに用いる文字種を「小文字アルファベットと数字」に限定すると、文字種の数は0~9とa~zで36種類なので、簡単な数学の計算から、4ケタのパスワードは高々1,727,605回、5ケタなら高々62,193,781回、6ケタなら2,238,976,117回探索すれば、確実にパスワードが分かってしまうことになります。
探索の速度は利用しているパソコンの性能にも依ると思いますが、私が利用しているパソコン(Windows7,COREi3,RAM4GB)のスペックでは、Lhaplusは1分間に約23,000,000回の探索を行ってくれました。
簡単な計算により、4ケタなら0.075分(約4.5秒)、5ケタなら2.7分、6ケタなら97分で必ず見つかってしまうことになります。ちなみに7ケタなら3500分(約2.5日)となります。
以下に、用いる文字種とパスワードの長さによって、解析にどれ位時間がかかるのかを表にしてみました。時間の計算はあくまで、今私が利用している普通のパソコンと、普通のソフト(Lhaplus)で解析を行った時の速度を元にしています。
計算性能の良いパソコンを利用したり、複数のパソコンを利用して同時に解析をしたり、解析アルゴリズムを改良したり、攻撃の手法を工夫したりすると、これよりも更に短い時間でパスワードが分かってしまうので、注意して下さい。
この表でお伝えしたいのは、普通の人が、普通の会社にある、普通のパソコンを利用してでも、悪意さえあれば、これだけの時間で簡単に解読できてしまうということです。
繰り返しになりますが、これはあくまで普通のパソコンで探索した結果であり、実際はこれよりも早く解読することが可能です。それを踏まえたうえで、パスワードは最低でも英数記号混在で8ケタ、可能であれば10ケタ程度を設定するのがベターだと考えられます。