Saturday, September 7, 2013

[How To] 使用Gpg4Win進行電子郵件加密提升個人隱私

 網路用戶的隱私問題這陣子鬧得沸沸揚揚,像是Gmail最近在一起訴訟中被指控檢視用戶的郵件,而且還有研究指出臉書、推特、以及谷歌這類的服務提供商會檢視用戶的訊息,並且點開只有用戶才知道的網路連結。

相較於臉書、推特這類的社交服務,用戶透過電子郵件來傳遞的訊息可能會有較高的隱私需求,要解決這種問題最終極的作法就是花錢買網域名稱,然後架設一台Email主機來收發電子郵件。然而這種作法對一般大眾而言並不符成本,為此郵件加密就是一種比較可行的解決之道。

今天要介紹的郵件加密套件─ Gpg4Win是GnuPG的Windows版本,而GnuPG根據IETF訂定的OpenPGP技術標準設計,因此GnuPG可以與PGP還有其他的OpenPGP系統相容[資料來源]。

GnuPG運作的基本原理很簡單,GnuPG會產生一對金鑰,一個是私鑰、另一個是公鑰。使用者A將公鑰交給要發送訊息給使用者A的使用者B,讓使用者B用公鑰加密要傳遞的訊息。等使用者A收到訊息以後再用私鑰來解密使用者B加密過的訊息。原則上用公鑰加密過的訊息,只有私鑰的所有人才能將其解密閱讀。除了文字訊息以外,GnuPG也可以用來加密檔案。

軟體資訊

軟體名稱:Gpg4Win

授權方式:GNU GPL

作業系統:WindowsXP以上。

介面語言:英語、德語

最新穩定版本:2.2.0

官方網站:
http://www.gpg4win.org/

下載頁面:
http://www.gpg4win.org/download.html

分流載點:
https://mega.co.nz/#!SNdnlY5Q!SlWYZwjlSGD7-dcNkVXTPFAJ9l4it2LS0vY6LYyT00Q

MD5: 52DD8671CEA917302C53D594EB4838B8

SHA1 checksum: 0c7e01c4a39029c6d3fa88c0d1d1f2388fdb5151

安裝步驟

先到下載頁面下載最新版本的GpG4Win,初學者建議先下載完整版(full Version)。

下載完畢之後,點擊安裝檔變化進入安裝畫面

下一步之後會看到軟體授權協議,如果同意再按下一步

接下來我們要選擇安裝的軟體,其中包括:

  1. Kleopatra:以埃及豔后命名的金鑰憑證管理軟體
  2. GPA:可替代Kleopatra的Gpg4win Compendium
  3. GpgOL:Office Oulook的外掛套件,目前已支援Outlook 2013
  4. GpgEX:Windows檔案總管的外掛套件
  5. Claws Mail:電子郵件客戶端軟體,支援加密功能
  6. Gpg4win Compendium:使用說明

我接下來會介紹的項目有:Kleopatra、GpgEx,其他看個人需求決定是否安裝。

接著要選擇安裝位置,用預設值即可

按下以後就會開始安裝,安裝後記得要重新啟動才可使用。

產生金鑰對

到開始功能表,找到Gpg4Win資料夾,打開Kleopatra。開啟主視窗之後,功能表選擇File→New Certificate...

跳出Certificate Create Wizard之後,先選擇"Create a personal OpenPGP key pair。

這裡要輸入姓名還有信箱等資訊,然後不要急著按下一步。點選Advanced Setting好設定加密演算法

Gpg4Win提供兩種演算法:RSA與DSA,然後DSA還可以搭配Elgamal來使用。這裡我選擇DSA 2048 bits+ ElgaMal 3072 bits。(為何我不選擇RSA演算法?請參考資訊人權貴ㄓ疑:都加密了, 還怕什麼?。雖然RSA演算法本身是沒問題的,但是難保Gpg4win使用到亂數產生器也是如此。)選擇好之後會回到原本的視窗,然後選擇下一步。

這個時候Wizard會讓使用者檢視剛才輸入的資訊,記得要勾選左下角的"Show All Details",這樣才能看到完整資訊。確認無誤之後一樣選擇下一步

接著就要開始建立金鑰對了,稍等一下會跳出一個Pinentry的對話視窗,這裡請指定金鑰對的密碼,密碼品質(Quality)至少要到達100%才好。

然後會要求再次輸入密碼

輸入完畢之後會開始建立金鑰對,建立完畢就會跳出完成視窗,其中"Next Steps"的三個選項暫時先略過,直接先點選Finish。

最後當然要檢查一下金鑰是否有正確的建立了,這裡可以看到與電子郵件信箱匹配的金鑰已經出現在清單中了。

金鑰對的備份與撤銷

在Kleopatra中,公鑰與私鑰的備份是分開的。首先在清單對要備份的金鑰對按右鍵,叫出右鍵選單。

