OpenPGP 的資料的加密與解密教學,以 Kleopatra 為例

openPGP GnuPG

 

 

前言

PGP (Pretty Good Privacy) 是款相當優質的端對端 (End-to-end encryption, E2EE) 應用程式,它能確保訊息在傳輸過程中的保密、完整和真實性,即使有人竊聽並取得密文,也難以輕易破解內容。

 

加密與解密 PGP 的過程如下:

  • A 建立私鑰與公鑰,並將公鑰交給 B
  • B 用 A 的公鑰將檔案加密後傳給 A
  • A 用私鑰將 B 傳來的加密檔案進行解密

 

撇除後門程式、中間人攻擊和執法單位的科學辦案與曉以大義,PGP 能建立專屬於通訊雙方的加密通道,讓明文只出現在發送端與接受者的裝置上,因此是相當可靠的加密手段。

 

但這樣描述實在過於抽象,因此本文流浪貓將以準備發動革命推翻共產黨的組織 UwU 為例,敘述如何用 PGP 進行資料的加密與解密。

 

 

情境假設

UwU 是潛伏於中國各地與流亡海外的民主鬥士們所組成的反共組織,他們準備在 10 月 1 日號召中國各地的弟兄,於天安門發動武裝起義推翻中國共產黨。

 

但中共對於言論審查和網路的管控相當嚴苛,基本上所有中國的產品都內建官方的後門程式,監控著人民的所有行動。

 

在這種情況下,組織的老大該如何將起義時間、地點、成員和武器等資料傳遞給各地的兄弟?


 

為了方便起見,以下將以代號描述雙方關係

  • UwU:反共組織
  • OvO:各地的成員

 

組織與各地成員都要用 PGP 軟體產生以下資料

  • UwU_Pri:反共組織的私鑰
  • UwU_Pub:反共組織的公鑰
  • OvO_Pri:成員的私鑰
  • OvO_Pub:成員的公鑰

 

雙方交換公鑰

  • UwU:持有 UwU_Pri 和 OvO_Pub
  • OvO:持有 OvO_Pri 和 UwU_Pub

 

實際用 PGP 進行加密

當 OvO 想傳訊給 UwU 時,就要用 UwU_Pub 將文件加密傳給 UwU,接著反共組織就能用手上的 UwU_Pri 將密件解密了,加密與解密過程如下:

 

  • UwU_Pub + 明文 = 給 UwU 的密件
  • OvO_Pub + 明文 = 給 OvO 的密件
  • 給 UwU 的密件 + UwU_Pri = 組織獲得成員們的訊息
  • 給 OvO 的密件 + OvO_Pri = 成員們收到組織的訊息

 

用 Kleopatra 建立 PGP 加密的步驟

於主畫面點選「New Key Pair」建立新的金鑰,名稱與電子郵件可隨意自訂。進階功能選單,可設定合法結束時間與不同的金鑰形式,自訂密碼並確認無誤後產生金鑰。

 

完成後點選「備份您的金鑰配對」匯出私鑰,最後在主畫面的金鑰列表中,用快捷鍵 Ctrl + E 或右鍵 Export 輸出公鑰

 

Kleopatra 備份私鑰

 

 

用公鑰進行檔案或剪貼簿加密 

為了示範 OvO 如何傳送機密訊息給 UwU,我們先清除 Kleopatra 內所有的金鑰,再單獨匯入 UwU 的公鑰。接著依據需求,選擇你要的加密方式。

 

剪貼簿加密

複製你要傳送的訊息後,執行剪貼簿加密工具:

工具 > 剪貼簿 > 新增收件者 > 選擇 UwU > 執行加密

 

檔案加密

簽署/加密 > 選擇檔案 > Encrypt for other > 輸入 UwU > 執行加密

 

  • Encrypt with password:無 PGP 金鑰,僅用自訂密碼進行加密。

 

下方出現『警告:選取的憑證中沒有您自己的,您將無法再解密資料』的訊息為正常現象,因為示範情境只有匯入 UwU 公鑰,除非 Kleopatra 有 UwU 的私鑰,否則沒有任何人能將其解密。


 

用私鑰進行檔案或剪貼簿解密

將 UwU 私鑰匯入 Kleopatra 即可開始解密程序。

 

剪貼簿解密

