欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用開源PGP技術實現(xiàn)Solaris 10下的加密解密(圖)

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-08 19:02:37   作者:佚名   我要評論
一、PGP(Pretty Good Privacy)技術簡介   1、PGP簡介   PGP技術是一個基于非對稱加密算法RSA公鑰體系的郵件加密技術,也是一種操作簡單、使用方便、普及程度較高的加密軟件。PGP技術不但可以對電子郵件加密,防止非授權者閱讀信件;還能對電子郵件附加數(shù)字簽名
一、PGP(Pretty Good Privacy)技術簡介
  1、PGP簡介
  PGP技術是一個基于非對稱加密算法RSA公鑰體系的郵件加密技術,也是一種操作簡單、使用方便、普及程度較高的加密軟件。PGP技術不但可以對電子郵件加密,防止非授權者閱讀信件;還能對電子郵件附加數(shù)字簽名,使收信人能明確了解發(fā)信人的真實身份;也可以在不需要通過任何保密渠道傳遞密鑰的情況下,使人們安全地進行保密通信。
  PGP技術創(chuàng)造性地把RSA非對稱加密算法的方便性和傳統(tǒng)加密體系結合起來,在數(shù)字簽名和密鑰認證管理機制方面采用了無縫結合的巧妙設計,使其幾乎成為最為流行的公鑰加密軟件包。
  PGP使用兩個密鑰來管理數(shù)據(jù):一個用以加密,稱為公鑰(Public Key);另一個用以解密,稱為私鑰(Private Key)。公鑰和私鑰是緊密聯(lián)系在一起的,公鑰只能用來加密需要安全傳輸?shù)臄?shù)據(jù),卻不能解密加密后的數(shù)據(jù);相反,私鑰只能用來解密,卻不能加密數(shù)據(jù)。
  現(xiàn)在廣泛使用的公共密鑰系統(tǒng)是基于PGP方式。它是一個基于RSA公鑰加密體系的開源軟件,但它與RSA加密算法又有所不同。確切地說,PGP使用的是RSA和傳統(tǒng)算法DES結合的新算法——IDEA(受專利保護)。
  RSA算法是利用素數(shù)(即質數(shù))的因式不可分解性。RSA算法的要點與難點有二個:算法主要為求模取余運算;判斷一個數(shù)是否為素數(shù)。由于進行的都是大數(shù)計算,使得RSA最快的情況也比DES慢上百倍,所以為了避開速度這一缺陷,PGP采用了改進后的IDEA算法。
  2、為什么采用PGP加密?
  目前國內多使用56位的加密系統(tǒng),實際上是不安全的,而PGP是最少128位加密的強大的加密軟件, 可以用于任何格式的文檔,包括文本、電子表、圖形等。具備數(shù)字簽名功能,用于檢查消息和文件的原作者和完整性。支持以下密鑰算法:
  1)公用密鑰算法:Diffie-Hellman/DSS,RSA
  2)散列功能:MD5, RIPEMD-160, SHA-1
  3)對稱算法:CAST, IDEA, Triple-DES
  包括密鑰生成和管理的整套工具,使系統(tǒng)管理員能夠靈活控制整個網(wǎng)絡系統(tǒng)的安全策略。
  3、如何部署大規(guī)模PGP系統(tǒng)
  1)建立網(wǎng)絡系統(tǒng)的PGP證書管理中心
  在大型網(wǎng)絡系統(tǒng)中,利用PGP Certificate Server建立一個證書的管理中心??梢暂p松地創(chuàng)建并管理統(tǒng)一的公用密鑰基礎結構。從而在網(wǎng)絡系統(tǒng)內部或Internet之間進行保密通訊。 通過將Lightweight Directory Access Protocol (LDAP)目錄和PGP證書的優(yōu)點相結合, PGP Certificate Server大大簡化了投遞和管理證書的過程。同時具備靈活的配置和制度管理。PGP Certificate Server支持LDAP和HTTP協(xié)議,從而保證與PGP客戶軟件的無縫集成。 其Web接口允許管理員執(zhí)行各種功能,包括配置、報告和狀態(tài)檢查,以實現(xiàn)對其遠程管理。 我們可以在Sun Solaris或Microsoft Windows Server (Intel)平臺上實現(xiàn)。
  2)對文檔和電子郵件進行PGP加密
  在操作系統(tǒng)可以安裝PGP,對文件系統(tǒng)和電子郵件系統(tǒng)進行加密傳輸。
  3)在應用系統(tǒng)中集成PGP加密
  利用PGP Software Development Kit(PGP 軟件開發(fā)包)系統(tǒng)開發(fā)人員可以將密碼功能結合到現(xiàn)有的應用系統(tǒng)中, 如電子商務、法律、金融及其他應用中。
  4、PGP的 運行方式
  PGP有5種業(yè)務:認證性?保密性?壓縮?電子郵件的兼容性?分段?表1是這5種業(yè)務的總結?其中CAST-128是一種分組密碼,算法具有傳統(tǒng)Feistel網(wǎng)絡結構,采用16輪迭代,明文分組長度為64比特,密鑰長以8比特為增量,從40比特到128比特可變?
  
