60
15: PGP/ GnuPG 15-1 PGP簡介 15-2 GnuPG簡介 15-3 GnuPG安裝方法 15-4 PGP/ GnuPG的使用

第15章: PGP/ GnuPG - Mobile Security Lab 行動安全 ...crypto.nknu.edu.tw/textbook/chap15.pdf · 第15章: PGP/ GnuPG 15 ... 其運作背後,涉及一些密碼學的觀念與技術,如對稱式加

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

  • 第15章: PGP/ GnuPG

    15-1 PGP簡介15-2 GnuPG簡介15-3 GnuPG安裝方法15-4 PGP/ GnuPG的使用

  • PGP發展歷史PGP (Pretty Good Privacy)是由Philip R. Zimmermann開發並於1991年發表的一套密碼學技術工具,可以用來將檔案資料加密及解密,以確保資料的保密性

    使用數位簽章,透過簽署與驗證的方式確認通訊雙方的真實身份

    其運作背後,涉及一些密碼學的觀念與技術,如對稱式加密演算法、公開金鑰加密演算法及數位簽章等

    PGP的用途廣泛,能對任何種類的檔案進行加密保存,或結合其他軟體加強安全功能

    目前應用最普遍的安全電子郵件系統,其技術發展已經相當成熟,不僅全世界網際網路標準化組織IETF特別成立OpenPGP工作小組(http://www.ietf.org/html.charters/openpgp-charter.html),致力於PGP的標準規範研究與制定,PGP本身業已成為專業的網路安全軟體

  • PGP發展歷史(續)PGP的用途廣泛,能對任何種類的檔案進行加密保存,或結合其他軟體加強安全功能目前應用最普遍的安全電子郵件系統,其技術發展已經相當成熟,不僅全世界網際網路標準化組織IETF特別成立OpenPGP工作小組(http://www.ietf.org/html.charters/openpgp-charter.html),致力於PGP的標準規範研究與制定,PGP本身業已成為專業的網路安全軟體PGP產品分為兩支,一為需付費使用的商業PGP (http://www.pgp.com/)非商業用途而功能較少的免費PGPi (http://www.pgpi.org/)。目前PGP商業版本是發展主流,有提供視窗及命令列兩種操作模式的版本,而免費的PGPi幾乎已經停止系統更新。PGP主要功能

    訊息加密數位簽章檔案壓縮訊息編碼訊息分段與重組

    http://www.pgp.com/http://www.pgpi.org/

  • PGP支援操作平台表18-1 PGPi支援的作業系統及版本

    作業系統 支援的最新版本

    Amiga PGP 5.0i

    Atari PGP 5.0i

    BeOS PGP 5.0i

    MacOS X PGP 8.0(已更改連結到PGP商業版網站)

    MS-DOS PGP 5.0i

    OS/2 PGP 5.0i

    Palm OS PGP wireless for Palm 1.5(評估版)

    Unix/Linux PGP 6.5.8(不再於版本編號後附加"i")

    Windows 98/ME/NT/2000/XP PGP 8.0(已更改連結到PGP商業版網站)

  • PGP支援操作平台(商業版)

    表18-2 PGP商業版支援的作業系統

    視窗版(PGP Desktop) 命令列版(PGP Command Line)

    Windows XP SP1或SP2 Windows 2003

    Windows Server 2003 Windows XP SP1

    Windows 2000 Professional SP3或SP4 Windows 2000 SP4

    Mac OS X 10.3.9、10.4.0及10.4.1版 HP-UX 11i以上版本(PA-RISC)

    IBM AIX 5.2以上版本

    Red Hat Enterprise Linux 3.0以上版本(x86)

    Solaris 8以上版本(SPARC)

    Mac OS X 10.3以上版本

  • GnuPG發展歷史

    有鑑於PGP並不是開放原始碼的自由軟體,GNU計畫便發展了GnuPG (GPG),我們可安裝使用GnuPG來取代PGP的功能。GnuPG除了遵循上述IETF所成立的OpenPGP所提出的規範之外,也完全符合RFC 4880建議規範,更重要的是GnuPG現在仍然在持續發展更新中。GnuPG的官方網站在http://www.gnupg.org/,現在各大知名的Linux distribution也內建了GnuPG套件,我們可直接安裝distribution所提供的rpm/deb套件,免除編譯的步驟增加安裝上的麻煩。

    GnuPG計畫的目標就是完全實做PGP所支援的功能,甚至是補強PGP所不足之處。GnuPG 特色如下:

    GPL授權支援眾多加解密演算法

    整合HKP keyservers (wwwkeys.pgp.net)

  • 安裝GnuPG-Lunix

    Fedora 8平台收入的GnuPG2.x.x版本為2.0.8版,在此我們選擇安裝此版本來作為示範,只需一行指令即可安裝成功:

    yum –y install gnupg2安裝成功後可在終端機模式命令列下輸入"gpg--version" ,就會顯示版本資訊如右圖

    gpg (GnuPG) 1.4.7Copyright (C) 2006 Free Software Foundation, Inc.This program comes with ABSOLUTELY NO WARRANTY.This is free software, and you are welcome to redistribute itunder certain conditions. See the file COPYING for details.Home: ~/.gnupg已被支援的演算法:公鑰: RSA, RSA-E, RSA-S, ELG-E, DSA編密法: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH雜湊: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224壓縮: 未被壓縮, ZIP, ZLIB, BZIP2

  • 安裝GnuPG-Windows

    安裝最新PGP for Windows版本,必須到http://www.pgp.com/下載。目前最新的版本為PGP Desktop 9.8.1,其試用版有三十天的評估期。

    安裝完畢後,PGP Desktop 主畫面如右圖

  • GnuPG的使用 –Linux 建立金鑰對

    gpg (GnuPG) 1.4.7; Copyright (C) 2006 Free Software Foundation, Inc.This program comes with ABSOLUTELY NO WARRANTY.This is free software, and you are welcome to redistribute itunder certain conditions. See the file COPYING for details.請選擇妳要使用的金鑰種類:

    (1) DSA 和 Elgamal (預設)(2) DSA (僅能簽署用)(5) RSA (僅能簽署用)

    妳要選哪一個?1

    對於第一次使用GnuPG,必須先產生金鑰,所以請在命令提示符號輸入『gpg --gen-key』首先請選擇金鑰要使用的演算法,預設是DSA 和 Elgamal,亦可選擇DSA或RSA,如上圖

  • GnuPG金鑰產生DSA 金鑰對會有 1024 位元長.ELG-E 金鑰的長度可能介於 1024 位元和 4096 位元之間.妳想要用多大的金鑰尺寸? (2048)2048妳所要求的金鑰尺寸是 2048 位元請指定這把金鑰的有效期限是多久.

    0 = 金鑰不會過期 = 金鑰在 n 天後會過期w = 金鑰在 n 週後會過期m = 金鑰在 n 月後會過期y = 金鑰在 n 年後會過期

    金鑰的有效期限是多久? (0) 0金鑰完全不會過期以上正確嗎? (y/N) y妳需要一個使用者 ID 來辨識妳的金鑰; 這個軟體會用真實姓名,註釋和電子郵件地址組合成使用者 ID 如下:

    "Ke-Huan Lin (Jedi) "

    真實姓名: Chung-Huang Yang電子郵件地址: [email protected]註釋:妳選擇了這個使用者 ID:

    "Chung-Huang Yang "變更姓名(N), 註釋(C), 電子郵件地址(E)或確定(O)/退出(Q)? O妳需要一個密語來保護妳的私鑰.請輸入密語:請再輸入一次密語:

  • GnuPG執行建立金鑰對我們需要產生大量的隨機位元組. 這個時候妳可以多做一些事情(像是敲打鍵盤, 移動滑鼠, 讀寫硬碟之類的)這會讓隨機數字產生器有更多的機會獲得夠多的亂數...+++++++++++++++++++++++++.++++++++++++++++++++++++...+++++++++++++++++++++++++.+++++隨機位元組不夠多. 請多做一些有的沒的事情,這樣作業系統纔能蒐集到更多的亂數! (還需要 300 位元組)我們需要產生大量的隨機位元組. 這個時候妳可以多做一些事情(像是敲打鍵盤, 移動滑鼠, 讀寫硬碟之類的)這會讓隨機數字產生器有更多的機會獲得夠多的亂數..+++++...+++++++++++++++++++++++++++++++++++..+++++.+++++.++++++++++++++++++++++++++++++>+++++.+++++>.+++++>+++++.+++++^^^^gpg: /home/chyang/.gnupg/trustdb.gpg: 建立了信任資料庫gpg: 金鑰 C09259FD 已被標記成徹底信任了公鑰和私鑰已經被建立及簽署了.gpg: 正在檢查信任資料庫gpg: 3 個勉強信任以及 1 個完全信任是 PGP 信任模型的最小需求gpg: 深度: 0 有效: 1 已簽署: 0 信任: 0-, 0q, 0n, 0m, 0f, 1upub 1024D/C09259FD 2008-04-11

    金鑰指紋 = 0047 8938 EB10 B35C 2AE1 ED26 1A76 625D C092 59FDuid Chung-Huang Yang sub 2048g/37109649 2008-04-11

  • GnuPG的使用-匯出入GnuPG憑證(公開金鑰)

    建立好自己的金鑰對後,接下來就是與他人交換憑證,以便進行秘密通訊,而GnuPG憑證格式至少包括以下內容:

    GnuPG版本編號。憑證擁有者的公開金鑰。

    憑證擁有者的基本資料,如名字或使用者ID等。憑證擁有者的數位簽章。

    憑證的有效期限。

    憑證的公開金鑰偏好使用的加密演算法,如CAST、IDEA或3DES等。

  • 憑證檔的範例內容

    -----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1.4.7 (GNU/Linux)mQGiBEf+q0QRBADkeqwyftjax5KzQK5oHhNvMJIambUT0H0+WzMBEYKmWsMD7IgJnhA8J7fy89PjFXuinNQgXlzRZOjlewknQSkLsLkrWG1dNvISmY+sVsiilsGlFCb7/eROPk5b6dtOBX50RWUM7VuA1GC/JofTjCO+8ONrAsTDe3goE176NU+/kwCg6vckJtMuVVuphGIubmCxESb73NcEANZut63ByevtZrylRSIIi2u9UEHXDf/t1Fl/ALCGKP0aAtnUOcPQKm7a83PwuQpEfPhOpHdW/gh+YIY3quw1AxERS0nFnt/j7rJg9RpgP1V9YPL8Yqdmn7jPOK9D83/Reo7/OfT0Mp7dqiS53rZlTfzZSYpovS7HMF4pG3S7J0IjBACsMdKvj6l98jhGH6mnmFdc0WX2n2TniadIy4UAUxMpqvCeDLOBXe2BT85seRZq5j1ua6WlUyO952m43KoVb/R7Qd5MfiXS4CYe977rx553cHOrt3N8UWJxxdEWmTxuYGIhQ2uP1JbnUpf5HCMgzq5EdJDIFZ2XdY4JauGEzxYHCbQe5qWK5Lit55qHIDxjaHlhbmdAbmtudS5lZHUudHc+iGAEExECACAFAkf+q0QCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAadmJdwJJZ/eq7AJ9NXDeAb0sNbeZG/CzLSHuTgl9VqACeKtpfmJ2WG5kgtDxefW0yatqshf65Ag0ER/6rRBAIAJmPoKkqiOF+94R4KyxOrawfYa7kkhfh1s4OE9yfC96kFgfOnzZc+5tXRSlnfW2CljC48aqXHwPPRzc8I4O2IAV1MshvCe3pldlY3qFzTPLAjGFToSwCNmkON7ApWkcQaLKDuZa2V2jMopk3PbeZohZcHUhCN01GVVVcGQvRKwCPmfajcuTHlnMT2aVyg+n2DqFBMC/0+BtXs6YdmupwgkVG7CXa0l0eF1XxQQKIZQqLWieFBJlskPIYkQlZCYN9PHjIO48uK6XhSTSFB7hHEPRmFcS+exNbPpbdk4miAP3tKzxAF6PWB8yu6MX6IV+ph4BOXulw7jJLku8x2t+6VRsAAwYIAI3VySTMTn4jUCa3/v1CPXRbyHjG40I3WJVGDmemA2+4L/A9uobt6HUeSQ+mjGiBEbz5HVwS2CS3d0EpABJYHV1WLUlHtQa5MzW2D66ax6BAY/abYeJDuN4Z6Rb0V0qQB/+RuRMkoD/msP71mvSwxM7WT5aiM40PVvPfRimWvSkAex7jh+MSr0e6ARDw1aiFkdap9tVcYaY1xshwFeyR7zyc3E5k2uuz+ut695QdVFW01qkc2qctQla/fBm3OcqpREglddAaYMrJ+y+/lJ2qtmONeSGv5sGp737xXMgQ9oj5RfxfdtLpOsmAql0MGxBm8STraToXcIqA+leXQNa+HoeISQQYEQIACQUCR/6rRAIbDAAKCRAadmJdwJJZ/bz2AKCp3Q4dr1sZAdLjVOn8sQzvhUsLAACeP/bWWARrFsI0ZybwEOmu2luBPv4==Cnij-----END PGP PUBLIC KEY BLOCK-----

    交換憑證通常有兩種方式,可透過電子郵件將憑證匯出檔傳送給欲通訊的對方,且在匯出時要指定自己的ID,通常是原先建立金鑰時輸入的電子郵件帳號

    另外還要指定匯出的憑證檔名,檔案內容將會是經過編碼並以ASCII字元呈現的純文字檔,如下圖,匯出的指令格式如『gpg --armor --output --export 』,其範例為『gpg --armor --output chyang.asc --export [email protected]

  • GnuPG的使用-匯出入GnuPG憑證另一種方式是將憑證匯到金鑰伺服器(Key Server),而金鑰伺服器通常是位於網際網路上(如ldap://keyserver.pgp.com)的某個LDAP伺服器主要用以儲存PGP使用者憑證,任何人都可在金鑰伺服器上搜尋並下載其他人的公開金鑰,其匯出指令格式如下:gpg --keyserver --send-key 若匯入他人憑證,可到金鑰伺服器搜尋欲通訊對方的憑證,並下載存成檔案,再將該檔案匯入自己的公開鑰匙環中,並搜尋下載指令如同將自己的憑證匯出到金鑰伺服器一樣,只是使用者ID必須指定對方的ID,指令格式如『gpg --keyserver --search-keys

    』若有符合的公開金鑰,則GnuPG會列出符合的資訊供使用者選擇下載並儲存至該使用者的公開鑰匙環(public key ring)裡

  • GnuPG的使用-加密與解密

    匯入對方的公開金鑰後,接下來就是進行秘密通訊

    亦即該檔案加密傳輸,將檔案以對方的公開金鑰加密後傳送給他(她),對方收到該檔案後便能以自己的私密金鑰解開其指令格式如下:gpg --output --

    encrypt --recipient 。

    其使用範例命令為『gpg --output secret.gpg --encrypt --recipient

    [email protected] plain.txt』。

  • GnuPG警告訊息

    gpg: E1D2CF20: 沒法保證這把金鑰真的屬於叫這個名字的使用者pub 2048g/E1D2CF20 2008-04-11 Chung-Huang Yang

    主鑰指紋: F9D5 2F25 9134 DA17 667C 79EC 6C22 D2A5 FEDB 0C7E

    子鑰指紋: 2F4D F1F8 8C02 81FA C5BC FA91 1828 BE1B E1D2 CF20這把金鑰並 *不* 確定屬於使用者 ID 裡的那個人.除非妳 **真的** 知道自己在做甚麼,否則妳最好在下一個問題回答 no無論如何還是使用這把金鑰嗎? (y/N) y

  • GnuPG提示使用者輸入密語進行解密妳需要用密語來解開下列使用者的私鑰: "Chung-Huang Yang "2048 位元長的 ELG-E 金鑰, ID E1D2CF20, 建立於 2008-04-11 (主要金鑰 ID FEDB0C7E)請輸入密語:gpg: 已用 2048 位元長的 ELG-E 金鑰, ID E1D2CF20, 建立於 2008-04-11 加密了

    " Chung-Huang Yang "

    如果要解密對方傳送來的檔案,則命令為『gpg --output plain.txt --decrypt secret.gpg』

    解密時,會使用到私密金鑰,因此必須輸入通行密語取得私密金鑰,才能順利執行解密

    上圖為GnuPG提示使用者輸入密與,將原始檔案解出另行儲存成plain.txt。

  • 數位簽章的使用

    數位簽章的用法是以--sign參數指定欲產生數位簽章的檔案,如希望簽章內容是以ASCII存放,則可以額外加上—armor參數。命令如『gpg --armor --output plain.gpg --sign --recipient [email protected] plain.txt』,在此產生的簽章為plain.gpg。如果要同時對檔案做數位簽章及加密的話,則使用此命令『gpg --armor --output plain.gpg --encrypt --recipient [email protected] plain.txt』。上述兩種數位簽章的做法都是簽章的內容依附於原始檔案或加密後的檔案中,如果要將簽章分離產生,則可加上參數『--detach-sign』。

  • 產生分離式數位簽章的結果

    gpg: E1D2CF20: 沒法保證這把金鑰真的屬於叫這個名字的使用者pub 2048g/E1D2CF20 2008-04-11 Chung-Huang Yang

    主鑰指紋: F9D5 2F25 9134 DA17 667C 79EC 6C22 D2A5 FEDB 0C7E

    子鑰指紋: 2F4D F1F8 8C02 81FA C5BC FA91 1828 BE1B E1D2 CF20這把金鑰並 *不* 確定屬於使用者 ID 裡的那個人.除非妳 **真的** 知道自己在做甚麼,否則妳最好在下一個問題回答 no無論如何還是使用這把金鑰嗎? (y/N) y

  • 檢核數位簽章的完整性

    檢驗檔案的數位簽章,只要輸入pgp命令加上檔名即可『gpg 』,不需要加任何參數,只要指定檔名,PGP便會自動驗證數位簽章或對檔案解密。

    下圖是檢驗數位簽章的測試結果,顯示其為完整良好的簽章

    gpg: 由 西元2008年04月12日 (週六) 13時23分17秒 建立的簽章, 使用 DSA 金鑰 ID FEDB0C7Egpg: 完好的簽章來自於 " Chung-Huang Yang "gpg: 警告: 這把金鑰並非以受信任的簽章所認證!gpg: 沒有證據指出這個簽章屬於這個持有者.

    主鑰指紋: F9D5 2F25 9134 DA17 667C 79EC 6C22 D2A5 FEDB 0C7E

  • 撤銷公開金鑰

    假設忘記密碼、懷疑公開金鑰被破解、私密金鑰遺失或遭竊取,及認為有其他危害系統安全的情況時,就可以撤銷公開金鑰

    撤銷的命令格式如

    『gpg --output --gen-revoke <使用者ID>』

  • 驗證與信任

    驗證目的是在於讓使用者確實將某把公開金鑰憑證無誤傳送給它的主人,而非假冒第三者

    驗證的方式有許多種,使用者可要求通訊對方將他的公開金鑰複製到磁碟片之後,親自面交,這是最安全的做法,但其實既不方便又無效率。

    另一個可靠方式是核對公開金鑰憑證的指紋,因為每一個公開金鑰都有獨一無二的指紋,這種指紋是以雜湊函數演算法運算得出的訊息摘要,它會成為金鑰的屬性,若想要驗證對方的公開金鑰憑證,使用者可以主動致電對方,請他(她)讀出其公開金鑰指紋。

    然而,這種方式必須在使用者認識對方並能確認其聲音的情況之下,才具有意義,其PGP檢視金鑰指紋的指令如『gpg --fingerprint 』

  • 信任網

    本人(A)

    NB

    YC X

    M

    受簽署方指向簽署方對本人而言,合法有效的鑰匙完全信任由鑰匙的擁有者來簽署鑰匙勉強信任由鑰匙的擁有者來簽署鑰匙

    就驗證機制而言,PGP主要是採取信任網(Web of Trust)的信任模式,如右圖

    由於PGP已經支援X.509憑證,因此亦可採用如同CA(Certification Authority)的階層式信任模式

  • 設定信任他人的程度等級

    使用者可為別人的公開金鑰設定4種不同等級不確定(unknown)不信任(none)勉強信任(marginal)完全信任(full)

    GnuPG至少需要一個完全信任的簽署或三個勉強信任的簽署,才能將一把金鑰視為有效

    其命令如『gpg --edit-key 』

  • 設定信任他人的程度等級-範例gpg (GnuPG) 1.4.7; Copyright (C) 2006 Free Software Foundation, Inc.This program comes with ABSOLUTELY NO WARRANTY.This is free software, and you are welcome to redistribute itunder certain conditions. See the file COPYING for details.pub 1024D/FEDB0C7E 建立於: 2008-04-11 過期: 2009-04-11 用法: SC

    信任: 未知 有效性: 未知sub 2048g/E1D2CF20 建立於: 2008-04-11 過期: 2009-04-11 用法: E[ 未知 ] (1). Chung-Huang Yang 指令> trustpub 1024D/FEDB0C7E 建立於: 2008-04-11 過期: 2009-04-11 用法: SC

    信任: 未知 有效性: 未知sub 2048g/E1D2CF20 建立於: 2008-04-11 過期: 2009-04-11 用法: E[ 未知 ] (1). Chung-Huang Yang 請判斷妳有多信任這位使用者確實驗證其他使用者的金鑰(像是查對身份證, 或從不同的來源檢查指紋等...)的能力1 = 我不知道或不想說2 = 我*不*信任3 = 我勉強信任4 = 我完全信任5 = 我徹底信任m = 回到主選單

    妳的決定是甚麼? 5請問妳是否真的想把這把金鑰設成徹底信任呢? (y/N) ypub 1024D/FEDB0C7E 建立於: 2008-04-11 過期: 2009-04-11 用法: SC

    信任: 徹底 有效性: 未知sub 2048g/E1D2CF20 建立於: 2008-04-11 過期: 2009-04-11 用法: E[ 未知 ] (1). Chung-Huang Yang 請注意顯示出來的金鑰有效性不需要更正,除非妳重新執行程式.指令>

    上圖執行gpg --edit-key 設定對使用者ID為[email protected]的信任程度

  • PGP 使用-Windows

    PGP所提供的視窗版介面程式。PGP的視窗版介面十分美觀,且功能完整,對於Windows系統的使用者而言,不啻是最佳的選擇。

    由於視窗版本必須要付費才能使用,PGP網站上所提供下載的試用版本,不僅限制試用天數為三十天,同時也侷限僅能使用部分功能。

    可以參考試用版所提供的使用手冊,其內容包含所有PGP Desktop功能,其試用版提供功能主要就是金鑰的使用與管理,以及PGP Zip壓縮檔的應用,以下就來說明在Windows XP安裝PGP Desktop後如何使用這些功能。

  • 建立金鑰對的啟始畫面

  • 輸入金鑰的基本資料

  • 設定金鑰的進階資料

  • 設定私密金鑰的通行密語

  • 設定PGP安全性提問

  • 成功建立金鑰對

  • 檢視金鑰內容

    金鑰對成功建立後,則可檢視金鑰之屬性,如下圖

  • 金鑰屬性畫面-說明

    照片:畫面左上角鑰匙圖的部分可以置換成自己照片,若檢視別人的金鑰則顯示對方照片。ID:以32個位元(4個bytes)表示該金鑰的ID。Type:金鑰使用的演算法。Size:金鑰的長度。Trust:設定對該金鑰的信任程度,如果是自己的金鑰,只能設定None或Implicit(意指絕對信任),對於別人的金鑰則可以設定None、Marginal或Trusted三種信任程度。Valid:金鑰的信賴度。Enabled:設定金鑰是否有用。Encoding:設定金鑰編譯方式,變更需要輸入通行密語。Keyserver:設定金鑰伺服器。Created:金鑰的建立日期。

  • 金鑰屬性畫面-說明(續)

    Expires:金鑰的到期日。Group:金鑰的群組,變更需要輸入通行密語。Cipher:設定加解密偏好使用的演算法,變更需要輸入通行密語。Hash:設定雜湊函數演算法,變更需要輸入通行密語。Compression:設定訊息壓縮使用的演算法,變更需要輸入通行密語。Fingerprint:檢視金鑰的指紋值。Subkeys:檢視子金鑰。ADK:檢視額外的加密金鑰(Additional Decryption Key)清單。Revokers:檢視撤銷金鑰者的清單。

  • 檢視金鑰的屬性

    最上方,還有三個子功能,分別是:

    Add Email Address:新增使用者名稱及電子郵件帳號

    Request Certificate:為該金鑰要求建立一個CA憑證申請,可設定憑證要包含的額外資訊

    Change Passphrase(變更通行密語):必須要先輸入原先的通行密語才能進行變更

  • 設定憑證申請的額外資訊

  • PGP產生的CA憑證申請內容

  • 匯出入PGP憑證、簽署與信任公開金鑰

    匯出PGP憑證存成檔案

  • 選擇以電子郵件方式寄送PGP憑證

  • 準備傳送PGP憑證

  • 新增金鑰伺服器的設定畫面

  • 選取並準備匯入PGP憑證

  • 選取要簽署的公開金鑰

  • 簽署一把他人的公開金鑰

  • 設定對他人公開金鑰的信任等級

  • PGP Zip的使用

    PGP Zip的功能,是將檔案的加解密及數位簽章整合在同一操作介面,它的用法與WinZip這類壓縮軟體相似

    針對某些檔案或資料夾加密或簽章,並存成.pgp檔。由於PGP服務與Windows系統整合,並在Windows開機時自動啟動,因此在系統預設的快捷工具列亦可使用此項功能,使用者可以在檔案總管檢視畫面時,隨時將任何檔案或資料夾做成.pgp檔。

  • PGP Zip的功能畫面

  • PGP Zip的加密方式有兩種選項

    Key使用原先以PGP建立的私密金鑰作加密,這是常用來與他人進行秘密通訊時使用,因此必須選擇接收者(Recipient),而接收者可以是多個,其設定法可直接以[Recipients]欄位右邊的[Add Recipients]開啟點選即可。

    Conventional傳統用來對個人的檔案以對稱式加密演算法加密保存的方式,並非以原先使用PGP建立的私密金鑰作為對稱式加密的金鑰,則是必須另外輸入一組密碼作為加解密時的金鑰。

  • 設定PGP Zip要加入的資料夾及檔案

  • 設定加密方式

  • 設定加密方式(說明)

    提供四種加密方式Recipient keys:出現接收者清單供使用者挑選Passphrase:使用Conventional方式加密,設置輸入通行密語。PGP Self-Decrypting Archive:當接收者不是使用PGP時,可選擇此加密方式,產生.exe檔,執行.exe檔前需輸入通行密語。Sign Only:如果選定的檔案為多個,可以選擇針對每個檔案個別做分離式數位簽章檔,預設儲存檔名為原始檔名附加.sig副檔名,而儲存路徑可選擇同原始檔案

  • 增加使用者金鑰

  • 設定簽署者與儲存.pgp檔

  • 開啟PGP Zip快捷工具列

  • 針對所有檔案建立個別的分離式數位簽章

  • PGP Desktop的其他功能PGP Messaging:結合電子郵件軟體或是即時通訊軟體(如AIM)作安全傳輸。PGP Desktop在安裝的時候,就會自動偵測系統安裝使用的電子郵件軟體,並將其功能以Plug-in的方式結合其中,而PGP Desktop 9.8.1目前支援的電子郵件收發軟體如下:

    Microsoft Outlook 2007 (Outlook 12)Microsoft Outlook 2003 SP2Microsoft Outlook XP SP3Microsoft Outlook 2000 SP3Windows Mail 6.0.6000.16386 Outlook Express 6Mozilla 1.7Thunderbird 1.0 or laterLotus Notes 5.0.11, 6.x, and 7.0.1Novell GroupWise 6.5.1 or later

  • PGP Desktop的其他功能(續)PGP Whole Disk Encryption:可以針對整個硬碟或磁碟機加密,包含開機磁區。PGP Virtual Disk volumes:對虛擬磁碟機使用的空間作加密。Encrypt & Sign:對選定的檔案或資料夾所壓縮而成的PGP Zip檔,同時做數位簽章及加密動作。Decrypt & Verify:對PGP Zip檔進行數位簽章驗證及解密。Shred:粉碎所選定的資料夾或檔案,但不限於PGP Zip檔,一般檔案也可以使用,須注意執行此項功能後,其檔案將無法復原,會使用此功能通常主要是考量到某些較具機密性的檔案,已無保存在該磁碟中的必要,才會做此處理。Create SDA:產生自動解壓縮解密的檔案(Self Decrypting Archive),建立之時需要輸入一組通行密語(Passphrase)。

  • 結語

    PGP開發及應用迄今已經十多年,仍舊是最普遍的專業資訊安全軟體,因它發展出來的OpenPGP標準,亦使得FSF(自由軟體基金會)依據該標準規範開發出另一套功能雷同的產品GnuPG。因此PGP在密碼技術應用領域的成就及影響實在是不可多得,它不僅同時實現了網路安全重視的確認性、保密性及不可否認性等安全服務,亦對於有心研究密碼學及網路安全者提供了一個完整的使用與學習環境。

    除了介紹PGP與GnuPG的使用之外,也說明有關原始碼的密碼模組部分,對密碼學應用有興趣的讀者,可進一步去研究這些原始碼如何運用在資訊安全軟體的開發與整合,相信對於密碼學能夠有更深入的瞭解。

  • 參考文獻

    J. Callas, L. Donnerhacke, H. Finney, D. Shaw, and R. Thayer, OpenPGP Message Format, RFC 4880, 2007。Free Software Foundation, Using the GNU Privacy Guard, 2008。http://www.gnupg.org/documentation/manuals/gnupg.pdf。S. Garfinkel, PGP: Pretty Good Privacy, O’Reilly, 1995。OpenPGP Alliance, http://www.openpgp.org/。W. Stallings, Cryptography and Network Security, 4th Edition, Prentice-Hall, Inc., 2006。P. R. Zimmermann, The Official PGP User’s Guide, MIT Press, 1995。

    第15章: PGP/ GnuPGPGP發展歷史PGP發展歷史(續)PGP支援操作平台PGP支援操作平台(商業版)GnuPG發展歷史安裝GnuPG-Lunix安裝GnuPG-WindowsGnuPG的使用 –Linux 建立金鑰對GnuPG金鑰產生GnuPG執行建立金鑰對GnuPG的使用-匯出入GnuPG憑證(公開金鑰)憑證檔的範例內容GnuPG的使用-匯出入GnuPG憑證GnuPG的使用-加密與解密GnuPG警告訊息GnuPG提示使用者輸入密語進行解密數位簽章的使用產生分離式數位簽章的結果檢核數位簽章的完整性撤銷公開金鑰驗證與信任信任網設定信任他人的程度等級設定信任他人的程度等級-範例PGP 使用-Windows建立金鑰對的啟始畫面輸入金鑰的基本資料設定金鑰的進階資料設定私密金鑰的通行密語設定PGP安全性提問成功建立金鑰對檢視金鑰內容金鑰屬性畫面-說明金鑰屬性畫面-說明(續)檢視金鑰的屬性設定憑證申請的額外資訊PGP產生的CA憑證申請內容匯出入PGP憑證、簽署與信任公開金鑰選擇以電子郵件方式寄送PGP憑證準備傳送PGP憑證新增金鑰伺服器的設定畫面選取並準備匯入PGP憑證選取要簽署的公開金鑰簽署一把他人的公開金鑰設定對他人公開金鑰的信任等級PGP Zip的使用PGP Zip的功能畫面PGP Zip的加密方式有兩種選項設定PGP Zip要加入的資料夾及檔案設定加密方式設定加密方式(說明)增加使用者金鑰設定簽署者與儲存.pgp檔開啟PGP Zip快捷工具列針對所有檔案建立個別的分離式數位簽章PGP Desktop的其他功能PGP Desktop的其他功能(續)結語參考文獻