※本記事ではパスワード付きZIP(暗号化ZIP書庫)について自分なりにまとめて情報を書いていましたが、自力で検証しておらず結局参考サイトの孫引きにしかなっていなかったので、解説は抹消しました。パスワード付きZIPの安全性については下記サイトを参照ください。
暗号化 ZIP 書庫 の評価 - EverQuestできない日記
道すがら講堂: パスゲッター - ZIPなどのパスワードをGPUも使って超高速解析!
PikaZip活用法 1 (基本編)
スラッシュドット お安い GPU で強固なパスワードも用無しに
新しい暗号化方式に対応しているZIPソフトウェアの例:
7-Zip (AES-256方式に対応)
http://sevenzip.sourceforge.jp/howto/zip-password.html
以下は自力でやってみた検証の記録です。
■既知平文攻撃を実際にやってみる
ZIPファイルに対して、既知平文攻撃をするツールPkCrackを使って適当なサンプルZIPを解読してみる(PkCrackはCardWareなので、利用にあたってちゃんと絵葉書送りました)。
1)「重要データ.xls」「plaintext.txt」が入ったフォルダをWindowsXP標準の「圧縮(Zip形式)フォルダ」でzipにする(ファイル名test.zip)
2) test.zipに難解なパスワードを設定。ここでは、通常機械的な手段では破られないと思われる強度の長いランダム文字列を設定。(この検証をしたときはtraditional PKWARE encryptionのパスワードの長さについてあんま正しく把握してなかったので20桁のパスワードを設定してしまっていたが、たぶん96bit最大長ぶんの強度があったと思われる)
3) zipに同梱した「plaintext.txt」の平文が分かるという想定で、「plaintext.txt」をWindowsXP標準の「圧縮(Zip形式)フォルダ」でzipにする(パスワードはつけない、ファイル名「plaintext.zip」)
4) PkCrack for windowsで下記コマンドラインを実行
pkcrack -C test.zip -c plaintext.txt -p plaintext.txt -P plaintext.zip -d target.zip
コマンドラインの意味は
-C 暗号化ZIPファイル名
-c 暗号化ZIPファイル内にある平文が分かっているファイル名
-p 平文のファイル
-P 平文が分かっているファイルのZIP圧縮したファイル名(暗号化されていないZIP)
-d 出力するZIPファイル名
結果:
・plaintext.txtの長さにより、かなり解析時間が異なる(データサイズが小さいと数日コースっぽい)が、8KBぐらいのテキストデータの平文ファイルだと数十分で、暗号化が解除されたtest.zipがtarget.zipとして出力される(解凍すると「重要データ.xls」「plaintext.txt」が出てくる。パスワードが分かる訳ではなく、パスワード自体は不明のまま暗号化が解除されたzipが手に入る)。
※自分が参照を許可されていない暗号化ZIP書庫に対して本ページの手法で解読を試みることは不正な行為になると思われます。本テストはあくまで暗号化ZIPファイルに含まれるファイルのうち、圧縮前・暗号化前の生ファイルが分かってしまう場合の危険性を検証するものです。