功能
使用的算法
功能描述
數(shù)字簽字
DSS/SHA或RSA/SHA
發(fā)送方使用SHA產(chǎn)生消息摘要,再用自己的秘密鑰按DSS算法或RSA算法對消息摘要簽字。
消息加密
CAST或IDEA或三個密鑰的三重DES/ElGamal或RSAIDEA或三重DES加密
消息由用戶產(chǎn)生的一次性會話密鑰按CAST-128或消息加密,會話密鑰用接收方的公開鑰按ElGamal或RSA加密。
壓縮格式
ZIP, ZLIB, BZIP2
消息經(jīng)ZIP, ZLIB, BZIP2算法壓縮后存儲或傳送
電子郵件的兼容性
使用基數(shù)64變換
將加密的消息轉換為ASCII字符的兼容性基數(shù)64變換串,以提供電子郵件應用系統(tǒng)的透明性。
分段
對消息進行分段和重組以適應PGP對消息最大長度的限制。
  表1 PGP的業(yè)務

圖1:PGP工作流程
  5、開源pgp工具
  后來GNU和自由軟件運動的出現(xiàn)可以使用免費的GPG,它的安全性與PGP一樣強,可以充分地保護每個用戶的隱私。 GnuPG 是用于安全通信的工具;它是對 PGP加密技術的完全和免費的開源代替產(chǎn)品。使用 GnuPG,你可以給你的數(shù)據(jù)和通信加密,并可以使用 數(shù)碼簽名(digitally signing)來驗證你的通信。GnuPG還能夠解密及校驗 PGP 5.x。
  因為GnuPG 和其它加密標準兼容,你的安全通信可能會與其它操作系統(tǒng)(如 Windows 和 Macintosh)上的電子郵件程序兼容。GnuPG 使用公鑰加密術(public key cryptography)來為用戶提供安全的數(shù)據(jù)交換。在公鑰加密術方案中,你生成兩把鑰匙:公鑰和密鑰。你和通信對方或鑰匙服務器互換你的公鑰,你決不應該出示你的密鑰。
  二、在Solaris的GnuPG安裝
  首先先必須安裝軟件軟件包:
  bzip2-1.0.5
  libidn
  libiconv
  libintl
  readline
  openssl-0.9.8g
  curl
  openldap
  sasl
  zlib
  限于篇幅筆者不詳細介紹了。
  #gunzip gnupg-1.4.8-sol10-x86-local.gz
  #pkgadd –d gnupg-1.4.8-sol10-x86-local

圖2:是gunpg安裝成功界面
  另外判斷是否安裝有GnuPG的方法也很簡單。直接在命令行下輸入“gpg -h”命令,如果系統(tǒng)已經(jīng)安裝有GnuPG,就會顯示關于GPG版本和用法的信息。
三、Gunpg在Solais下的配置
  確定系統(tǒng)中已經(jīng)安裝了GnuPG后,就可以開始下面加密和簽名的工作了。
  1、生成密匙
  用戶應用GnuPG,首先要有一對自己的密鑰。所以,第一步就是產(chǎn)生一對密鑰。gpg命令通過大量參數(shù)提供所需要的幾乎所有操作。其中,參數(shù)“-gen-key”就是用來產(chǎn)生一對密鑰的。在安裝了GPG的Linux系統(tǒng)上可以運行以下命令:
  #gpg --gen-key
  命令開始運行后,首先,會看到版本和路徑信息。隨后需要回答一系列問題,以幫助產(chǎn)生一對密鑰。其中,DSA是數(shù)字簽名算法,RSA和ElGamal是兩種不同原理的非對稱密鑰算法。通??梢赃x擇“1”,這樣生成的密鑰可以同時用作簽名和加密兩種用途。
  接著,會要求選擇密鑰的長度。這里的密鑰長度有768、1024和2048位三種。如圖 3 。

