更新日期 2008-06-03 16:07
新消息
伺服器選擇
雜談
如何架設網站
超頻+省電
Prime95 地獄特訓
AV 心得篇
影音編輯
場景順序
DVD 字幕
歷史
讓 email 穿上衣服

eMail 表面上叫作電子郵件,但實際上的運作過程,與 Postcard 明信片完全一樣;

信件從發信端送出後,中間經過的層層傳送,直到收件者,全部是明碼傳送。只要安裝封包捕捉程式 (如 Wireshake, WinPCap 等等),把封包重組之後,完整的信件可以重現在第三者的手上;通信的兩端渾然不知信件已經被攔截了!也可利用截收技巧,阻斷傳送機制 (例如 Packet drop 法),把截收到的信件 (等同是原始信件) 加以變造,這樣就能使通信的雙方雞同鴨講,如下圖所示─

A <-> 攔截者 (變造) <-> B

其所造成的危害,可想而知!因此重要通信內容必須要經過簽名認證與加密送出,才能確保信件是「原汁原味」。

Thunderbird 使用 OpenPGP 教學 (正體中文)

市面上有一些支援加密信件的程式,大都索費不貲,因此特別介紹的從頭到尾全部免費且公開原始程式的黃金陣容。

  • 支援 PGP 的 email 程式,建議使用 ThunderBird (雷鳥)。(與鼎鼎大名的 FireFox 同屬一個集團)
  • OpenPGP 外掛,可與 ThunderBird 緊密結合。
  • GnuPG,OpenPGP 系統核心程式。

OpenPGP (RFC 4880) 使用雙鍵加密的原理,有 public key (公匙) 與 secret key (私鑰),藉由兩者協同運作,可以產生以下幾種效果。

  • 簽名認證─可讓收件者知道信件傳送過程的是否遭到修改,但無法防範攔截者的得知內容。
  • 加密信件─通聯的兩端,可自由解碼信件內容。即便攔截者也無法得知內容。
  • 簽名加密─以上兩種機制同時使用,是最高的等級的安全信件。
安裝方法

Step 1: 下載並安裝 ThunderBird,http://www.mozilla.com/en-US/thunderbird/all.html

Step 2: 下載並安裝 GnuPG 核心程式,ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.7.exe

Step 3: 下載 OpenPGP 外掛 http://enigmail.mozdev.org/download.html

Step 4: 執行 ThunderBird,工具功能表 -> 附加元件 -> 安裝 -> OpenPGP 外掛程式,然後重新啟動雷鳥。

Step 5. 主功能表上多一個 OpenPGP 功能表,表示已經順利掛入成功;選擇 OpenPGP 功能表 -> 選像。檢查是否與 GnuPG 聯結起來。

鑰匙管理 (重點!!!)

接下來要產生一組 (或多組) 專屬於帳號的鑰匙。PGP 使用的是公開金鑰與私密金鑰的雙鍵加密法,因此產生出來的鑰匙也有兩組。

公開金鑰─顧名思意,是可以公開給任何人的,沒有密碼的束縛,因此沒有洩密的問題。

私密金鑰─這組金鑰絕對不可以外流給任何人,必須妥善保管好。

廢棄認證─當產生完公開、私密兩組金鑰後,GnuPG/OpenPGP 程式會自動詢問是否產生廢棄認證,此認證也要確實保管好,只要有人何人拿到廢棄認證,你的公開金鑰立刻被作廢 (當然私密金鑰也形同是廢物了)。那....幹嘛製造這樣危險物品?理由很簡單,就是損害管理嘛!萬一你發現私密金鑰外洩,為避免偷竊者拿你的公開金鑰去招搖撞騙,你只要拿出廢棄認證,把你自己的公開金鑰廢除後,偷竊者也無法再拿它來用了。算是玉石俱焚的終極大絕招。

OpenPGP 功能表 -> 密鑰管理 -> 產生 -> 新密鑰對。紅框是需要設定的部分。設定的重點如下─

  • 建議設定密碼,保護密鑰在本地端的安全性。此密碼在解密信件時需要用到。
  • 「密鑰永不過期」不建議打勾。
  • 有效期的話,設定越短越能保密 (例如 1 年份),但必須在過期前記得產生新的密鑰對。

