ユーザーマニュアル

GravesZIP v1.0.0 — アプリケーションに同梱されているものと同じマニュアルです

1. このマニュアルについて

このマニュアルでは GravesZIP 1.0 について説明します。扱える形式、暗号化の動作、保護するものとしないもの、そして画面のあらゆる部分の使い方です。動作しない機能については一切書いていません。予定はあるものの、まだ実装されていないものは、その旨を明記して「画面構成」の末尾に挙げています。

2. GravesZIP とは

アーカイブマネージャーです。ファイルをアーカイブにまとめ、それを再び展開し、まとめるものを暗号化できます。

圧縮と暗号化は、ここで独自に実装し直すのではなく、長い実績のあるオープンソースライブラリ SharpZipLib で行っています。GravesZIP が作成するアーカイブは普通の ZIP ファイルです。暗号化していないものは、Windows や macOS に組み込まれたアーカイブ機能を含め、どんなものでも開けます。暗号化したものは、ZIP の AES-256 暗号化を理解するプログラム(7-Zip、WinZip など)ならどれでも開けます。OS 組み込みの ZIP ツールの中には、Windows 自身の古いバージョンのものを含め、AES を理解せず、どのプログラムで作った暗号化アーカイブも開けないものがあります。その場合は GravesZIP か、上記のいずれかのプログラムを使ってください。

ネットワーク接続は行いません。プライバシーに関する声明をご覧ください。

3. 形式

このリリースが扱うのは ZIP です。

zip読み込みと書き出しに対応。AES-256 で暗号化されたアーカイブも含みます。

一覧はこれですべてで、意図的に短くしています。ZIP は、GravesMail のパスワード保護されたメッセージが届くときの形式であり、ほかのどのアーカイバーでも読める形式です。そして、1 つの形式をきちんと扱うことには、いくつもの形式を中途半端に扱うことよりも価値があります。ほかの形式は今後追加します。それまでは、このマニュアルで対応をうたうことはありません。

7z、RAR、tar などには、まだ対応していません。GravesZIP は 7-Zip を含まず、インストールされている必要もありません。

4. パスワード保護されたメッセージを開く

GravesMail からのパスワード保護されたメッセージは、protected-message.zip という名前の添付ファイルとして届きます。GravesZIP で開き、送信者から別の手段で伝えられたパスワードを入力してください。パスワードは電話やテキストメッセージで伝えるもので、そのメール自体に書いてはいけません。

中には次のものが入っています。

message.htmlメッセージです。開くと本文を読めます。
attachment-01, attachment-02, …メッセージに添付されていたファイル。中立的な名前が付いています。

添付ファイルの名前は意図的に変更されています。ZIP は各ファイルの中身を暗号化しますが、名前の一覧は、アーカイブを持っている人なら誰でも読めるままです。そのため、「layoff-list.xlsx」という名前のファイルは、誰かがパスワードを入力する前に、自分が何であるかを明かしてしまいます。本来の名前は message.html に書かれています。

これらを開く際にネットワークに出ていくものは何もなく、GravesZIP も GravesWare もパスワードを目にすることはありません。

5. 暗号化

ZIP にパスフレーズを設定すると、AES-256 で暗号化されます。

ZIP は 2 つの暗号方式に対応しており、その一方は破られています。本来の方式である ZipCrypto は、既知平文攻撃により、普通のハードウェアで数秒のうちに破られます。それにもかかわらず、7-Zip を含むほとんどのツールは、ZIP にパスワードを設定すると既定でこの方式を適用します。GravesZIP がこれを使うことは決してありません。そのための設定もありません。これが正解になる状況は存在しないからです。

暗号化が守らないもの

ZIP は、自身のファイル一覧を暗号化できません。中にあるすべてのものの名前、サイズ、タイムスタンプは、内容が読めなくても、アーカイブを持っている人なら誰でも読めるままです。これは形式の限界であって GravesZIP の限界ではなく、どの ZIP ツールにもこれ以上のことはできません。

名前そのものが機密であるなら、アーカイブにする前にファイルの名前を変えてください。GravesMail が本来の名前の代わりに attachment-01 と書き出すのは、まさにこのためです。

アーカイブファイル自体にも名前、サイズ、更新日があり、いずれも暗号化されません。「resignation-letter.zip」という名前のアーカイブは、それだけでもう多くを語りすぎています。