圖3:選擇密鑰使用的長度
  顯然,密鑰越長越安全,但太長又會影響使用的速度。所以,可以根據(jù)不同的需要選擇適合的長度。筆者選擇了的1024位密鑰。另外,還需要設定密鑰過期的時間,原則上,密鑰使用的頻率越高,密鑰有效的時間越長,被攻擊的可能性就越大。
  所以,要根據(jù)應用的實際情況綜合考慮,確定一個適當?shù)臅r間長度。需要注意的是,密鑰要定期更換,建議絕對不要永遠使用同一對密鑰。
  最后,需要輸入一些個人信息,包括真實姓名、電子郵件地址等,用來識別密鑰,最好是如實填寫。然后,必須輸入一個密碼。密碼用來保護密鑰,沒有這個密碼,任何人都不能看到密鑰本身的內容。密碼是在密鑰文件泄露后惟一的保密措施,它的最大敵人是暴力破解和字典攻擊。
  所以,一定要選擇一個強壯的密碼,來有效地對抗這些攻擊。 密碼確定以后,系統(tǒng)開始運算。這時需要隨便地敲擊鍵盤或是移動鼠標,以產(chǎn)生一些隨機數(shù),協(xié)助密鑰的順利生成。注意,如果沒有以上動作,很可能最終不能產(chǎn)生密鑰。系統(tǒng)運算完成后,會出現(xiàn)類似圖4的信息:

圖4:成功生成鑰匙文件
  2、查看密鑰
  使用下面的命令:
  gpg --list-keys
  你會看到和圖 5相似的輸出:

圖5:查看所有密鑰
3、其他常用命令:

  查看所有公鑰:

  gpg --list-public-key

  查看所有私鑰:

  gpg --list-secret-key

  列出所有簽名:

  gpg --list-sig

  4、公鑰的使用

  接下來要做的工作是輸出一個用來發(fā)布的公鑰:

  gpg --export -a -o yourpubkey.asc

  -a 是ASCII編碼形式,-o 說明輸出公鑰到 yourpubkey.asc 文件。要發(fā)布這個公鑰,可以將yourpubkey.asc文件放在你的主頁上,也可以通過郵件寄給朋友。

  當你收到朋友發(fā)來的公鑰,你需要將這把公鑰導入你的鑰匙庫。例如,他寄給你的公鑰是 friendpubkey.asc ,使用下面命令就可以導入進鑰匙庫:

  gpg --import friendpubkey.asc

  5、生成一份廢棄證書

  在生成鑰匙對后,還應該為公鑰創(chuàng)建一份廢棄證書。這不是廢棄剛剛生成的鑰匙,而是提供了一種停止鑰匙被繼續(xù)公開使用的安全方法。當忘記了口令句,或者該口令句被竊取,或者更換了聯(lián)系郵件地址,或系統(tǒng)崩潰等情況下,可以使用該廢棄證書宣告原來的公鑰無效。使用--gen-revoke選項生成廢棄證書:

  #gpg --output revoke.asc --gen-revoke [user-id: goodcjh@2911.net]

  確認廢棄原因后,輸入用來生成鑰匙的口令句。注意,如果省略了--output revoke.asc選項,則廢棄證書只會被顯示在屏幕上,需要進行復制、粘貼操作,并保存為文件才行。

  四、Gunpg在Solaris下的應用

  1、對文件進行加密和解密

  Gunpg使用的是非對稱的密鑰體系,用戶擁有一對密鑰,包括一個公鑰和一個私鑰。公鑰對外公布,私鑰則由自己保存。使用公鑰加密的數(shù)據(jù)可以用私鑰解密,同樣,使用私鑰加密的數(shù)據(jù)可以用公鑰解密。

  2、使用GnuPG進行數(shù)字簽名(sign)

  利用GnuPG數(shù)字簽名的方式有三種: 1.顯式數(shù)字簽名,即直接把數(shù)字簽名添加在文件內容的后面。這樣做的好處是簡單,可以直接閱讀信息。 2.隱匿數(shù)字簽名,即簽名后隱藏文件內容。這樣做的好處是把真實信息隱藏在簽名檔中。如果想要查看信息,使用命令:

  #gpg -d goodcjh.file.asc

  3、把數(shù)字簽名單獨存放于一個文件。

  #gpg -ba goodcjh.file

  這時目錄下會出現(xiàn)一個cjh.file.asc的簽名文件。如果此時修改原文件test.file的內容,再次校驗數(shù)字簽名檔時就會被警告。

  使用GnuPG進行數(shù)據(jù)加密和解密,例如,現(xiàn)有一份文本文件,內容為“goodcjh using GnuPG on solaris”。使用如下命令進行數(shù)據(jù)加密:

  #gpg -ea -r goodcjh test.txt

  -e表示加密選項;-a表示使用ASCⅡ字符,如果不指定,默認輸出為二進制文件;-r指定某用戶的公鑰;text.txt為所要加密的文件名。

  解密操作使用命令:

  #gpg -d goodcjh.file.asc >test.file

  一般可以用以下命令來生成一個同時帶有數(shù)字簽名和加密的文檔:

  #gpg -o test.gpg -ea -s -r goodcjh.test.file

  其中-o表示輸出文件名;-s表示加入數(shù)字簽名。

  另外在GPG的使用過程中,可以進行多次加密使數(shù)據(jù)更加安全。命令如下:

  #gpg -eas -r goodcjh test.file -o test.gpg.nc1

  #gpg -eas -r goodcjh test.gpg.nc1 -o test.gpg.nc2

  #gpg -eas -r goodcjh test.gpg.nc2 -o test.gpg.nc3

  解密操作過程類似。


