亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 如何應用GPG加密使您的信息安全保障無憂 [打印本頁]

作者: wing731    時間: 2010-01-14 17:49
標題: 如何應用GPG加密使您的信息安全保障無憂

                GPG作為一個開源并且免費的加密和數(shù)字簽名軟件已經(jīng)存在多年。它不但可以為企業(yè)、個人之間的重要信息提供加密保護,還可以為出版的軟件、內核等電子產(chǎn)品進行數(shù)字簽名,防止產(chǎn)品被篡改,最大程度地保障信息安全。
加密和數(shù)字簽名作為保護信息機密性、完整性和不可抵賴性的重要手段在各種信息通信場合得到廣泛的應用。目前,已有不少商業(yè)加密和數(shù)字簽名產(chǎn)品,比如商業(yè)軟件PGP(Pretty Good Privacy)。
另外,在開放源代碼庫中也有一些免費的加密和數(shù)字簽名軟件,其中最被認可的是GPG(GNU Privacy Guard)。GPG是一個完全免費、源代碼公開,并且與PGP完全兼容的軟件產(chǎn)品。今天,GPG已經(jīng)擁有眾多的企業(yè)和個人用戶。
在我國,由于信息安全及隱私保護意識還比較薄弱,PGP或GPG在商業(yè)和個人用戶中的使用并不普遍。隨著信息安全及隱私帶來的問題甚至訴訟的增加,更多企業(yè)和個人開始把眼光投向安全問題的解決。
但是,由于非專業(yè)用戶對簽名和加密等概念的畏難情緒,GPG的應用還多局限于IT技術人員。本文將對Linux環(huán)境下如何應用GPG進行講解,為企業(yè)和個人用戶應用GPG提供幫助。
建立GPG環(huán)境
GPG軟件作為用于加密和數(shù)字簽名的開放源碼工具,許多Linux發(fā)行版本都自帶了該軟件。在默認安裝的情況下,gpg會作為一個基本命令事先安裝好。
如果選用的Linux發(fā)行版默認沒有安裝GPG,可以通過tar包或RPM包進行安裝,可從http://www.gnupg.org/download/下載安裝包。安裝過程比較簡單,這里省略了。
判斷是否安裝有GPG的方法也很簡單。直接在命令行下輸入“gpg -h”命令,如果系統(tǒng)已經(jīng)安裝有GPG,就會顯示關于GPG用法的信息。
確定Linux系統(tǒng)中已經(jīng)安裝了GPG后,就可以開始下面加密和簽名的工作了。
生成密鑰
用戶應用GPG,首先要有一對自己的密鑰。所以,第一步就是產(chǎn)生一對密鑰。gpg命令通過大量參數(shù)提供所需要的幾乎所有操作。其中,參數(shù)“-gen-key”就是用來產(chǎn)生一對密鑰的。在安裝了GPG的Linux系統(tǒng)上可以運行以下命令:
#gpg --gen-key
如果想對產(chǎn)生密鑰的操作進行一些個性化設置,還可以加上其它參數(shù)。比如,要指定生成密鑰存放的位置,可以運行以下命令:
#gpg --gen-key --homedir /mygnupg
命令開始運行后,首先,會看到版本和路徑信息如下:
gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
gpg: /home/terry/.gnupg: directory created
gpg: new configuration file `/home/terry/.gnupg/gpg.conf' created
gpg: keyblock resource `/home/terry/.gnupg/secring.gpg': file open error
gpg: keyring `/home/terry/.gnupg/pubring.gpg' created
隨后需要回答一系列問題,以幫助產(chǎn)生一對密鑰。首先遇到的問題是要求選擇密鑰使用的算法:
Please select what kind of key you want:
(1) DSA and ElGamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection? 1
其中,DSA是數(shù)字簽名算法,RSA和ElGamal是兩種不同原理的非對稱密鑰算法。通常可以選擇“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
Requested keysize is 2048 bits
這里的密鑰長度有768、1024和2048位三種。顯然,密鑰越長越安全,但太長又會影響使用的速度。所以,可以根據(jù)不同的需要選擇適合的長度。筆者的應用更重視安全性,所以選擇了最長的2048位密鑰。
另外,還需要設定密鑰過期的時間:
Please specify how long the key should be valid.
0 = key does not expire
  = key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 1y
Key expires at Sat 10 Sep 2005 01:48:07 PM CST
Is this correct (y/n)? y
原則上,密鑰使用的頻率越高,密鑰有效的時間越長,被攻擊的可能性就越大。所以,要根據(jù)應用的實際情況綜合考慮,確定一個適當?shù)臅r間長度。需要注意的是,密鑰要定期更換,建議絕對不要永遠使用同一對密鑰。
最后,需要輸入一些個人信息,包括真實姓名、電子郵件地址等,用來識別密鑰,最好是如實填寫。比如:
Real name: Terry Yu
Email address: terry@mykms.org
Comment: for test
You selected this USER-ID:
"Terry Yu (for test) "
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
然后,必須輸入一個密碼。密碼用來保護密鑰,沒有這個密碼,任何人都不能看到密鑰本身的內容。密碼是在密鑰文件泄露后惟一的保密措施,它的最大敵人是暴力破解和字典攻擊。所以,一定要選擇一個強壯的密碼,來有效地對抗這些攻擊。
密碼確定以后,系統(tǒng)開始運算:
We need to generate a lot of random bytes.
It is a good idea to perform some other action
(type on the keyboard, move the mouse, utilize the disks)
during the prime generation;
this gives the random number generator a better
chance to gain enough entropy.
..+++++.+++++.+++++.+++++..++++++++++.++++++++++++++
這時需要隨便地敲擊鍵盤或是移動鼠標,以產(chǎn)生一些隨機數(shù),協(xié)助密鑰的順利生成。注意,如果沒有以上動作,很可能最終不能產(chǎn)生密鑰。
系統(tǒng)運算完成后,會出現(xiàn)類似以下的信息:
gpg: /home/terry/.gnupg/trustdb.gpg: trustdb created
public and secret key created and signed.
key marked as ultimately trusted.
pub  1024D/6AE573B5 2004-09-29 Terry Yu (for test)
     Key fingerprint = 0D58 408E 344F BB7B AB95  D000 82B7 8324 6AE5 73B5
sub  2048g/94BF182C 2004-09-29 [expires: 2005-09-29]
pub  1024D/7234E374 2004-09-10 Terry Yu (for test)
     Key fingerprint = A58F D71A 28BA 499D 805B  588E 82FB CD0F 7234 E374
sub  2048g/4907EA0A 2004-09-10 [expires: 2005-09-10]
以上信息表示已經(jīng)成功地為“Terry
Yu”生成并簽名了一對密鑰,密鑰過期時間為“2005-09-10”。在生成密鑰的同時,默認用戶目錄的.gnupg目錄中也存放了與該用戶相關的
GPG配置及密鑰存儲文件。這些文件控制了用戶的GPG環(huán)境,用戶不能直接修改這些文件,所有改動都將通過“gpg”命令實現(xiàn)。
查看密鑰
密匙生成后,可以隨時用以下命令查看。
查看所有密鑰:
#gpg -list-key
查看所有公鑰:
gpg -list-public-key
查看所有私鑰:
gpg -list-secret-key
列出所有簽名:
gpg -list-sig
導出公鑰
在非對稱加密體系中,私鑰是由用戶保管,而公鑰是對外公開的。用戶在生成密鑰對后,需要把其中的公鑰導出到一個文件中,然后將其分發(fā)給其它用戶。
導出公鑰的方法很簡單,通過gpg命令的“-export”參數(shù)就可完成。為了使導出文件是ASCⅡ編碼的,還需要加上參數(shù)“-a”。比如,導出Terry Yu ASCⅡ編碼的公鑰文件,可以使用以下命令:
#gpg --export -a terry@mykms.org > terry.asc
該命令最終生成ASCⅡ編碼的公鑰文件terry.asc如圖1。

圖1 公鑰文件terry.asc
分發(fā)公鑰
這個包含公鑰信息的文件需要對外分發(fā),可以通過各種方式將terry.acs文件分發(fā)給所有與用戶有信息通信需求的人。
最簡單的分發(fā)方式是,將該文件放到互聯(lián)網(wǎng)上供人下載。這種方式需要注意的問題是,所發(fā)布公鑰文件的網(wǎng)站一定要是一個可以信賴的站點。實際應用中,類似的做法很普遍。
比如,Red Hat的公鑰就是在它的官方網(wǎng)站上發(fā)布的,任何人都可以下載獲得,并用來驗證Red Hat所發(fā)布軟件的簽名的正確性。
導入公鑰
作為用戶,也會收到別人的GPG公鑰,它們可能來自網(wǎng)站、電子郵件、FTP和目錄服務等,只要信任其來源,就可以將其導入自己的GPG環(huán)境,之后才可以與相應的人員進行基于GPG的各種應用。導入公鑰的過程可以分為以下三步:
1.導入
比如,Terry收到朋友Brian的公鑰文件brian.gpg,可以使用以下命令導入文件:
#gpg --import terry.gpg
2.核對“指紋”
公鑰是可以偽造的。James可以偽造一個Brian的公鑰,然后想辦法讓
Terry得到。如果Terry對收到的公鑰不加驗證,那么他發(fā)給Brian的加密郵件就可能被James解密。GPG的架構中并沒有一個PKI這樣的證
書管理系統(tǒng),GPG的公鑰信任是通過“Truth Web”實現(xiàn)的。
生成Terry公鑰的“指紋”:
#gpg --fingerprint terry@mykms.org
pub  1024D/7234E374 2004-09-10 Terry
Yu (for test)
     Key fingerprint = A58F D71A 28BA
499D 805B  588E 82FB CD0F 7234 E374
sub  2048g/4907EA0A 2004-09-10 [expires: 2005-09-10]
這個“指紋”是惟一的?梢酝ㄟ^與對方核對“指紋”是否一致,來確定這個公鑰是否可信和合法。
3.簽名
在成功導入,并確定這個公鑰是可以相任之后,要立即對這個公鑰進行簽名。這樣,就可以驗證來自對方郵件的真實性了。
對公鑰進行簽名可以使用如下命令:
#gpg --sing-key brian@mykms.org
或者
#gpg --edit-key name
#command > sign
檢查對方郵件,比如Brian的簽名:
#gpg --check-sigs brian@mykms.org
現(xiàn)在,有了Brian簽名的公鑰,通過這個公鑰就可以和Brain進行非對稱加密通信了。
應用GPG
GPG使用的是非對稱的密鑰體系,用戶擁有一對密鑰,包括一個公鑰和一個私鑰。公鑰對外公布,私鑰則由自己保存。使用公鑰加密的數(shù)據(jù)可以用私鑰解密,同樣,使用私鑰加密的數(shù)據(jù)可以用公鑰解密。
非對稱的密鑰可以用來加密和做數(shù)字簽名。當用戶關心信息保密性時,使用加密功能;當用戶關注信息完整性及不可抵賴性時,使用數(shù)字簽名功能;當用戶需要同時關注信息的機密性、完整性及不可抵賴性時,可以將加密和數(shù)學簽名混合使用。
簡單了解這些密碼學概念后,就可以開始真正的應用實踐了。
對文件進行加密和數(shù)字簽名
KDE中提供了圖形化的加密操作方法。比如,在KDE中對一個文件加密,只需在KDE文件管理器Konqueror中選中該文件,單擊右鍵選擇“Actions”中的“Encrypt File”就可以加密文件。加密后的文件以.asc結尾。
對于圖形方式的加密操作不多做介紹,下面將重點放在命令行操作方式上,介紹命令行下的各種文件加密和簽名的操作方法。
1.對文件進行數(shù)字簽名
#gpg --clearsign policy.txt
You need a passphrase to unlock the secret key for
user: "test (test) "
1024-bit DSA key, ID ADD93830, created 2004-07-01
運行以上命令,生成一個名為report.txt.asc的文件,該文件中除了原文件信息外還包含數(shù)字簽名信息。
2.驗證文件的數(shù)字簽名
#gpg --verify policy.txt.asc
gpg: Signature made 2004年11月04日 星期四 15時58分07秒 UTC using DSA key ID ADD93830
gpg: Good signature from "test (test) "
以上命令運行的結果顯示該簽名是正確的。
3.用指定的公鑰對文件加密
#gpg --encrypt -r terry@mykms.org report.txt
gpg: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
gpg: next trustdb check due at 2005-09-10
運行以上命令,使用自己的公鑰加密report.txt文件,生成加密文件report.txt.gpg。如果使用編輯軟件打開該加密文件,會發(fā)現(xiàn)它包含的是一些不可理解的字符和亂碼。
4.用私鑰對加密文件解密
#gpg --decrypt report.txt.gpg >report.txt
You need a passphrase to unlock the secret key for
user: "test1 (unclassfication) "
2048-bit ELG-E key, ID 33735683, created 2004-09-29
(main key ID 79EB3D97)
gpg: encrypted with 2048-bit ELG-E key, ID 33735683,
created 2004-09-29
      "test1 (unclassfication) "
以上命令要求輸入對應私鑰的保護口令才能成功解密,解密后的文件內容被輸出到report.txt文件中。
5.用公鑰同時進行文件簽名和加密
#gpg -se -r test@yahoo.com.cn  report.txt
You need a passphrase to unlock the secret key for
user: "test (test) "
1024-bit DSA key, ID ADD93830, created 2004-07-01
以上命令要求輸入對應私鑰的保護口令,輸入正確的口令后,簽名和加密成功完成。
這些都是應用GPG簽名和加密文件的一些常用命令,更詳細的用法可以參考GPG的幫助文件。
對電子郵件進行加密和數(shù)字簽名
實際上,GPG應用最多的地方是在電子郵件的加密和數(shù)字簽名上。許多電子郵件客戶端軟件都支持PGP/GPG方式的加密及數(shù)字簽名。這里以Kmail為例,介紹如何設置Kmail,并利用Kmail發(fā)送加密及數(shù)字簽名的電子郵件。
Kmail
是KDE環(huán)境中的電子郵件客戶端,類似于Windows下的Outlook
Express。在選單中選擇“Settings→Configure-Kmail→Identites”,選定一個身份,單擊“Modify”進行編
輯。選擇其中的“Advanced”標簽頁,可以看到類似圖2的界面。

圖2 Kmail的設置界面
其中,“OpenPGP Key”項是該身份所對應的PGP或GPG密鑰,可以單擊“Change”按鈕從GPG環(huán)境中選擇對應的密鑰對。
保存后,GPG的設置完成。試寫一封郵件,如圖3所示。圖中工具欄中凹下去的“鋼筆尖”圖標表示此郵件使用了數(shù)字簽名,緊靠旁邊的鎖形圖標表示加密,如果兩個圖標都凹下去則表示同時使用了加密和數(shù)字簽名。

圖3 使用數(shù)字簽名的電子郵件
發(fā)送郵件時,Kmail會要求給出對應密鑰的保護口令,如圖4所示。

圖4 要求輸入密鑰保護口令
正確輸入保護口令后,會彈出一個確認窗口,如圖5。

圖5 確認窗口
確認內容無誤后,單擊“OK”按鈕,一封帶有數(shù)字簽名的電子郵件就成功發(fā)出。發(fā)送加密郵件,以及發(fā)送同時加密和數(shù)字簽名的郵件,方法都是類似的。
軟件包簽名驗證
對于Red Hat等Linux發(fā)行商來說,他們常常會利用GPG對發(fā)布的軟件包進行簽名。用戶可以通過驗證軟件包的簽名來確保得到的軟件包沒有損壞,或者是被他人動過手腳。
驗證一個下載軟件包的GPG簽名可以按照以下步驟來進行:
1.從網(wǎng)上下載或其它方式得到軟件發(fā)行商的公鑰,并將其導入自己的GPG環(huán)境中。
2.通過對比“電子指紋”來確認公鑰,并對此公鑰進行簽名。
3.使用以下命令來驗證軟件包的GPG簽名:
#gpg --verify singaturefile.tar.gz taballpackage.gz
如果該軟件是RPM格式的,還可以使用如下命令來驗證:
#rpm -Kv your.rpm
密鑰管理
前面介紹了GPG在加密和簽名兩方面的應用,在應用過程中用戶要認真地對
待密鑰管理問題。GPG的密鑰采用的是信任機制,并沒有一個中心的PKI可以幫助發(fā)布和驗證GPG用戶的公鑰。為了防止公鑰欺騙,保證公鑰的不可否認性
(Non-repudiation),需要有一種機制來進行管理。下面是一些有益的建議,可供參考。
◆ 備份好私鑰
一旦私鑰丟失或損壞,則無法打開以前加密的文件。并且,即使知道私鑰被他人濫用,也無法使自己的公鑰過期。有了私鑰的備份,就能有效地回避此類風險。
◆ 建立有過期保護的公鑰機制
萬一私鑰丟失不能人工收回公鑰時,公鑰也可以在預定時間后自動過期。
◆ 為私鑰加上強口令保護
這樣,即使私鑰文件泄漏,還有口令保護。保護口令一定要有足夠的復雜度,才能有效地對抗暴力破解。
◆ 多重機制
在緊急情況下恢復密鑰要有多重控制。
◆ 使用版本控制軟件
使用版本控制軟件來收集和維護自己的公鑰庫。版本控制軟件可以有效地記錄歷史變更情況,保證公鑰庫的有條不紊。
小結
GPG作為一個開源并且免費的加密和數(shù)字簽名軟件已經(jīng)存在多年。它不但可以為企業(yè)、個人之間的重要信息提供加密保護,還可以為出版的軟件、內核等電子產(chǎn)品進行數(shù)字簽名,防止產(chǎn)品被篡改,最大程度地保障信息安全。
對于Linux用戶來說,對信息安全的要求相對更高,GPG更值得在Linux用戶中推廣和應用。
               
               
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/100692/showart_2149266.html
作者: dousiang    時間: 2012-01-16 17:26
現(xiàn)在應該越來越要注重用戶的個人信息安全了 尤其是在泄密門發(fā)生之后




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2