GravesZIP は、そうでないふりをしません。ファイル一覧を隠した暗号化 ZIP の作成を求められた場合は、読める状態のものを黙って書き出すのではなく、拒否します。

6. パスフレーズ

忘れてしまったパスフレーズは復旧できません

あなたにも、GravesWare にも、誰にもできません。バックドアも、復旧キーも、リセットもありません。失えば、アーカイブは失われます。暗号化とは、そのためのものです。

暗号化アーカイブに入れたからといって、唯一のコピーを削除しようとしているなら、やめてください。

選び方

パスフレーズがセキュリティのすべてです。AES-256 は弱点ではなく、今後も弱点になることはありません。弱点になるのは、推測できるパスフレーズです。

複雑さより長さです。関連のない単語をいくつか並べたものは、文字を置き換えた短い文字列よりも強力で、覚えやすくなります。「correct horse battery staple」は、「P@ssw0rd!」よりもはるかに推測されにくいパスフレーズです。

ほかの場所で使っているパスフレーズを使い回さないでください。アーカイブは、パスフレーズを借りてきた元のアカウントよりも長く残るかもしれず、思いもしなかった場所に行き着くかもしれません。

GravesZIP がパスフレーズを保持する場所

メモリの中に、操作が続くあいだだけ保持し、ほかのどこにも保持しません。ディスクに書き込まれることはありません。「このパスワードを記憶する」オプションは、設計上、存在しません。

この保護の限界については、プライバシーに関する声明をご覧ください。

7. 暗号化は署名ではありません

パスフレーズは、アーカイブを作った人がそのパスフレーズを知っていたことを証明します。その人が誰であったかは証明しません。また、受け取ったアーカイブが、その人が送ったものと同じであることも証明しません。パスフレーズを知っている人なら、同じパスフレーズで同じように開ける別のアーカイブを作れるからです。

暗号化は、内容が読まれないようにするものです。誰が作ったかを確かめることは別の問題であり、このプログラムはそれを解決しません。

8. 安全に展開する

ほかの人から受け取ったアーカイブは、信頼できない入力です。

GravesZIP は、選んだフォルダーの外にはどんなファイルも書き込みません。世の中には「../../.ssh/authorized_keys」のようなパスを格納したアーカイブがあり、不注意な展開ツールは、そのパスが指す場所にそのまま書き込んでしまいます。GravesZIP はこうしたアーカイブをきっぱりと拒否し、該当する項目を飛ばすのではなく展開そのものを中止します。そのため、悪意のあるアーカイブが一部だけ展開されることはありません。

GravesZIP は、展開するものにマルウェアがないかをスキャンしません。それはウイルス対策ソフトウェアの仕事です。

9. アーカイブの検証

ファイル > アーカイブをテスト は、ディスクに何も書き込まずに、すべての項目を展開して、一緒に保存されているチェックサムと照合します。アーカイブが正常であること、暗号化されたアーカイブの場合はパスフレーズが正しいことを確認できます。パスフレーズが必要な場合は入力を求め、入力されたものが間違っていれば、もう一度求めます。

結果は平易な言葉で示されます。すべての項目を検査し、アーカイブは正常である。または、チェックサムと一致しない項目が少なくとも 1 つあり、アーカイブは壊れている。このどちらかです。壊れたアーカイブでも、「選択項目を展開」で一部のファイルを取り出せることがあります。可能であれば、アーカイブを改めて入手してください。

アーカイブがどこから来たか、誰が作ったかは確認しません。

GravesZIP の「アーカイブをテスト」の結果。すべての項目を検査し、アーカイブが正常であることを報告しています。
「アーカイブをテスト」の判定。平易な言葉で示されます。

10. 画面構成

ウィンドウ

アーカイブを開いていないとき、ウィンドウには「開く」と「新しいアーカイブ」のボタンが表示されます。開いているときは、中身が一覧表示されます。各項目の名前とフォルダー、サイズ、最終更新日時が、名前順に並びます。行の横の南京錠は、その項目の内容が暗号化されていることを示します。

アーカイブに対するすべての操作は「ファイル」メニューにあり、同じ操作が右クリックメニューにもあります。ウィンドウ内の任意の場所を右クリックするか、Shift+F10 またはメニューキーを押してください。開いているアーカイブや選択項目が必要な操作は、それがあるまでグレー表示になります。

