PGP 6.0.2i 新 增 功 能 及 GNU Privacy Guard 使 用

作 者 : 施 勢 帆

 前 言

筆者在本刊第48期發表之【文件認證—Pretty Good Privacy(PGP)簡介與應用】和第53期發表之【PGP—Outlook Express,Unix,DOS和鑰匙伺服器安裝與應用】獲得了許多讀者的迴響,而今PGP的版本已經更新至6.02i,其中新增許多強大的功能,筆者秉著介紹好的軟體、保護讀者的隱私和推廣網路安全的觀念,在本文中將介紹PGP 6.0.2i安裝時的注意事項及新增功能介紹,方便讀者明瞭後容易使用。另外也簡介GNU Privacy Guard的安裝和使用,GNU Privacy Guard是跟PGP 5.x相容的軟體,這可是屬於GPL版權的,使用者可以安心的使用它。

本文中將不再介紹PGP的原理和使用方法,請新的讀者自行瀏覽【帆毅網路研究室】(http://mouse.oit.edu.tw)。在此重複一下:什麼是 PGP?

由於現今網路已經邁向商業上的應用,網路資訊的安全與維護是當前重要的課題,而PGP(Pretty Good Privacy)是可以讓電子郵件或檔案具有保密功能的程式,提供了強大的保護功能,即使是最先進的解碼分析技術也無法解讀,因此可以將檔案加密後再傳送給他人,加密後的訊息看起來是一堆無意義的亂碼,除了擁有解密鑰匙的人看得到以外,沒有其它人可以解讀。

PGP是利用所謂的公開鑰匙密碼學為基礎,其原理是利用PGP產生一對鑰匙,一把是私人鑰匙,一把是公開鑰匙。當要傳送一封保密信或檔案給對方時,首先必須先取得對方的公開鑰匙,並將加入自己的公開鑰匙環中,接下來利用對方的公開鑰匙將信件加密後再傳給對方。當對方收到加密的信件後,對方必須利用其相對的私人鑰匙來解密。

PGP亦提供PGP專屬簽名,其目的通常是當要公開傳送訊息時,希望讓別人知道這訊息確實是由你所發出,一旦加上專屬簽名後,任何人只要更改訊息本身或簽名的話,PGP都能偵測出此篇文章已被他人更動,並非是原作者之成品。

 PGP6.02i 程 式 取 得 和 安 裝 前 注 意 事 項

我們可至The International PGP Home Page(http://www.pgpi.com/)中取得國際版的PGPi,目前最新是6.02i,而讀者最常問的兩個問題是,一是它合法嗎?尤其是商業上使用時;二是如何取得原始碼?

筆者不是法律專家,所以對第一個問題沒有辦法提供詳盡的回答,或許讀者中有法律專家可以提供大家此一答案。在此提供筆者粗淺的了解,PGPi project基於美國法律對加密程式嚴格的出口管制,所以為了迴避此問題,PGPi project掃瞄PGP原始碼,除去這些限制,並和原版本保持相容性,在此轉載【The PGPi project】(http://www.pgpi.com/project/)部份內容:

The PGPi project is a 100% non-profit initiative, whose purpose is to make PGP freely and legally available worldwide.

所以非商業用途應是可以的,至於商業用途的話請參考一下PGPi FAQ (http://www.pgpi.com/faq/pgpi.shtml)的說明,向PGP international(http://www.pgpinternational.com/)購買授權。如果想完全避開此一限制的話,可以試試GnuPG(GNU Privacy Guard),它是屬於GPL且相容於PGP 5.x,底下筆者會有說明。

第二個問題的答案是我們可以在ftp://ftp.no.pgpi.com/pub/pgp/中取得所有關於PGP的檔案,不過如果你想利用它的原始碼的話也請務必看一下PGPi FAQ。

至於安裝與設定的過程則和5.5.3I版是相同的,不過如果讀者要安裝Outlook Express Plugin的話,請在安裝前請先將舊版的Outlook Express Plugin移除,然後進行下列步驟:

Step1:將C:\Program Files\Outlook Express\msimn.exe複製至其它位置,如C:\temp\msimn.exe。
Step2:安裝時選擇PGP 6.0.2i OE plugin。
Step3:將C:\temp\msimn.exe重新命名為pgpmsimn.exe。
Step4:將pgpmsimn.exe拷貝回C:\Program Files\Outlook Express\目錄下。

如果不如此作,則雖然可以安裝Outlook Express Plugin,但執行Outlook Express時會出現:

"The PGP Outlook Express plug-in was not installed correctly, or someone has deleted the Outlook Express program. Please re-install Outlook Express, then re-install the plug-in."

而無法執行Outlook Express,更詳細的說明請參考http://www.pgpi.com/bugs/win.shtml。


 PGP6.02i 新 增 功 能 介 紹

接下來筆者依PGP Manual來說明PGP6.02i新增的功能。

triangle.gif (92 個位元組) 保密閱讀器(Secure Viewer)

保密閱讀器可以防止有心人士利用TEMPSET技術來竊取你現在螢幕上顯示的資料。所謂TEMPSET技術是利用特別的設備截取顯示器所發射的電磁波,經還原後取得螢幕上顯示的資料,比針孔攝影機高段多了吧!

當欲傳送文字資料(請注意副檔名需為.txt)給對方時,在加密時如多選擇【Secure Viewer】選項,如圖一所示,則限定解密者需使用保密閱讀器來閱讀,而且不能將結果存成檔案,也就是說For Your Eyes Only (FYEO),如圖二所示。

pgp1.jpg (135591 個位元組) [圖 一]

pgp2.jpg (123219 個位元組) [圖 二]

triangle.gif (92 個位元組) 虛擬保密磁碟(PGPdisk)

在以往我們僅可以利用PGP保密功能將檔案個別加以保密,有時這會造成處理和儲存上的不便,而6.0以後的版本提供虛擬保密磁碟--PGPdisk的功能,使用上和一般磁碟類似,可以直接開啟執行,而且可以自動卸下,十分方便儲存讀者的敏感資料。

不過有兩點需注意的是,由於6.0版在此有些安全上的小瑕疵,故6.02版於安裝後第一次啟動時會自動尋找現存的PGPdisk並自動加以修補;另一點是在PGPtray選單中【Launch PGPdisk】是灰白的無法執行,需直接啟動PGPdisk程式,如【程式集】中【PGP】的【PGPdisk】選單,執行畫面如圖三所示。

pgp3.jpg (30366 個位元組) [圖 三]

其中四個快速按鈕分別是:

1.New:建立新的虛擬保密磁碟,過程和建立新的鑰匙類似,需輸入passphrase。

2.Mount:掛上虛擬保密磁碟,如果選擇尚未掛上虛擬保密磁碟,則出現圖四的畫面要求輸入passphrase;如果選擇已經掛上虛擬保密磁碟,則執行檔案總管程式。

pgp4.jpg (37878 個位元組) [圖 四]

3.Unmount:卸下虛擬保密磁碟。

4.Prefs:設定自動卸下的條件和熱鍵,如圖五所示。

pgp5.jpg (42690 個位元組) [圖 五]

另外在【File】的選單下有【Add Passphrase】【Change Passphrase】【Remove Passphrase】【Add/Remove Public Keys】等,方便對不同的Passphrase指定讀寫權限。

triangle.gif (92 個位元組) 指名作廢者(Revokers)

有時基於某些原因想要通知伺服器作廢你的公開鑰匙,例如你的私人鑰匙發生問題(備份是相當重要的)或是其它因素,但是如果真有上述情況發生,你根本就無法作廢你的公開鑰匙呀!新版的PGP可以指定你鑰匙環中的公開鑰匙來作廢你的公開鑰匙,解決上述問題。

在PGPKeys中執行【keys】→【Add】→【Revokers】來指名作廢者,如果是被指名作廢者就可以作廢你的公開鑰匙,但是還是要輸入你的passphrase的,所以記得passphrase是相當重要的事。

triangle.gif (92 個位元組) 加入Plug-ins

Outlook Express和Outlook 98的Email plug-ins包含在安裝程式中。

triangle.gif (92 個位元組) 使用者相片識別

能夠將照片置於你的公開鑰匙中,提供額外資訊來增加識別的可信度(不過請別完全相信,照片很容易作假的),在PGPKeys中執行【keys】→【Add】→【Photo】挑選即可,將來可以使用【Key Properties】來觀看照片,如圖六所示,需注意的是如果Untrusted的話,照片上會有一個紅色的大問號。

pgp6.jpg (91515 個位元組)

triangle.gif (92 個位元組) 副密鑰(Subkey)管理

(只支援Diffie-Hellman/DSS鑰匙),我們使用主鑰匙(DSS)來作加簽的動作,然後可以規劃以不同副密鑰(DH)來作加密的動作。在【Key Properties】中的【Subkeys】可以管理這些副密鑰。

triangle.gif (92 個位元組) 簽名時效

可以在加簽別人的公開鑰匙檔時指定到期的時間。

triangle.gif (92 個位元組) PGPtray新功能

除了改變PGPtray中排列順序外,新增【Use Current Window】,方便工作的處理。

triangle.gif (92 個位元組) 空白空間刪除

在pgptools中提供Free Space Wiper可以將軟硬碟中空白空間的殘留的資料完全刪除。

triangle.gif (92 個位元組) 鑰匙分裂(Key Splitting)

利用Blakely-Shamir分裂的技巧可以將鑰匙分裂出來,每一個分裂的小鑰匙均有自己的passphrase,而將來要進行加密解密簽名時均要使用到每一把分裂的小鑰匙,並輸入它的passphrase,這個功能方便合夥時的安全性。在PGPKeys中執行【keys】→【Share Split】然後依指示操作即可。


 GPG--GNU Privacy Guard安 裝 和 使 用

GNUPG(GPG)這是跟PGP相容的軟體,可以用來取代PGP,特色是不使用任何專利的演算法,支援lGamal、DSA、3DES、Blowfish、Twofish、CAST5、MD5、SHA-1、RIPE-MD-160和TIGER,對PGP5.x版簽名和編密的文件還是可以前溯相容,由於是GPL版權所以讀者可以安心使用,更進一步的說明請參考http://www.d.shuttle.de/isil/gnupg。

triangle.gif (92 個位元組) 安裝

目前在http://www.d.shuttle.de/isil/gnupg有提供原始碼和RPM的版本,讀者可以依自身的環境取得安裝,筆者在此介紹原始碼的安裝方法。安裝步驟如下,使用root身份進入系統中後,執行以下的指令︰

tar xvfz gnupg-0.9.4.tar.gz ← 解壓縮至gnupg-0.9.4目錄中
cd gnupg-0.9.4 ← 切換至gnupg-0.9.4目錄
./configure ← 建立組態檔
make ← 編譯程式
make install ← 安裝

讀者可以讀取gnupg-0.9.4/README來獲得更詳細的安裝說明,安裝完畢後也可以執行man gpg來獲得GPG的使用說明。

triangle.gif (92 個位元組) 使用

接下來我們可以使用gpg--gen-key來建立自己的鑰匙對,範例如下:

eef:/usr/home/shie$ gpg--gen-key
Please select what kind of key you want:
(1) DSA and ElGamal (default)
(2) DSA (sign only)
(4) ElGamal (sign and encrypt)
Your selection? 1
DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
minimum keysize is 768 bits
default keysize is 1024 bits
highest suggested keysize is 2048 bits
What keysize do you want? (1024) 2048
Do you really need such a large keysize? y
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
#n# = key expires in n days
#n#w = key expires in n weeks
#n#m = key expires in n months
#n#y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct (y/n)? y

You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) #heinrichh@duesseldorf.de#"

Real name: Univ. Shie
Email address: univ@digital.oit.edu.tw
Comment: I Love the University!
You selected this USER-ID:
"Univ. Shie (I Love the University!) #univ@digital.oit.edu.tw#"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

Enter passphrase:
Repeat passphrase:

We need to generate a lot of random bytes. It is a good idea to perform
some other action (work in another window, move the mouse, utilize the
network and the disks) during the prime generation; this gives the random
number generator a better chance to gain enough entropy.

:讀者可以自行對照PGP產生鑰匙對的方式,接下來筆者簡單說明其它指令的使用方式,而指令其中的#userid#可以鍵入user ID的某些部份即可,例如user ID是Shih-Fan Shie shie@mouse.oit.edu.tw,那麼可以鍵入shie或mouse, fan,oit...等等。

gpg--export [--armor] #userid# # outfile    ← 取出#userid#的公開鑰匙至outfile中
gpg--import [keyfile] ← 將公開鑰匙[keyfile]加入鑰匙環中
gpg -k #userid# ← 列印出公開鑰匙
gpg -e -r #userid# file ←加密file至binary檔file.gpg中
gpg -e -r #userid# --armor file ←加密file至ASCII檔file.asc中
gpg -s file ← 加簽file至binary檔file.gpg中
gpg -s --armor file ← 加簽file至ASCII檔file.asc中
gpg -se -r #userid# file ← 加密加簽file至binary檔file.gpg中
gpg -se -r #userid# [-armor] file ← 加密加簽file至ASCII檔file.asc中
gpg -v file ← 解密file

讀者可以對應至PGP的相關用法,如果使用上有問題,可以先參考gnupg-0.9.4/doc/FAQ。

 簽 名 中 的 時 間 問 題

當在確認PGP(GPG)簽名時所顯示的時間,是簽名者當時電腦所加上去的時間,簽名者可以隨時改變,所以簽名者可以容易製造出一份擁有偽造時間的文件,而筆者以往所介紹的時間校準技術並無法克服此一問題。然而我們可以使用一種稱為數位公證(digital notary)或時間戳印的服務,將送進去的文件加上時間的系統,這個服務利用多種方式,使得任意人沒有辦法去更改已經簽上的時間。其中一個服務是由Matthew Richardson所提供的,如果要獲得更多的資訊,請參考 http://www.itconsult.co.uk/stamper.htm

筆者介紹最簡單的的使用方式,首先將欲加密加簽的文件準備好,然後將在第一行加上:
X-Stamper-To: emailaddress

emailaddress是你預計要寄達的位置,如X-Stamper-To: shie@digital.oit.edu.tw,然後將這文件寄往post@stamper.itconsult.co.uk即可。而shie@digital.oit.edu.tw所收到的信會像圖七所示:

pgp7.jpg (87707 個位元組)

 Web結合PGP

基本上Web上的傳送資料就是不安全的,除非經過SSL加密過的,所以我們需要自行成立一個認證中心(CA)來認證,至於表單的處理應可藉助Soupermail (http://www.angelfire.com/va/lattiv/index.html),這部份筆者下次再介紹了。

 結語

這篇文章是筆者計畫推行PGP的系列文章之一,文章中簡介PGP 6.0.2i安裝時的注意事項及新增功能介紹,另外簡介GNU Privacy Guard的安裝和使用。網路安全的重要性越來越受到重視,目前中研院也在推廣PGP的使用,請讀者參考http://www.sinica.edu.tw/cc/netsrv/pks.html,裡面的資料相信對讀者是十分有幫助的。(作者任職於亞東工專電機科,E-mail:shie@digital.oit.edu.tw)