五、對文件進行數(shù)字簽名和驗證
  #gpg --clearsign policy.txt
  運行以上命令,生成一個名為report.txt.asc的文件,該文件中除了原文件信息外還包含數(shù)字簽名信息。
  驗證文件的數(shù)字簽名
  #gpg --verify policy.txt.asc
  在電子郵件中使用gunpg
  在Mutt中使用GnuPG
  GnuPG用的最多的地方,還是在收發(fā)郵件的過程中。這里以Mutt作為郵件客戶端來舉例。Mutt對GnuPG支持的非常好,并且如果你不做任何設置,它會自動到.gnupg目錄下調用公鑰和密鑰。
  1、發(fā)信
  寫完一封信,在發(fā)出之前,可以使用下列功能: 通過按“Esc+K”鍵可以添加GPG文檔,按照提示輸入公鑰ID號,如0B383904,或者直接回車從鑰匙圈上選擇。
  2、閱讀電子郵件
  當你收到一封朋友寄來的加密閱讀電子郵件時,Mutt會在郵件索引頁中,用P表示是加密過的信件,用s表明有簽名。 要打開一封P標志的信時,Mutt提示先輸入使用密鑰的口令??诹钶斎胝_,Mutt用密鑰自動解密該郵件。當你關閉Mutt,下次再看這封郵件時,需要再次輸入口令和解密過程。 打開一封s標志的信,Mutt自動匹配鑰匙庫里面的公鑰,顯示信件內容的同時也顯示簽名信息。
  圖形化電子郵件Ximin下使用gunpg
  Ximin下使用gunpg界面如圖 6 。

  常見問題:
  當您給電子郵件添加一個加密簽名時,您可能會看到下面的錯誤:
  Failed to GPG sign: Broken pipe
  gpg: skipped ’’: secret key not available
  gpg: signing failed: secret key not available要更正此錯誤,請執(zhí)以下步驟:
  打開以下文件:$HOME/.gnupg/gpg.conf
  注釋掉以下行:use-agent
  總結:Gunpg作為一個開源并且免費的加密和數(shù)字簽名軟件已經(jīng)存在多年。它不但可以為企業(yè)、個人之間的重要信息提供加密保護,還可以為出版的軟件、內核等電子產(chǎn)品進行數(shù)字簽名,防止產(chǎn)品被篡改,最大程度地保障信息安全。 對于Unix用戶來說,對信息安全的要求相對更高,gunpg更值得在unix用戶中推廣和應用。
  有用參考資料:
  Gunpg加密技術中可以研究討論之處極多,這里只對 GnuPG 蜻蜓點水地介紹了一下。如果你想深入了解這方面的知識,可以參看下面的資料。
  在線的文檔
  Gpg –h ##可以顯示GnuPG 命令和選項的快捷參考。
  有用的網(wǎng)站:
  http://www.gnupg.org — GnuPG 網(wǎng)站,其中有到最新 GnuPG 發(fā)行版本、通俗易懂的用戶指南、以及其它加密資源的鏈接。
  相關書籍:
  PGP &GPG ,作者Michael W. Lucas;No Starch Press出版。

PGP &GPG封面

相關文章

最新評論