機能と仕様

Vault-ZIP が何をするか、どこまで確かめたかを、具体的に書いたページです。数値は開発用の PC で測ったもので、環境によって変わります。

ZIP を作る

暗号の方式AES-256(WinZip AES 形式)。鍵はパスワードから PBKDF2 で作り、ファイルごとに改ざんの検出用の値(HMAC)を付けます。古い ZipCrypto 方式では作りません。
パスワード新しく作る(長さと文字の種類を設定で決める)、決めておいたものを使う、毎回入力する、付けない、から選べます。作ったパスワードは台帳に記録します。
作った後の確認書き終えた ZIP を最後まで読み直し、すべてのファイルが元と同じに取り出せることを確かめてから完成にします。完成した ZIP の SHA-256 も記録します。
ファイル名UTF-8 で書きます(UTF-8 であることを示す印を付けます)。名前は NFC にそろえるので、Mac で作った名前も Windows で同じに見えます。
個別に圧縮選んだファイルやフォルダーを 1 つずつ別の ZIP にします。
上書きしない同じ名前のファイルがあるときは、名前に (2) を付けます。既存のファイルを上書きするのは、設定で選んだときだけです。

展開する

形式ZIP(Deflate、Deflate64、BZip2、LZMA、XZ、Zstandard、PPMd、古い PKZIP 1.x の方式、AES-256、ZipCrypto)、7z(暗号化したヘッダーを含む)、RAR(1.5〜7、RAR5、暗号化、ソリッド)、tar と tar.gz・tar.bz2・tar.xz・tar.zst、単体の gz・bz2・xz・zst、CAB、MSI、自己展開形式(7z、ZIP、RAR)。
形式の見分け方拡張子ではなく、ファイルの中身で見分けます。拡張子が違っていても展開できます。
外部ツールISO、LZH、ARJ、NSIS、Inno Setup などは、7-Zip などを設定で有効にしたときだけ、そのツールで展開します(既定はオフ)。
台帳のパスワードVault-ZIP で作った ZIP は、台帳に記録したパスワードで開きます。
改ざんの検出AES で暗号化した ZIP は、全ファイルの HMAC が合ったときだけ成功にします。合わなければ、途中のファイルを完成品として残しません。HMAC が合うことは「暗号化したデータが変わっていない」ことを示すもので、作った人を証明するものではありません。

ファイル名の扱い

どの OS で作った ZIP を、どの OS で展開しても、同じフォルダーの形になることを目指しています。

悪意のある圧縮ファイルへの備え

次のものは、展開の前か途中で止めるか、無害な形にします。どれも自動テストで毎回確かめています。

パスワードの台帳

保存SQLCipher(AES-256)で暗号化したデータベース。鍵は Windows の資格情報マネージャーに保存します。ポータブル版は、利用者が決めたパスフレーズで守ります。
記録する内容ZIP や PDF の名前、作った日時、パスワード、メモ、元のファイルの一覧。
表示とコピーパスワードは、「表示」を押したときだけ画面に出します。表示の前に Windows Hello などの本人確認を求められます。コピーしたパスワードは、Windows のクリップボード履歴(Win+V)とほかのデバイスへの同期に入らないようにし、しばらくすると消えます。その間に別のものをコピーした場合は、そちらを消しません。
画面に写さない設定で、パスワードを表示しているウィンドウを、画面共有・録画・スクリーンショットに写さないようにできます(既定はオフ。Windows 10 バージョン 2004 以降)。
備え回復キー、暗号化したバックアップの書き出しと読み込み、自動バックアップ。読み込みに失敗したときは、今の台帳と鍵をそのまま残します。
版をまたいだ読み込み台帳の形式を新しくするときは、先に写しを作ります。新しい版で作ったデータを古い版で開いたときは、書き換えずに止めて知らせます。

PDF の暗号化

方式AES-256(PDF 2.0 の方式、R6)。開くためのパスワードを付け、台帳に記録します。
確かめたビューアーpdfium(Chrome、Edge、Android の表示の部品)、pdf.js(Firefox の表示の部品)、qpdf で、正しいパスワードで開けること、違うパスワードを拒むこと、日本語のテキストが元と同じに取れることを確かめています。
作った後の確認暗号化した PDF を読み直し、中身が元と同じかを確かめます。

何のファイルか調べる

拡張子ではなく中身から、ファイルの種類と、ふつう何のアプリで開くかを調べます。ファイルを開いたり実行したりはしません。1 ファイルあたりおよそ 0.1 ミリ秒です(作者の PC、SSD)。結果は推定で、安全かどうかの判定ではありません。

通信

利用者が頼んだときだけ、外とつながります。更新の自動確認、利用状況の送信、ライセンスの確認のための通信、アカウントはありません。

ほかのソフトとの互換性

Vault-ZIP で作った AES-256 の ZIP を、次のソフトで開けることを確かめています。

ソフト確かめたこと
7-Zip 26.05パスワードで開け、圧縮の強さ 3 通りで全ファイルが元と同じ(SHA-256 で比較)。日本語の名前と入れ子のフォルダーも正しく出る。
Windows 11 のエクスプローラーパスワードを聞かれ、展開できる。日本語、全角かっこ、絵文字の名前とサイズが正しく見える。
Windows の tar.exeパスワードを渡して、全ファイルが正しいサイズで展開できる。

逆に、7-Zip 26.05 で作った 7z(暗号化したヘッダーを含む)、自己展開形式、各種の方式の ZIP、tar を Vault-ZIP で展開し、全ファイルが元と同じことを確かめています。

Lhaplus、CubeICE などでの確認は、これから行います。

性能

作者の PC(Ryzen 5 5600X、メモリ 32 GB、NVMe SSD と 5,400 rpm の HDD)での測定です。圧縮の時間には、作った後の確認の読み直しを含みます。

測ったもの結果
5 GB のファイル 1 つ(SSD、AES-256)圧縮 約 116 MB/秒、展開 約 267 MB/秒
メモリの使用量(ファイル 1 つ、100 GB まで)13 MB 前後で、大きさによって増えない
10 万件の小さなファイルメモリ 100 MB 以下で完了
右クリックから開く小さな画面約 0.4 秒で表示

コマンドライン版(RPA 向け)

組織向けの管理(ライセンスが必要)

配布物

動作環境

WindowsWindows 10 以上(64 ビット、x64)。Windows 11 では新しい右クリックメニューにも出ます。ARM 版 Windows では確かめていません。
AndroidGoogle Play
言語日本語(英語は準備中)