DecoyZip(仮題)とは

開発予定のもので出てくるDecoyZip(仮題)の解説です。

暗号化zipファイルを盗まれた場合、時間さえあれば総当りでパスワードを解読されてしまします。
仮に全ての有効なパスワードを試行するのにかかる時間がTならば、必要な時間は最大でもTだけで済みます。(当たり前)
それを無理やりT以上の時間にしてしまおうというのが、DecoyZip(仮題)の考え方です。
要は「一緒に囮の暗号化zipをx-1個追いとけば、平均してT*x/2の時間かけさせれるよね多分」というお話です。

囮のファイルには設定できる最長のパスワードをセットしておきます。*1
元々秘密情報を保存していたファイルを仮に"yamada_hanako.zip"とするならば、同じフォルダに

"yamada_tarou.zip"
"yamada_kaoru.zip"
"yamada_takuya.zip"
"yamada_tetsuya.zip"
"yamada_ai.zip"
"yamada_aiko.zip"
"yamada_kame.zip"
"yamada_jirou.zip"
"yamada_sakuya.zip"
"yamada_nekotarou.zip"
"yamada_kitarou.zip"
"yamada_arisu.zip"
"yamada_hiroki.zip"
"yamada_kouzou.zip"
"yamada_mogera.zip"
〜略〜
"gotou_maki.zip"
"gotou_mai.zip"

というような囮ファイルを大量に置いておくのです。
このようにしておけば、仮にUSBメモリ等に保存していたものを紛失した場合に、やや運次第にはなるものの生きてる間にパスワード解析されるのを免れるかもしれません。*2

勿論容量を各zipを似通ったサイズにするとか、沢山の名前を用意するとか、各zip内に入ってるファイル名を上手く隠蔽する*3とか、タイムスタンプをどんな状態にすべきか*4とか、OSのアクセス履歴*5の隠蔽方法とか、実ディスク容量をどう減らすか*6など、いくつか気をつける点があります。
手動で同じ事は可能ですが、その辺を自動化させるツールを作ろうと思ったのがDecoyZip(仮題)です。

実はこれ、以前途中まで製作してたんですよね。
手っ取り早く7-zipコマンドラインで呼び出すモノを.NET系言語で作ってたのですが、以前のPCクラッシュで製作途中のモノが消えてしまいました……。
優先度は今の所低いですが、難易度も低いので気が向いたら再度製作してみようと思います。

*1:もちろん"ZZZZZZ...ZZZ"みたいなパスワードでは辞書攻撃の類に脆弱なので設定しません。

*2:勿論本命の"yamada_hanako.zip"にも十分な強度のパスワードを設定しないといけません。"abc"といった脆弱なパスワードにしていたら、解析する側に「とりあえず3文字まで総当りする設定で、全ファイルを順番に解析」とされただけであっさり解析完了してしまいます。

*3:仮に"yamada_hanako.zip"にだけ"passwordmemo.txt"が入っていたら、そのファイルに専念して解析される危険があります。

*4:"yamada_hanako.zip"だけ更新日時が新しく、他が全部同じタイムスタンプだったら囮がどれか丸分かりですね。

*5:「最近使ったファイル」の情報等に"yamada_hanako.zip"だけ残ってたらバレバレです。

*6:全部が小容量でもクラスタギャップの総合計が大変な事になる事もあります。フォルダ直下に置いてあればエクスプローラー等で表示するのにも時間がかかるでしょう。