建立密鑰完成後,會詢問是否產生廢棄認證 (撤銷證書),請自行決定。萬一沒有產生,以後可選擇 OpenPGP 功能表 -> 密鑰管理 -> 產生 -> 撤銷證書,把廢棄認證製造出來。

一個 email 帳號可以生產不只一組的金鑰對,你可以不斷製造一大堆金鑰對。不過,如果這麼做的話,可能將來困擾的是你自己,建議一組 email 對應一組金鑰對,容易管理,認證,與解密。只要保管好密鑰,才是最重要的事情。

接下來,我們要把金鑰對匯出,保管起來,至少在認證有效期限內,別弄丟了,也別外洩。(過期後外洩就沒差了),選擇 OpenPGP 功能表 -> 密鑰管理 -> 選擇你想要備份的金鑰對 (可以同時備份全部),將來還原時也可全部還原。匯出的金鑰如果你選擇包含私密金鑰的話,一定要妥善保管,不能交給任何人。如果只匯出公開金鑰,可以任意散發。

收信端 (別人) 匯入本地端公開金鑰的方法

對方沒有你的公開金鑰時,你可以主動發送給他你自己的公開金鑰。這一步是必須要的!

在編輯郵件時,選擇 OpenPGP 功能表 -> 附送我的公鑰。

對方收到後,只要匯入夾帶的公開金鑰即可。

當然,你也可以把 .asc 檔案先儲存在硬碟中,然後用 OpenPGP -> 密鑰管理 -> 檔案 -> 從文件導入密鑰,把別人的公開金鑰給匯入進我們自己的資料庫。往後,我們就可以用這個人的公開金鑰,去檢查他寄信給你的過程中,是否遭到修改?或者你要把信件用加密的方式寄給他,讓彼此間的信件往來全程加密處理,第三者即便截收資料,也是完全無法了解內容的 (僅限加密信件 or 簽名加密信件)。

測試簽名認證

簽名認證,並不能讓第三者 (截收端) 無法看到內容,但可以防止第三者竄改信件內容。只要簽名認證失敗,肯定是被動過手腳的。

要發送一封具有簽名的信件給已經擁有我方公開金鑰的人。發送簽名認證的方式有很多種,例如:

  • 右下角的筆點一下,從灰色變成亮綠色。
  • 安全圖示點下去,數字簽名郵件打勾。
  • OpenPGP 功能表 -> 數字簽名郵件打勾。

寄出信件的同時,OpenPGP 會詢問你的私密金鑰密碼,請輸入正確,然後突然間,信件的內容變成這樣。其實這就是真正發送出去的內容,在沒有安裝 OpenPGP 或類似程式的 email 程式中,也會看到這樣的原文。我們可以很清楚的看見紅框的部分,就是信件內容,代表著這封信仍然是「明碼傳送」的狀態。

收信端 (已經匯入了發送端的公開金鑰),自動由 OpenPGP 把信件內容作認證,得到 Good Signature 的訊息,代表著信件是原汁原味的狀態。至於前方 UNTRUSTED (未信任的),是指我方並沒有將發信端的公開金鑰作認證,並不影響識別這封信是否遭到修改的能力。

這樣的訊息,簽名認證失敗,代表著信件已經遭到竄改。

真正的電子郵件應該是──加密信件

真正的電子郵件應該是──加密信件。

要發送一封加密信件的前提必是─發信端必須擁有收信端公開金鑰。

至於要如何發送加密信件給對方呢?方法如下:

  • 右下角的鎖點一下,從灰色變成亮綠色。
  • 安全圖示點下去,加密郵件打勾。
  • OpenPGP 功能表 -> 加密郵件打勾。

單純發送加密信件時 (右下角只有大鎖亮綠燈),發送端不需要輸入密碼,用的是接收端的公開金鑰,接收端解密時,由接收端負責輸入他自己私密金鑰的密碼。

加密信件包含我方的簽名認證 (右下角兩個鈕全亮),如圖所示,則發送時會詢問密碼,由於是我方簽名認證,需要我方私密金鑰的密碼。

輸入正確的密碼後,紅框的部分就是加密後的部分信件內容,即便第三者截收信件,也無法解讀內容,其實.....這才是裝了信封的信件嘛........

現在看看接收端的情況,Decrypted message (已解密的訊息),Good signature (正確的簽名),大鎖與小鎖顯示著這封信是加密信件。

單純加密信件的情況。