アーカイブを開く

ファイル > 開く、またはコマンドラインでアーカイブのパスを渡します。GravesZIP を .zip ファイル用のプログラムに設定した場合や、アーカイブをアイコンにドロップした場合も、これと同じことが行われます。Microsoft Store 版は、Windows の「プログラムから開く」の一覧に、.zip ファイル用の候補として表示されます。

一覧は、暗号化されたアーカイブでもすぐに表示されます。これはセキュリティ上の穴ではありません。ZIP の索引は暗号化されないため、名前、サイズ、日付は、ファイルを持っている人なら誰でも読めます。

展開

ファイル > すべて展開 は、すべてを展開します。ファイル > 選択項目を展開 は、選択した行だけを展開します。1 行はクリックで、複数行は Ctrl+クリックまたは Shift+クリックで選択します。フォルダーの行を選択すると、そのフォルダーの中身もすべて一緒に展開されます。

どちらの場合も、ファイルの展開先を選びます。暗号化されたアーカイブがパスフレーズを求めるのは、このときです。パスフレーズが実際に必要になるのは、ここが最初だからです。パスフレーズが間違っている場合、GravesZIP は操作全体を失敗させるのではなく、その旨を伝えてもう一度入力を求めます。

すべての項目の書き込み先を検査し終えるまで、何も書き込まれません。選んだフォルダーの外を指すパスを含むアーカイブは、全体が拒否されるため、中身が半分だけ残ることはありません。

テスト

ファイル > アーカイブをテスト。上記の「アーカイブの検証」をご覧ください。

アーカイブを作成する

ファイル > 新しいアーカイブ。入れたいファイルとフォルダーを追加します。それぞれが名前で一覧表示され、その下に元のフォルダーが示されます。圧縮の強さを選び、必要に応じてパスフレーズを設定します。フォルダーは、その下にあるものすべてを含めて丸ごと追加され、アーカイブの中でも元の名前のままです。

圧縮の設定は、9 段階の目盛りではなく、次の 3 つです。

なしファイルをそのまま格納します。最も高速です。写真、動画、アーカイブの中のアーカイブなど、すでに圧縮されているものに向いています。そうしたものは、圧縮しても小さくならず、時間がかかるだけです。
標準無難な既定値です。
最大より小さく、より遅くなります。「標準」と比べたサイズの差はたいていわずかですが、時間の差はわずかではありません。

普通のアーカイブにするなら、パスフレーズは空のままにします。パスフレーズを入力すると、確認用の 2 つ目の入力欄が現れます。パスフレーズは復旧できないためです。打ち間違えたパスフレーズでは、書き出した瞬間からアーカイブが読めなくなり、あとからそれを知らせてくれるものは何もありません。あわせて、ファイル名は読めるままであるという注意も表示されます。

アーカイブは書き出されるとすぐに開きます。何が入ったかを、信じるのではなく、自分の目で確かめられます。

GravesZIP の「新しいアーカイブ」ダイアログ。ファイルを追加し、圧縮に「標準」を選び、パスフレーズを入力して確認した状態です。
「新しいアーカイブ」。ファイルを追加し、パスフレーズを設定した状態。

閉じる

ファイル > アーカイブを閉じる。パスフレーズは、プログラムの終了まで残るのではなく、この時点でメモリから消去されます。

キーボードショートカット

Windows と Linux では Ctrl を、Mac では Command を使います。

Ctrl+N新しいアーカイブ
Ctrl+O開く
Ctrl+Wアーカイブを閉じる
Ctrl+E選択項目を展開
Ctrl+Shift+Eすべて展開
Ctrl+Tアーカイブをテスト
Shift+F10右クリックメニュー(メニューキーでも開きます)

メニュー自体は、Alt と下線付きの文字で開きます。「ファイル」は Alt+F、「ヘルプ」は Alt+H です。

まだないもの

アーカイブ内のファイルを展開せずに開くこと、既存のアーカイブにファイルを追加すること、ZIP 以外の形式。

11. 言語

GravesZIP は 55 の言語で提供されています。ヘルプ > 言語 から選びます。一覧には各言語がその言語の文字で表示され、現在の言語に印が付いています。