工具 > 剪貼簿 > 解密/檢查

 

檔案解密

解密/檢查 > 選擇檔案

如此一來,UwU 就收到來自 OvO 的機密訊息了。

 

 

數位簽章 (Sign) 的作用

看到這裡,聰明的你各位一定會發現這其中有個大問題:


如何驗證寄件者的身份?


公鑰若是故意放在網路上招募潛在的反共義士,那就另當別論。但如果反共組織與其成員的公鑰和電子郵件都被劫走的話,中共的情報部門就能用電子郵件寄送被公鑰加密的木馬給成員,只要有人傻傻的在沒驗明身份的情況下解開密件,那整個組織被抓去餵狗也是早晚的事情。


別忘了,電子郵件只是傳遞訊息的工具,不是可信賴的對象,更非驗明身份的手段。


簡單來說,沒有多少郵差能在共產黨的刑求下保持職業道德,更沒有多少電子郵件服務供應商能避免被中共無孔不入的間諜網路滲透。


這也是為什麼,許多深網匿名工具 (I2P, ZeroNet) 都會附加匿名電子郵件的功能,只要私鑰沒被搶走,即便電子郵件曝光也無妨,因為雙方可以在加密的郵件內容中傳遞下一個可能使用的信箱。就算沒有事前約定也沒關係,因為「數位簽章」可以用來驗明寄件者的身份。


講這麼多,那數位簽章到底該如何使用呢?


 

用私鑰進行數位簽章

如果反共義士 OvO 想寄送訊息給 UwU,那就要先用 UwU 的公鑰進行加密。加密完成後,再以 OvO 的私鑰進行數位簽章,之後即可寄件。


  • UwU_Pub + 明文 = 給 UwU 的密件
  • 給 UwU 的密件 + OvO_Pri = 完成數位簽章

 


用數位簽章驗證寄件人

現在,反共組織 UwU 收到一封相當可疑的電子郵件,寄件者地址來自未知的網域。可能是共產黨情報人員偽裝的釣魚郵件,也可能是反共義士隨機切換的可棄式電子信箱。


這時候,UwU 要如何證明這封信是反共義士 OvO 寄的?方法很簡單,就是用 OvO_Pub 的公鑰來進行驗證 (Verify)。


由於 OvO_Pri 私鑰簽章後的檔案只能用 OvO_Pub 公鑰進行驗證,因此可以證明其寄件者的真實身份。在 Kleopatra 的環境下,就是用 Decrypt and / or Verify 這個工具來進行檔案的驗證與解密。



將檔案上傳至公鑰伺服器

MIT PGP Public Key Server 和 keys.openpgp.org 是目前被廣泛使用的伺服器,它允許使用者上傳自己的公鑰,方便其他人跟你聯絡。


各位若有悄悄話想跟流浪貓說,可以直接在 pgp.mit.edu 伺服器上搜尋 UwU_v,或查詢我的公鑰指紋:



FFA9 5DFE F1EA DD83

流浪貓的 PGP 公鑰 StellarPGP






 

結語

當然,我相信中共的網路監管部門,應該沒笨到不知道要抓使用密文進行通訊的人,將雙方約出來喝茶,質疑他們為什麼要用這種方式溝通。在有罪推論的前提之下,所有的加密訊息都會被中國共產黨視為有謀反的意圖。

 

況且小粉紅最擅長為壓榨自己的強權辯護了,他們會來責怪受害者:

 

你沒做壞事的話,為什麼要怕人家看?

你這樣不是讓習近貧很困擾嗎?

 

畢竟中共和小粉紅對隱私的概念與民主國家不同,要他們理解隱私權基本上是不可能的任務,人畜殊途嘛!

 

反過來說,如果政府沒有做賊心虛,為什麼要擔心人民傳遞密文呢?


 

 

延伸閱讀

用 Tor 跳板切換台灣 IP 登入 PTT

Proxy - 用代理伺服器隱藏IP,作為跳板突破網路封鎖

VPN 相關教學

代理伺服器 Proxy 相關文章

更多 Tor 洋蔥網路

研究人員攻陷OpenPGP與S/MIME,Apple Mail與Outlook等加密郵件內容恐曝光 

 

留言

這個網誌中的熱門文章

寶鐘瑪琳中之人前世照片、年齡分析