而跟備份有關的功能有三個:

  1. Export Certificates:匯出公鑰
  2. Export Secret Keys:匯出私鑰
  3. Export Certificates to Server:匯出公鑰到公鑰伺服器,讓其他使用者可以透過伺服器來獲得公鑰。

點選Export Certificates之後會出現一個視窗讓使用者決定公鑰的檔名和副檔名。公鑰匯出預設的副檔名為.asc,該副檔名匯出的公鑰可以用記事本開啟檢視。然而若副檔名為gpg,則是無法直接用記事本檢視的檔案。

點選Export Secret key會跳出與Export Certificates不同的視窗,但基本上功能是一樣的。私鑰匯出預設的副檔名是記事本無法直接檢視的.gpg,而如果勾選ASCII Armor,則會轉換成可直接用記事本檢視的.asc檔。

至於Export Certificates,點選之後會跳出一個警告視窗。大意是說將公鑰上傳至公鑰伺服器之前,最好先產生一個撤銷憑證,這樣如果將來金鑰對遺失或者遭竊,可以用該撤銷憑證(Revocation Certificate)來撤銷公鑰伺服器上的公鑰效力。

很遺憾的是,Gpg4Win要產生撤銷憑證(Revocation Certificate)必須透過命令列的方式來執行。開啟CMD之後,首先輸入下列指令以確認憑證的名稱(ID)

gpg --list-keys

上圖即是透過該指令所產生的內容,而我們需要的ID是"F4F7451F"

接下來就輸入產生撤銷憑證(Revocation Certificate)的指令

gpg --output revoke.asc --gen-revoke F4F7451F

然後就會詢問是否產生撤銷憑證(Revocation Certificate),輸入"Y"進入下一步

接下來會詢問該撤銷憑證使用的理由,理由如下列:

  • 0 = No reason specified 沒有特定理由
  • 1 = Key has been compromised 金鑰洩漏
  • 2 = Key is superseded 金鑰已被取代
  • 3 = Key is no longer used 金鑰不再被使用
  • Q = Cancel

接下來的步驟就是確認上述步驟是否有誤,沒有就會產生一個副檔名為.asc的撤銷憑證。如果沒有指定.asc檔案的絕對路徑,則該.asc檔會出現在Windows使用者資料夾中。

用公鑰進行加密

加密訊息

我這裡介紹只要使用Kleopatra就可以完成的訊息加密方式,首先要先將加密的文字複製。

然後叫出Kleopatra系統圖示的右鍵選單:Clipboard→Encrypt...

接下來會跳出一個"Encrypt Mail Message"的視窗,點選"Add Recipient"的按鈕,然後選擇要傳送訊息的對象。選擇好以後由於我們只擁有對方的公鑰,因此會出現警告訊息,告知使用者未來將無法解密這段被加密的訊息。確定沒問題以後就Next下一步。

當訊息完成加密以後會跳出訊息加密成功的視窗,這時候我們就可以加密過的訊息複製貼上。

加密過的訊息格式會如同下圖一樣,這樣子就算大功告成了。解密訊息的步驟與加密的作法相同,只是要一開始要選擇"Decrypt"這個功能。

加密檔案

電子郵件除了本文以外,附件也是扮演一個很重要的腳色。因此Gpg4Win除了加密訊息以外,也可以對檔案進行加密。使用的方法有兩種,一個是使用GpgEX,另一個則是用Kleopatra主視窗,這裡僅就GpgEX的部分進行介紹。GpgEX是Windows檔案總管的外掛程式,因此只要將要加密的檔案右鍵選單叫出,然後點選More GpgEX Option→Encrypt。

接著會跳出Sing/Encrypt Files的視窗,這裡有幾個地方要注意:

  1. Archive files With:將加密後的檔案壓縮成TAR封包。
  2. Sign or Encrypt or Both:這裡是要簽署、加密、或者兩者皆要。特別要注意的是同時加密與簽署是OpenPGP系統才支援的功能,因此如果要相容於PGP系統,就不可以選擇兩者皆要。
  3. Text Output (ASCII Armor):這個選項是讓最後輸出的形式是以文字檔的方式呈現,如果使用這個選項的好處是,如果對方不知道這個檔案的副檔名為何,就算解密之後也 無法直接開啟檔案。

完成之後會要求選擇收件者,選擇完之後會跳出一個警告視窗,跟加密訊息的時候一樣,由於加密人只擁有公鑰,因此將再也無法開啟被加密過的檔案。

繼續以後就算完成檔案加密的流程,如果沒有勾選Text Output,一樣會多一個副檔名.gpg。而解密的方式跟加密的步驟一樣,讀者就自行摸索吧。

延伸閱讀

如果想學習GPG的指令操作,可以參考洪朝貴兄的《玩具烏托邦:使用 GnuPG 建立你的 PGP 金鑰, 讓別人能夠私密寄信給你》。

本著作依據Creative Commons 姓名標示-非商業性-相同方式分享授權條款釋出

No comments :