使用手冊
1. 關於本手冊 • 2. GravesZIP 是甚麼 • 3. 格式 • 4. 開啟受密碼保護的郵件 • 5. 加密 • 6. 密碼 • 7. 加密並非簽署 • 8. 安全解壓縮 • 9. 驗證壓縮檔 • 10. 介面 • 11. 語言 • 12. 無障礙功能 • 13. 支援
1. 關於本手冊
本手冊說明 GravesZIP 1.0:它處理的格式、其加密如何運作、它保護甚麼及不保護甚麼,以及如何使用介面的每個部分。手冊中不會描述任何未能運作的功能;已計劃但尚未提供的功能,會在介面一節的最後如實列出。
2. GravesZIP 是甚麼
一個壓縮檔管理程式:它把檔案封裝成壓縮檔,再把它們解壓縮出來,並可加密所封裝的內容。
壓縮及加密由 SharpZipLib 負責,這是一個歷史悠久的開放原始碼程式庫,而不是在這裏重新實作。GravesZIP 建立的壓縮檔是普通的 ZIP 檔案:未加密的可在任何程式中開啟,包括 Windows 及 macOS 內置的壓縮檔支援。加密的可在任何支援 ZIP 的 AES-256 加密的程式中開啟 — 7-Zip、WinZip 等等。部分內置的 ZIP 工具(包括 Windows 本身的較舊版本)不支援 AES,無法開啟由任何程式建立的加密壓縮檔;請使用 GravesZIP 或上述其中一個程式。
它不會建立任何網絡連線。請參閱私隱聲明。
3. 格式
此版本處理 ZIP。
清單就只有這些,而且是刻意精簡的。GravesMail 受密碼保護的郵件就是以 ZIP 形式送達,其他所有壓縮程式都能讀取 ZIP,而把一種格式做好,比把幾種格式各做一半更有價值。日後會加入其他格式;在此之前,本手冊不會聲稱支援它們。
7z、RAR、tar 及其他格式暫未支援。GravesZIP 不包含 7-Zip,亦不需要安裝 7-Zip。
4. 開啟受密碼保護的郵件
來自 GravesMail 的受密碼保護的郵件,會以名為 protected-message.zip 的附件形式送達。用 GravesZIP 開啟它,並輸入寄件者另行告知你的密碼 — 透過電話或短訊,絕不會寫在電郵本身之中。
你會在裏面找到:
附件是刻意重新命名的。ZIP 會加密每個檔案的內容,但名稱清單對任何持有該壓縮檔的人仍然可讀,所以一個名為「layoff-list.xlsx」的檔案,在任何人輸入密碼之前就已經洩露了自己。真正的名稱記在 message.html 中。
開啟這類壓縮檔的過程中,沒有任何資料會傳到網絡上,而 GravesZIP 及 GravesWare 都永遠不會看到密碼。
5. 加密
為 ZIP 設定密碼,就會以 AES-256 將它加密。
ZIP 支援兩種加密法,其中一種已被破解。原始的 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. 驗證壓縮檔
「檔案」>「測試壓縮檔」會解壓縮每個項目,並按隨它儲存的校驗碼檢查,而不會把任何內容寫入磁碟。它會確認壓縮檔完好無缺,如屬加密壓縮檔,亦會確認密碼正確。如果需要密碼,它會詢問;如果輸入的密碼不正確,它會再問一次。
結果會以淺白的文字告訴你:要麼每個項目均已檢查,壓縮檔完好無缺;要麼至少有一個項目與其校驗碼不符,壓縮檔已損壞。已損壞的壓縮檔,或許仍可用「解壓縮所選項目」取回部分檔案;如果可以,請重新取得一份完好的副本。
它不會確認壓縮檔來自哪裏或由誰製作。
10. 介面
視窗
未開啟壓縮檔時,視窗會提供「開啟」及「新增壓縮檔」兩個按鈕。開啟壓縮檔後,視窗會列出裏面的內容:每個項目的名稱及資料夾、大小,以及上次修改的時間,按字母順序排列。某一列旁邊有掛鎖,表示該項目的內容已加密。
每項壓縮檔操作都在「檔案」選單中,右鍵選單亦有相同的操作:在視窗內任何位置按右鍵,或按 Shift+F10 或選單鍵。需要已開啟壓縮檔或已選取項目才能執行的操作,在條件符合之前會呈灰色。
開啟壓縮檔
「檔案」>「開啟」,或在命令列上傳入壓縮檔的路徑 — 當 GravesZIP 被設為 .zip 檔案的開啟程式,或有壓縮檔被拖放到它的圖示上時,就是這樣運作。Microsoft Store 版本會把自己列入 Windows 的「開啟檔案」清單,供開啟 .zip 檔案時選用。
清單會即時出現,即使是加密壓縮檔亦然。這不是安全漏洞:ZIP 的索引並沒有加密,所以名稱、大小及日期對任何持有該檔案的人都是可讀的。
解壓縮
「檔案」>「全部解壓縮」會解壓縮所有內容。「檔案」>「解壓縮所選項目」只會解壓縮你已選取的列 — 按一下選取一列,按 Ctrl+按一下或 Shift+按一下選取更多。選取資料夾的列,會連同該資料夾內的所有內容一併解壓縮。
無論哪一種方式,都要選擇把檔案放在哪裏。加密壓縮檔會在這個時候詢問密碼,因為這是第一個真正需要密碼的時刻。如果密碼不正確,GravesZIP 會告訴你並再問一次,而不是令整個操作失敗。
在每個項目的目的地都檢查完畢之前,不會寫入任何內容。如果壓縮檔內有路徑指向你所選資料夾以外的地方,整個壓縮檔會被拒絕,所以它無法留下一半的內容。
測試
「檔案」>「測試壓縮檔」。請參閱上文驗證壓縮檔。
建立壓縮檔
「檔案」>「新增壓縮檔」。加入你想要的檔案及資料夾;每個項目都以名稱列出,下方是它所在的資料夾。選擇壓縮程度,並可選擇是否設定密碼。資料夾會整個加入,包括其下的所有內容,並在壓縮檔內保留自己的名稱。
壓縮提供三個設定,而不是九級的刻度:
如要建立普通壓縮檔,請把密碼留空。輸入密碼後,會出現第二個欄位讓你確認,因為密碼無法找回:一旦打錯,壓縮檔從寫出的一刻起便無法讀取,而事後沒有任何東西能告訴你。同時會出現提示,提醒你檔案名稱仍然可讀。
壓縮檔寫出後會馬上開啟,讓你親眼看到放了甚麼進去,而不用只憑信任。
關閉
「檔案」>「關閉壓縮檔」。密碼會在那一刻從記憶體中清除,而不是一直留到程式結束。
鍵盤快速鍵
在 Windows 及 Linux 上使用 Ctrl;在 Mac 上使用 Command。
選單本身以 Alt 加上有底線的字母開啟:Alt+F 開啟「檔案」,Alt+H 開啟「說明」。
尚未提供的功能
不經解壓縮直接開啟壓縮檔內的檔案、把檔案加入現有的壓縮檔,以及 ZIP 以外的格式。
11. 語言
GravesZIP 提供 55 種語言。在「說明」>「語言」中選擇;清單以各語言本身的文字列出每種語言,目前使用的語言會有標記。
英文(包括英式及澳洲式拼寫)、西班牙文(西班牙及拉丁美洲)、法文、德文(包括瑞士德文)、葡萄牙文(歐洲及巴西)、意大利文、波蘭文、土耳其文、越南文、印尼文、菲律賓文、荷蘭文、瑞典文、芬蘭文、羅馬尼亞文、克羅地亞文、波斯尼亞文、塞爾維亞文(拉丁字母及西里爾字母)、馬來文、斯瓦希里文、約魯巴文、伊博文、烏茲別克文、希臘文、俄文、烏克蘭文、簡體中文、繁體中文(香港)、日文、韓文、泰文、印地文、孟加拉文、泰米爾文、旁遮普文、馬拉地文、尼泊爾文、古吉拉特文、奧里雅文、泰盧固文、坎納達文、馬拉雅拉姆文、阿姆哈拉文、阿拉伯文(包括埃及阿拉伯文)、波斯文、烏爾都文、信德文及維吾爾文。
所選語言會在重新啟動 GravesZIP 後生效。這並非為了迴避甚麼限制:視窗在建立時讀取語言,其由左至右或由右至左的方向亦在那一刻固定下來,因此若在視窗已顯示時更改語言,視窗只會翻譯了一半,而且方向錯誤。
在你作出選擇之前,GravesZIP 會跟隨作業系統的語言。
阿拉伯文、波斯文、烏爾都文、信德文及維吾爾文的介面由右至左排列。壓縮檔的內容不會鏡像反轉:像「docs/report.txt」這樣的路徑在任何語言下都保持原有方向,因為分隔符號表示左邊包含右邊。以任何文字書寫的檔案及資料夾名稱,在清單中仍會正確顯示。
12. 無障礙功能
GravesZIP 的設計讓人無需依靠視力也能使用。
螢幕閱讀器
每個可操作的控制項都有螢幕閱讀器可以讀出的名稱,包括「關於」方塊內的文件面板。這一點在每次建置時自動檢查,而非靠人手查看——無法讀出的控制項會令建置失敗。
鍵盤
按 Alt 加上有底線的字母即可開啟功能表,再以方向鍵在其中移動。按 Escape 可關閉對話方塊,預設按鈕則以 Enter 觸發。
語言功能表採用單選式項目,而非下拉式清單,因為螢幕閱讀器會讀出哪個項目已被選取。失明用戶就是這樣聽到目前使用的語言,而無需自行推斷。
顏色與對比
GravesZIP 採用 GravesWare 的配色,設有淺色及深色兩個版本,會跟隨系統的淺色或深色設定。當中每一段文字都符合 WCAG AA 的 4.5 比 1 對比度標準;如有任何改動令對比度低於此標準,自動測試會令建置失敗。沒有任何資訊只靠顏色傳達:已加密的列有鎖頭圖示,螢幕閱讀器亦會讀出「已加密」。
當系統設定為高對比時,GravesZIP 會放下自己的配色,改用系統的基本佈景主題。你選擇那些顏色是因為你需要它們;一個在這個選擇之上重新上色的應用程式,只會令自己更難閱讀。
大小
按鈕及文字欄位的高度至少為 44 像素,這是指標、手指或不穩的手都能舒適操作的最小尺寸。GravesZIP 在 Windows 上聲明自己支援顯示縮放,因此在 150% 或 200% 下仍然清晰,不會被拉伸而變得模糊。
13. 支援
GravesWare, LLC
support@gravesware.com
這個地址亦載於「關於」頁面(說明 > 關於 GravesZIP),該處設有「電郵支援團隊」按鈕,會開啟你自己的郵件程式,並預先填上地址及你的版本。在你按下傳送之前,不會傳送任何東西。
請說明你正在使用的版本(「關於」方塊會顯示)以及作業系統。凡涉及已加密壓縮檔的問題,請勿傳送該壓縮檔或密碼。