SecureZIPの詳細...なんじゃこりゃ

SecureZIPという暗号ソフトおよびそのフォーマットについて調査したので、その結果を報告する。SecureZIPの技術よりも、その歴史のほうに情けない部分があるので、念入りにまとめたつもりだ。

もともと、圧縮ファイル形式のZIPは、Phil Katz氏が開発したものだった。氏は、PKWARE社を設立し、このファイル形式を商業に利用するとともに、ファイル形式に関する情報を公開し、ファイル形式自体の普及にも貢献した。
やがて、ZIPファイル形式はファイル圧縮形式としては、デファクトスタンダードと呼ばれる地位を獲得するに至る。

ZIPファイル形式には、以前からパスワード機能が付け加えられていた。が、このパスワード機能はそれほど強固なものではなかったため、時代の要請もあり、後のバージョンで強化されていくことになる。
そして、2003年になって、PKWARE社は暗号機能を強化したSecureZIPを発表した。SecureZIPはAESに加え、RSA暗号、すなわち公開鍵暗号を採用しており、電子署名などの機能も使えるようになっていた。ところが、PKWARE社はこの新ファイル形式について、十分に情報を公開しなかったため、以前から互換ソフトを開発していたWinZip社は、この新ファイル形式とは互換性のない、独自の、しかしZIPベースの暗号ファイル形式を開発することとなった。
この結果、同じzipという拡張子を持ちながら、従来型の暗号形式、PKWARE社の暗号形式
、WinZip社の暗号形式の3種類の暗号化ZIPファイル形式が存在することになってしまった。

これがユーザーを混乱に落としいれ、ユーザーのZIP離れを引き起こしてしまう。
そこで、2004年、PKWARE社とWinZip社の間で話し合いが持たれ、PKWARE社は自身の暗号コードをWinZip社に提供すること、また、WinZip社の公開していたWinZip社形式の暗号ファイルをPKWARE社も利用すること、で合意に至ることとなった。
ファイル形式は3種類のままだが、PKWARE社およびWinZip社の圧縮ソフトはともに、いずれの形式の暗号化圧縮ファイルでも展開できるようになったのである。

なお、これらに加え、WinZip社は、自社のファイル暗号化形式を早々に公開していたため、オープンソースのファイル圧縮ソフト、7-Zipがこの暗号化形式に対応している。
オープンソースでZIP形式の互換ソフトを開発し続けているinfo-ZIPもWinZip社のファイル形式に対応しようとしているのだが、こちらは開発資源不足で、2007年8月現在、未対応のままとなっている。

また、PKWARE社の公開資料
http://www.pkware.com/documents/casestudies/APPNOTE.TXT
を流し読みしてみたのだが、この資料だけでPKWARE社の暗号形式すなわちSecureZIP互換のソフトが開発できるのかどうかはよくわからない。
とりあえず今のところ、SecureZIPのファイル形式に対応したオープンソースのソフトウェアは存在しないようだ。

これらの資料をまとめるにあたり、Slashdot(本家 http://it.slashdot.org/article.pl?sid=04/01/26/1121227)の議論が非常に参考になった。
この流れの中で、システム設計の観点からは、暗号化ZIPのように単一のアプリケーションで、ファイルのアーカイブ、圧縮、暗号化を行うよりも、個別の単機能ソフトを組み合わせたほうがデバッグがしやすく、モジュールの交換もしやすくていいのではないかという意見があった。要はUNIXでありがちな、tar | bzip(あるいはgzip) | gpg のことだ。
Microsoft Windowsや、MacOSXなどで採用されているので、近年中にZIPファイル形式がデファクトスタンダードの地位を下りることがあるとは思えないが、UNIX型のほうが洗練されていると自分には思えたことを、付け加えておく。

余談ながら、ZIP形式のファイルをGnuPGで暗号化するのは、あまり洗練されたやり方ではない。ZIP形式では一時ファイルなしでは圧縮ファイルを作成できないため(もちろん圧縮された結果があまりに小さい場合はメモリ上で済ませることもできるが、これは本質的な解決ではない)、パイプライン処理でGnuPGに結果を渡しても、マルチプロセスの恩恵はほとんど得られないし、ディスクのどこかに一時ファイルの残骸が残る結果にもなりかねない。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

なるほど(納得、参考になった、ヘー)

この記事へのコメント

2007年08月17日 12:10
相変わらずの作者の幅広い情報公開には脱帽です。株、歴史、動物園、秋葉原等。
ところで、ペンタックスの件、どうなりました?
gpg user
2007年08月18日 01:40
SecureZIP で作成した暗号化書庫ファイルの互換性について少し補足しますと、
現在 WinZip で復号できるのは共通鍵を使用した暗号ファイルのみです。
X.509ベースのデジタル証明書を使用して暗号化した物は復号できません。
当然、署名の検証も不可です。
共通鍵を使用しても、書庫内部のファイル名を暗号化してある場合は復号できません。

あと、暗号や署名以外でも、ヘッダ部分が微妙に拡張されています。
SecureZIP で内部ファイル名を UTF-8 で保存すると、WinZip では読めません。

デジタル証明書は、電子メールの S/MIME で使用している物をそのまま利用できます。
kazuyoshikakihara
2007年08月19日 21:07
毎度、フォローありがとうございます。
圧縮形式のzipの利点は、相手もzip対応のソフトを持っている可能性が極めて高い(Windows XP標準ですし)というところだと思います。
それが、お互いにSecureZIPを持っていないと使えないファイル形式になってしまうと、いくら規格内だといっても、事実上、zipではなく新しいファイルフォーマットです。

0から新フォーマット(しかも旧来のzipと紛らわしい)で勝負するとは、PKWARE社はどういうビジネスモデルを考えていたのでしょうかね? そちらに興味があります。

この記事へのトラックバック