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新增的功能。
保密閱讀器(Secure Viewer)
保密閱讀器可以防止有心人士利用TEMPSET技術來竊取你現在螢幕上顯示的資料。所謂TEMPSET技術是利用特別的設備截取顯示器所發射的電磁波,經還原後取得螢幕上顯示的資料,比針孔攝影機高段多了吧!
當欲傳送文字資料(請注意副檔名需為.txt)給對方時,在加密時如多選擇【Secure
Viewer】選項,如圖一所示,則限定解密者需使用保密閱讀器來閱讀,而且不能將結果存成檔案,也就是說For
Your Eyes Only (FYEO),如圖二所示。
[圖 一]
[圖 二]
虛擬保密磁碟(PGPdisk)
在以往我們僅可以利用PGP保密功能將檔案個別加以保密,有時這會造成處理和儲存上的不便,而6.0以後的版本提供虛擬保密磁碟--PGPdisk的功能,使用上和一般磁碟類似,可以直接開啟執行,而且可以自動卸下,十分方便儲存讀者的敏感資料。
不過有兩點需注意的是,由於6.0版在此有些安全上的小瑕疵,故6.02版於安裝後第一次啟動時會自動尋找現存的PGPdisk並自動加以修補;另一點是在PGPtray選單中【Launch
PGPdisk】是灰白的無法執行,需直接啟動PGPdisk程式,如【程式集】中【PGP】的【PGPdisk】選單,執行畫面如圖三所示。
[圖 三]
其中四個快速按鈕分別是:
1.New:建立新的虛擬保密磁碟,過程和建立新的鑰匙類似,需輸入passphrase。
2.Mount:掛上虛擬保密磁碟,如果選擇尚未掛上虛擬保密磁碟,則出現圖四的畫面要求輸入passphrase;如果選擇已經掛上虛擬保密磁碟,則執行檔案總管程式。
[圖 四]
3.Unmount:卸下虛擬保密磁碟。
4.Prefs:設定自動卸下的條件和熱鍵,如圖五所示。
[圖 五]
另外在【File】的選單下有【Add Passphrase】【Change Passphrase】【Remove
Passphrase】【Add/Remove Public Keys】等,方便對不同的Passphrase指定讀寫權限。
指名作廢者(Revokers)
有時基於某些原因想要通知伺服器作廢你的公開鑰匙,例如你的私人鑰匙發生問題(備份是相當重要的)或是其它因素,但是如果真有上述情況發生,你根本就無法作廢你的公開鑰匙呀!新版的PGP可以指定你鑰匙環中的公開鑰匙來作廢你的公開鑰匙,解決上述問題。
在PGPKeys中執行【keys】→【Add】→【Revokers】來指名作廢者,如果是被指名作廢者就可以作廢你的公開鑰匙,但是還是要輸入你的passphrase的,所以記得passphrase是相當重要的事。
加入Plug-ins
Outlook Express和Outlook 98的Email plug-ins包含在安裝程式中。
使用者相片識別
能夠將照片置於你的公開鑰匙中,提供額外資訊來增加識別的可信度(不過請別完全相信,照片很容易作假的),在PGPKeys中執行【keys】→【Add】→【Photo】挑選即可,將來可以使用【Key Properties】來觀看照片,如圖六所示,需注意的是如果Untrusted的話,照片上會有一個紅色的大問號。
副密鑰(Subkey)管理
(只支援Diffie-Hellman/DSS鑰匙),我們使用主鑰匙(DSS)來作加簽的動作,然後可以規劃以不同副密鑰(DH)來作加密的動作。在【Key
Properties】中的【Subkeys】可以管理這些副密鑰。
簽名時效
可以在加簽別人的公開鑰匙檔時指定到期的時間。
PGPtray新功能
除了改變PGPtray中排列順序外,新增【Use Current Window】,方便工作的處理。
空白空間刪除
在pgptools中提供Free Space Wiper可以將軟硬碟中空白空間的殘留的資料完全刪除。
鑰匙分裂(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。
安裝
目前在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的使用說明。
使用
接下來我們可以使用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所收到的信會像圖七所示:
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)