検索してみると、zipパスワードはあまり意味がない(たしかに調べると解析ツールがたくさん出てきます)、と、解説されているところを見かけるのですが、例えば、以下のようなソフトを使うとzipパスワードと何が違って安全性が増すのでしょうか?(あるいは、変わらないのでしょうか?そもそもファイルのパスワードだと、総当りでいずれは復号化されてしまうように思うのですが(Webシステムなら、何回失敗したら☓、とかあるように思いますが))
『アタッシェケース』
http://www.forest.impress.co.jp/lib/sys/file/fileuty/atasshecase.html
パスワードを設定するものはパスワードがわかってしまえば
どんな暗号化も無意味です。
パスワードの文字列が短いとどれでも駄目ですね。
パスワードを総当たり法で調べる方法以外に
ファイルの暗号化形式を利用して、ファイルを復号する方法があります。
パスワードがなくても、ファイルの中身を見ることが可能なのです。
だから暗号化形式に強度の強いものを用いているものほど安全だということです。
パスワードと暗号化形式を分けずに考えると混乱しますよ。
作者ではないので個人的な推測です。
一般的なパスワードでは、英数字62文字+いくつかの記号で、
パスワードとしては記憶の問題もあるのであまり長くはできませんね。
なのでCPUパワーさえあれば総当たりで
そのうちパスワードが見つかってしまう可能性はあります。
パスワード管理ソフトなんてのがあるので、
とんでもなく長いパスワードを使って
そういうものに登録するということもできますが、
そういうのに登録すること自体リスクです。
ファイルならそのサイズがどれだけ大きくても
どのファイルが暗号化復号化のキーファイルなのかを
覚えるだけですむので、普通にパスワードと覚える感覚で
覚えておけばいい、
つまり総当たりもされにくくなるし、扱いやすい
ということなのかな、という感じです。
結局総当たりで解かれる可能性はあります。
いかにその可能性を減らすかってところですね。
どんなソフトを使用して暗号化しても総当りをされたらいつかは複合化されます
ただし複合化のキーをどうにかして伸ばしたりして見つかりにくくしています
なので[アタッシュケース]を利用すると普通のzipの暗号化よりは強固になるけどAESに対応したwinzipなどを使用すれば大体一緒という認識でいいかと
実際zipであってもパスワードを20桁の記号込みでのランダムにすれば解凍はほぼ不可能だと思いますが
ZIPに使用されている暗号化方式(PKWARE Encryption)は今ではそんなに強力なものではありません。
またファイルにパスワードをかける方式なのでパスワードを総当りして解読するという方法を高速で行えるので解読されやすいです。実際に出回っているツールはこの方法を使っています。
こちらが参考になると思います。
http://d.hatena.ne.jp/retsu0708/20080120/1200783897
一方アタッシュケースの場合はAESを使っていますのでパスワードから生成される鍵が256ビットと長いのでより解読されにくい方式になります。
アタッシェケース
http://homepage2.nifty.com/hibara/software/atcs.htm
暗号化アルゴリズムには、2000年10月にアメリカ政府標準技術局(NIST)によって、次世代暗号化標準 AES(Advanced Encryption Standard)として選定された“Rijndael(ラインダール)”を採用し組み込んでいます。 AESではブロック長が128ビット固定となっていますが、アタッシェケースではRijndaelの仕様を採用し、鍵、ブロック長ともに256ビットになっています。
なお、乱数による初期化ベクトル(IV)を生成してからCBCモードで暗号化し、第三者による解析も防ぐよう工夫されています。
http://lastbit.com/password-recovery-methods.asp#Brute%20Force%20Attack
ZIPでも10桁で大文字小文字+数字交じりのパスワードだったらほぼ解除されないのでは。
総当たり攻撃に対しては暗号方式よりもパスワードの桁数に応じて復号化されやすさが決まりますから、ZIPもアタッシュケースもあまり変わらないと思います。
ただし、ZIPの場合は復号ツールが容易に入手できるのに対して、マイナーな暗号方式では復号ツールを自作する必要がありますから、素人・一般ユーザが総当りで複合できるというリスクは考慮しなくて済むという利点があります。
そのため、リスクを低減させる意味でマイナーな圧縮ソフトを使っているケースはよく見かけます。
ただし、20桁以上であればZIPでも心配ないと思いますが。
最重要データであれば、一度パスワード圧縮したものを再度別のランダムなパスワードで圧縮すれば、現実的には復号は不可能と考えてよいでしょう。
余談ですが、パスワード付きの圧縮ファイルをメールが届き、その直後にパスワードを知らせるメールが届くことがありますが、笑ってしまいますよね。
そちらの心配をする方がはるかに現実的だと思います。
(せめてランダムな文字列を送って、その何行目から何文字とかにしてほしい。)
zipが暗号解読に弱いという誤解は、古いバージョンにおいて、実際に穴があったための伝説です。実際に、zipのパスワードを復元できていました。
現状のzipを使う限りにおいては、他の暗号化ソフトに比べて現時点において意味のある差はありません。現代のzip復号ソフトは、パスワードの総当りを行っています。この際辞書を使っていますから、かんたんなパスワードは割りと容易に破られてしまいます。
他の暗号ソフトが強い理由のひとつは、こういった総当り用のソフトが出回っていないということもあります。
パスワードを設定するものはパスワードがわかってしまえば
どんな暗号化も無意味です。
パスワードの文字列が短いとどれでも駄目ですね。
パスワードを総当たり法で調べる方法以外に
ファイルの暗号化形式を利用して、ファイルを復号する方法があります。
パスワードがなくても、ファイルの中身を見ることが可能なのです。
だから暗号化形式に強度の強いものを用いているものほど安全だということです。
パスワードと暗号化形式を分けずに考えると混乱しますよ。
zip 形式で使われる暗号化方式のうち、Windows で標準で対応している「Traditional PKWARE Encryption」に関して、下記のページが詳しいです。
暗号化 ZIP 書庫 の評価 - EverQuestできない日記
暗号化方式そのもの脆弱性として、暗号化前の内容の一部が分かっている場合、短時間で解読出来る、という問題がありますが、実際には、暗号化の前に圧縮処理が入るので、暗号化前の内容が分かる、という事は、普通はありません。もし、非圧縮で暗号化されている場合、例えば、JPEG ファイルの先頭数バイトの内容は、これこれ、こういう内容が入っているだろう、という推定が出来ますが、ZIP で圧縮した結果がどうなるかは、ファイルの中身で変わってしまうので、この手法で短時間に解読する事は不可能、ということになります。
それと、暗号化に使う乱数生成に問題がある実装があるので、そういったソフトを使って ZIP を暗号化した場合には、短時間で解読される可能性があります。前述のページでは 7-zip にはその問題が無いと書かれているので、同じ暗号化方式でも 7-zip で暗号化した場合にはこの問題は発生しません。
上記2点が、ZIP の暗号化に関する弱点と呼ばれるものですが、逆に言うと、
・必ず、ファイルは圧縮する。
・乱数の問題が無いソフト(7-zip)を使う。
の2点が守られれば、それなりの安全性を保つ事ができることになります。
その「それなり」というのは、「96bit の鍵長を持つ暗号」という意味になります。
究極的には、96bit の鍵、つまり、79,228,162,514,264,337,593,543,950,336 通りの鍵を全て試せば、暗号は解けます。ただ、この鍵長は、現在では余裕を持って十分な長さか? というと微妙な気がします。個人的には、十分な長さだけど余裕はさほど無い、と思います。
10 年ぐらい前に、56 bit の DES が1日で解読されました。56 bit の鍵という事は 72,057,594,037,927,936 通りで、96 bit の鍵は 56 bit の 1,099,511,627,776 倍になります。DES が解読されたのと同じ条件なら、およそ 30 億年かかることになります。もちろん、10 年前よりコンピュータの能力が高くなっているし、いくつものコンピュータを並列化して計算すれば、もっと早い時間で解けることになりますが、それでも、生きている間に解けるかどうか、ということになります。
これに対して、7-zip や、他の新しい ZIP 用のソフトでも、暗号化処理に AES を使える物があります。AES は最低でも 128 bit の鍵長なので、340,282,366,920,938,463,463,374,607,431,768,211,456 通りの鍵があり、96 bit の鍵の 4,294,967,296 倍になります。ここまでくれば、「余裕を持って十分」と言えるでしょう。
まとめると、
といったことになります。
ただ、これはあくまで、パスワード自体が十分に長く、推測されない、安全なパスワードであることが条件です。
混乱しやすいのは、暗号化処理にとっての鍵は、パスワードそのもので無く、パスワードから計算するものなので、たとえ、パスワードが1文字でも、鍵長は、その暗号化が要求する長さ、例えば 128 bit の AES であれば、128 bit の鍵データが作られます。鍵を総当りすると、128 bit まるごと試すしか無いですが、その鍵の元になるパスワードが 4 文字の小文字英数字ならば、1,679,616 通り試すだけで済みます。どんなに安全な暗号化処理も、鍵の元になるパスワードがダメなら、簡単に解読できます。
コメント(0件)