跳轉到

把名單交給外部夥伴

一份三百多列的試算表

年度申報的期限快到了,會計師要一份捐款明細。檔案在你的電腦裡,三百多列,每一列有姓名、電話、地址與金額。

往年的做法是直接當郵件附件寄過去。那一份檔案於是同時存在好幾個地方:對方的信箱、你的寄件備份、兩邊的郵件伺服器,以及任何一端的自動備份。名單本身沒有加密,看得到那些信箱的人就看得到名單。

年度申報每年都會做一次,而且不只發生在會計師身上。委外的設計、協力的研究者、共同申請計畫的夥伴,都會需要你把一份名單交出去。

先抽一組密語

密語與密碼產生器抽一組密語。畫面上會直接顯示這組密語的熵有多少,也就是要猜中它大概要試多少次。

用抽的而不是自己想,理由是人想出來的東西不夠隨機。生日、組織的英文縮寫、去年用過的那一組再加一個數字,這些在字典攻擊裡的排序都很前面。

加密再交出去

把試算表拖進本機檔案加密,鑰匙選密語,貼上剛才抽的那一組。

加密完頁面會用同一組密語解回來比對,一致才給下載。這一步防的是密語打錯或貼漏一個字,那種錯誤在當下完全看不出來,等對方解不開已經是幾天後。

輸出是 age 格式,任何裝了 age 命令列工具的電腦都打得開,不需要回到這個網站。會計師如果習慣用命令列,你給的檔案跟他平常收的沒有差別。

密語不要跟檔案走同一個管道

密文用郵件寄,密語就用別的方式給:當面說、打電話唸、或是用另一個通訊軟體。

同一封信裡附上密文與密語,等於沒有加密。拿得到那封信的人兩樣都有了。

密語要留著的話,存進你的密碼管理器,跟那份密文放在一起的備註寫清楚是哪一份檔案。明年申報會再來一次。

加密過的檔案還是要算一次雜湊

本機檔案加密防的是內容被看到,檔案雜湊比對確認的是內容沒有變。兩件事互相獨立。

對加密後的檔案算 SHA-256,把那一串跟密語分開給對方。對方收到之後先算一次比對,對得上再解密。

這一步買到的是分辨能力。對方解不開的時候,如果雜湊是對的,問題就在密語,重唸一次就好。如果雜湊對不上,那是檔案在搬運途中壞了或被換過,重傳才有意義。少了核對雜湊,兩種完全不同的問題會長得一模一樣。

收件人有 age 公鑰就不必約密語

長期合作的夥伴可以請對方產一把 age 金鑰,把公鑰給你。之後鑰匙切到「公鑰」模式,貼上對方的公鑰加密,對方用自己的私鑰解開,不必再約密語。

常用的公鑰可以取個名字存進收件人簿,下次選一個就填進去。收件人簿跟我的準備清單存在同一份用 passkey 加密的暫存區。

只用別人的公鑰加密時,你自己這邊沒有東西能解回來驗證。第一次合作先寄一份測試檔請對方確認解得開,再寄正式的。要自己也留得住,把自己的公鑰也放一行。

這條路徑不只用在年度申報

任何一份要離開組織的名單或表格都適用:

  • 委外設計要的名冊、貼標籤用的地址清單
  • 協力研究者要的問卷原始資料
  • 共同申請計畫時交換的參與者名單
  • 活動報名表要交給場地方或保險

整條路徑在你的瀏覽器裡完成,名單沒有離開裝置。頁面存進裝置之後沒有網路也能用,見離線閱讀