英語(イギリス式およびオーストラリア式のつづりを含む)、スペイン語(スペインおよびラテンアメリカ)、フランス語、ドイツ語(スイスを含む)、ポルトガル語(ヨーロッパおよびブラジル)、イタリア語、ポーランド語、トルコ語、ベトナム語、インドネシア語、フィリピノ語、オランダ語、スウェーデン語、フィンランド語、ルーマニア語、クロアチア語、ボスニア語、セルビア語(ラテン文字およびキリル文字)、マレー語、スワヒリ語、ヨルバ語、イボ語、ウズベク語、ギリシャ語、ロシア語、ウクライナ語、簡体字中国語、繁体字中国語(香港)、日本語、韓国語、タイ語、ヒンディー語、ベンガル語、タミル語、パンジャーブ語、マラーティー語、ネパール語、グジャラート語、オディア語、テルグ語、カンナダ語、マラヤーラム語、アムハラ語、アラビア語(エジプトを含む)、ペルシア語、ウルドゥー語、シンド語、ウイグル語。

選択した言語は、GravesZIP を再起動すると有効になります。これは何かの制約を回避しているわけではありません。ウィンドウは作成される時点で言語を読み込み、左から右か右から左かという向きもその時点で決まります。そのため、すでに表示されているウィンドウの言語を切り替えると、翻訳が半分だけで向きも逆というウィンドウが残ってしまいます。

言語を選択するまでは、GravesZIP はオペレーティングシステムの言語に従います。

アラビア語、ペルシア語、ウルドゥー語、シンド語、ウイグル語では、インターフェイスが右から左に配置されます。アーカイブの内容は反転しません。「docs/report.txt」のようなパスは、どの言語でも向きが変わりません。区切り文字は「左側が右側を含む」という意味を持つからです。どの文字体系のファイル名やフォルダー名も、一覧の中では正しく表示されます。

12. アクセシビリティ

GravesZIP は、画面を見なくても使えるように作られています。

スクリーンリーダー

操作できるコントロールにはすべて、スクリーンリーダーが読み上げられる名前が付いています。「GravesZIP について」画面の文書パネルも同様です。これは目視ではなく、ビルドのたびに自動で検査されます。読み上げられないコントロールがあれば、ビルドは失敗します。

キーボード

メニューには Alt キーと下線付きの文字でアクセスでき、矢印キーで項目を移動できます。ダイアログは Escape キーで閉じ、既定のボタンは Enter キーで実行されます。

言語メニューは、ドロップダウンリストではなくラジオボタン形式の項目になっています。スクリーンリーダーが、どの項目にチェックが付いているかを読み上げるからです。これにより、目の見えないユーザーは現在有効な言語を推測するのではなく、耳で確認できます。

色とコントラスト

GravesZIP は GravesWare の配色を採用しており、ライト版とダーク版がシステムのライト/ダーク設定に従って切り替わります。どちらの配色でも、すべてのテキストが WCAG AA のコントラスト基準である 4.5:1 を満たしています。変更によってこの基準を下回るものが出た場合は、自動テストがビルドを失敗させます。色だけで伝えている情報はありません。暗号化された行には南京錠が表示され、スクリーンリーダーは「暗号化」と読み上げます。

システムがハイコントラストに設定されている場合、GravesZIP は独自の配色を使わず、システムの標準テーマをそのまま使用します。その配色は、必要があってお客様が選んだものです。その選択の上から自分の色を塗り直すアプリは、自らを読みにくくしていることになります。

サイズ

ボタンとテキストフィールドの高さは 44 ピクセル以上です。これは、ポインターでも、指でも、震えのある手でも無理なく操作できる最小の大きさです。GravesZIP は Windows のディスプレイの拡大縮小に対応していることを宣言しているため、150% や 200% でも引き伸ばされてぼやけることなく、鮮明に表示されます。

13. サポート

GravesWare, LLC
support@gravesware.com

このアドレスは「GravesZIP について」のページ(ヘルプ > GravesZIP について)にも記載されています。そこにある「サポートにメール」ボタンを押すと、アドレスとお使いのバージョンが入力された状態で、お使いのメールソフトが開きます。お客様が送信するまで、何も送信されません。

お使いのバージョン(「GravesZIP について」画面に表示されます)とオペレーティングシステムをお知らせください。暗号化されたアーカイブに関するお問い合わせでは、アーカイブもパスフレーズも送らないでください。