把名單交給外部夥伴¶
一份三百多列的試算表¶
年度申報的期限快到了,會計師要一份捐款明細。檔案在你的電腦裡,三百多列,每一列有姓名、電話、地址與金額。
往年的做法是直接當郵件附件寄過去。那一份檔案於是同時存在好幾個地方:對方的信箱、你的寄件備份、兩邊的郵件伺服器,以及任何一端的自動備份。名單本身沒有加密,看得到那些信箱的人就看得到名單。
年度申報每年都會做一次,而且不只發生在會計師身上。委外的設計、協力的研究者、共同申請計畫的夥伴,都會需要你把一份名單交出去。
先抽一組密語¶
到密語與密碼產生器抽一組密語。畫面上會直接顯示這組密語的熵有多少,也就是要猜中它大概要試多少次。
用抽的而不是自己想,理由是人想出來的東西不夠隨機。生日、組織的英文縮寫、去年用過的那一組再加一個數字,這些在字典攻擊裡的排序都很前面。
加密再交出去¶
把試算表拖進本機檔案加密,鑰匙選密語,貼上剛才抽的那一組。
加密完頁面會用同一組密語解回來比對,一致才給下載。這一步防的是密語打錯或貼漏一個字,那種錯誤在當下完全看不出來,等對方解不開已經是幾天後。
輸出是 age 格式,任何裝了 age 命令列工具的電腦都打得開,不需要回到這個網站。會計師如果習慣用命令列,你給的檔案跟他平常收的沒有差別。
密語不要跟檔案走同一個管道¶
密文用郵件寄,密語就用別的方式給:當面說、打電話唸、或是用另一個通訊軟體。
同一封信裡附上密文與密語,等於沒有加密。拿得到那封信的人兩樣都有了。
密語要留著的話,存進你的密碼管理器,跟那份密文放在一起的備註寫清楚是哪一份檔案。明年申報會再來一次。
加密過的檔案還是要算一次雜湊¶
本機檔案加密防的是內容被看到,檔案雜湊比對確認的是內容沒有變。兩件事互相獨立。
對加密後的檔案算 SHA-256,把那一串跟密語分開給對方。對方收到之後先算一次比對,對得上再解密。
這一步買到的是分辨能力。對方解不開的時候,如果雜湊是對的,問題就在密語,重唸一次就好。如果雜湊對不上,那是檔案在搬運途中壞了或被換過,重傳才有意義。少了核對雜湊,兩種完全不同的問題會長得一模一樣。
收件人有 age 公鑰就不必約密語¶
長期合作的夥伴可以請對方產一把 age 金鑰,把公鑰給你。之後鑰匙切到「公鑰」模式,貼上對方的公鑰加密,對方用自己的私鑰解開,不必再約密語。
常用的公鑰可以取個名字存進收件人簿,下次選一個就填進去。收件人簿跟我的準備清單存在同一份用 passkey 加密的暫存區。
只用別人的公鑰加密時,你自己這邊沒有東西能解回來驗證。第一次合作先寄一份測試檔請對方確認解得開,再寄正式的。要自己也留得住,把自己的公鑰也放一行。
這條路徑不只用在年度申報¶
任何一份要離開組織的名單或表格都適用:
- 委外設計要的名冊、貼標籤用的地址清單
- 協力研究者要的問卷原始資料
- 共同申請計畫時交換的參與者名單
- 活動報名表要交給場地方或保險
整條路徑在你的瀏覽器裡完成,名單沒有離開裝置。頁面存進裝置之後沒有網路也能用,見離線閱讀。