成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關(guān)注微信公眾號

用免費(fèi)GPG加密收發(fā)Email
2005-12-19   

GPG即GNU Privacy Guard,它是加密工具PGP(Pretty Good Privacy )的非商業(yè)化版本,用于對Email、文件及其他數(shù)據(jù)的收發(fā)進(jìn)行加密與驗(yàn)證,確保通信數(shù)據(jù)的可靠性和真實(shí)性。本文將對GPG技術(shù)及相關(guān)工具進(jìn)行介紹,旨在幫助網(wǎng)上沖浪者之間“真誠”交流。
一、PGP概述
在介紹GPG前,先讓我們看看PGP的基本原理及應(yīng)用規(guī)則。
與許多加密方法一樣,PGP使用雙密匙來加密數(shù)據(jù)。每個使用PGP加密技術(shù)的人都要創(chuàng)建一對密匙,一個叫做公匙,另一個叫做私匙。公匙可被廣泛傳播,甚至保存在公共密匙數(shù)據(jù)庫中以被其他Internet用戶查閱。私匙屬于個人信息,絕不應(yīng)該泄漏給其他人。
公匙和私匙相互作用對數(shù)據(jù)進(jìn)行加密及解密。被公匙加密的數(shù)據(jù)只能被私匙解密,被私匙加密的數(shù)據(jù)也只能被一個公匙解密。這樣就可以實(shí)現(xiàn)雙重認(rèn)證。
用戶在發(fā)送關(guān)鍵信息給指定人前,首先使用該用戶的公匙對信息進(jìn)行加密。因?yàn)橹挥惺褂迷撚脩舻乃匠撞拍軐Πl(fā)送信息進(jìn)行解密,所以就保證了沒有私匙的其他人不會解密信息。
另外,用戶也可以使用他的私匙來加密信息,然后發(fā)送給許多人。因?yàn)橹挥惺褂冒l(fā)送者的公匙才能對接收信息進(jìn)行解密,這樣接收者就能確信信息的確來自某個人。
二、獲取及安裝GPG
前面我們提到,GPG是PGP的非商業(yè)版本,也就是免費(fèi)版本。所以,理解并掌握GPG技術(shù)具有很大的實(shí)用價(jià)值和推廣效應(yīng)。
GPG的下載地址是http://www.gnupg.org/download.html
GPG的當(dāng)前版本是1.0.6,另外還有一個安全補(bǔ)丁。同時下載這2個文件gnupg-1.0.6.tar.gz和gnupg-1.0.5-1.0.6.diff.gz,對它們解壓縮,安裝補(bǔ)丁,運(yùn)行configure腳本程序進(jìn)行配置。請注意:默認(rèn)安裝后,配置選項(xiàng)已適用于大多數(shù)用戶。然后,運(yùn)行make、make install安裝GPG二進(jìn)制文件以及其他組件。相關(guān)命令如下:
$ tar -xzf gnupg-1.0.4.tar.gz$ cd gnupg-1.0.4$ patch -p1 <../gnupg-1.0.4.security-patch1.diffpatching file g10/mainproc.cpatching file g10/plaintext.cpatching file g10/openfile.c$ ./configure...[ Output of configure ]...$ make...[ Output of make ]...$ suPassword:# make install...[ Output of make install ]...# exit$
三、創(chuàng)建公匙和私匙
在發(fā)送或接收加密數(shù)據(jù)前,首先需要創(chuàng)建一對密匙,即公匙和私匙。我們可以使用如下命令完成創(chuàng)建工作:
$ gpg --gen-key
如果是初次使用GPG,GPG會創(chuàng)建目錄$HOME/.gnupg。然后我們必須再次運(yùn)行這個命令,并依次回答確定PGP列出的一系列問題。對于這些問題,只需簡單地選擇默認(rèn)值就可以。下面是相關(guān)命令執(zhí)行情況:
$ gpg --gen-keyPlease select what kind of key you want: (1) DSA and ElGamal (default) (2) DSA (sign only) (4) ElGamal (sign and encrypt)Your selection? 1DSA 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 bitsWhat keysize do you want? (1024) 1024Requested keysize is 1024 bitsPlease 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 yearsKey is valid for? (0) 0Key does not expire at allIs this correct (y/n)? yYou need a User-ID to identify your key; the softwareconstructs the user id from Real Name, Comment andEmail Address in this form: Heinrich Heine (Der Dichter) Real name: Joe UserEmail address: joe@mynet.netComment: PGP Rules!You selected this USER-ID: Joe User (PGP Rules!) Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? oYou need a Passphrase to protect your secret key.Enter passphrase:Repeat passphrase:
請注意,在最后輸入passphrase時,不要隨意設(shè)置。建議按照設(shè)置口令的一般規(guī)則設(shè)置passphrase。
進(jìn)行到這里,GPG將開始創(chuàng)建密匙了。但是你可能會看到下面的信息:
Not enough random bytes available. Please do some otherwork to give the OS a chance to collect more entropy!
這是因?yàn)?,?chuàng)建密匙前,GPG還需要一些少量但穩(wěn)定的隨機(jī)數(shù)信息。在Linux中,通常情況下,GPG從/dev/random設(shè)備得到這些隨機(jī)數(shù),并且最好在系統(tǒng)運(yùn)行的當(dāng)前狀態(tài)下。我們可以通過移動鼠標(biāo)或者敲打多次Shift、Ctrl鍵來完成隨機(jī)數(shù)創(chuàng)建工作。
最終,將出現(xiàn)GPG成功創(chuàng)建密匙的信息:
public and secret key created and signed.
四、操作密匙
有關(guān)密匙操作的方面包括:密匙列表、密匙導(dǎo)入、密匙導(dǎo)出、密匙簽名以及用戶信任,下面分別介紹。
1、密匙列表
密匙列表非常重要,獲取密匙列表以及其所有者的名稱、Email地址的命令及執(zhí)行情況如下:
$ gpg --list-keys/home/joe/.gnupg/pubring.gpgpub 1024D/D9BAC463 2001-01-03 Joe User (PGP Rules!) sub 1024g/5EE5D252 2001-01-03pub 1024D/4F03BD39 2001-01-15 Mike Socks (I'm WIRED) sub 1024g/FDBB477D 2001-01-15$
輸出結(jié)果中的每一行包含一個用于加密文件的公匙信息,以及加密數(shù)據(jù)可被發(fā)送的Email地址。
2、密匙的導(dǎo)入和導(dǎo)出
密匙的導(dǎo)入和導(dǎo)出操作在PGP世界中簡直就是家常便飯,因?yàn)闉榱税踩粨Q數(shù)據(jù),發(fā)送者和接收者之間必須首先具有相互的公匙,而實(shí)現(xiàn)這個目的就需要密匙的導(dǎo)入和導(dǎo)出。
首先看看如何導(dǎo)出密匙。假設(shè)用戶是mike,具體的命令是:
$ gpg --export mike@mynet.net >mike.gpg
這樣,對于mike@mynet.net的公匙信息就保存到了mike.gpg文件中,然后mike就可用將mykey.gpg傳播給朋友、合作伙伴,實(shí)現(xiàn)安全通信。但是這個mike.gpg是一個不可讀格式的文件,就是說其內(nèi)容看起來非常雜亂。能否生成一個標(biāo)準(zhǔn)ASCII碼格式的導(dǎo)出密匙文件呢?當(dāng)然可以,添加一個“-a”參數(shù)就可以,命令如下:
$ gpg -a --export mike@mynet.net >mike.gpg
新mike.gpg具有很好的格式,并包含同樣的公匙信息以及常規(guī)鑒別字符串。
接著看看如何導(dǎo)入密匙,其模式與導(dǎo)出密匙相似,假設(shè)用戶是god,命令是:
$ gpg --import mike.gpg
這樣,god就可以接收來自mike、經(jīng)mike的公匙加密的郵件信息了。
3、密匙簽名和用戶信任
盡管在理論上講,具備了公匙和私匙就可以實(shí)現(xiàn)安全的信息通訊,但是在實(shí)際應(yīng)用中,還必須對公匙進(jìn)行有效確認(rèn)。因?yàn)?,確實(shí)存在偽造公匙信息的可能。
由此,在GPG中引入了一個復(fù)雜的信任系統(tǒng),以幫助我們區(qū)分哪些密匙是真的,哪些密匙是假的。這個信任系統(tǒng)是基于密匙的,主要包括密匙簽名。
當(dāng)收到熟人的公匙并且GPG告知不存在任何實(shí)體可信信息附加于這個公匙后,首要的事情就是對這個密匙進(jìn)行“指紋采樣”(fingerprint)。例如,我們對來自mike的公匙進(jìn)行了導(dǎo)入操作,并且GPG告知我們不存在這個密匙的附加可信信息,這時候,我們首先要做的工作就是對這個新密匙進(jìn)行“指紋采樣”,相關(guān)命令及執(zhí)行情況如下:
$ gpg --fingerprint mike@hairnet.orgpub 1024D/4F03BD39 2001-01-15 Mike Socks (I'm WIRED) Key fingerprint = B121 5431 8DE4 E3A8 4AA7 737D 20BE 0DB8 4F03 BD39sub 1024g/FDBB477D 2001-01-15$
這樣,就從密匙數(shù)據(jù)中生成了其指紋信息,并且應(yīng)該是唯一的。然后,我們打電話給mike,確認(rèn)兩件事情。首先,他是否發(fā)送給我們了密匙;其次,他的公匙的指紋信息是什么。如果Mike確認(rèn)了這兩件事情,我們就可以確信這個密匙是合法的。接下來,我們對密匙進(jìn)行簽名操作,以表示這個密匙來自Mike而且我們對密匙的信任,相關(guān)命令及執(zhí)行情況如下:
$ gpg --sign-key mike@hairnet.orgpub 1024D/4F03BD39 created: 2001-01-15 expires: neversub 1024g/FDBB477D created: 2001-01-15 expires: never(1) Mike Socks (I'm WIRED) pub 1024D/4F03BD39 created: 2001-01-15 expires: neverFingerprint = B121 5431 8DE4 E3A8 4AA7 737D 20BE 0DB8 4F03 BD39Mike Socks (I'm WIRED) Are you really sure that you want to sign this keywith your key: Ima User (I'm just ME) Really sign? yYou need a passphrase to unlock the secret key foruser: Ima User (I'm just ME) 1024-bit DSA key, ID D9BAC463, created 2001-01-03Enter passphrase:$
執(zhí)行到此,使用我們的私匙完成了對Mike的公匙的簽名操作,任何持有我們的公匙的人都可以查證簽名確實(shí)屬于我們自己。這個附加到Mike的公匙上的簽名信息將隨它環(huán)游Internet世界,我們使用個人信譽(yù),也就是我們自己的私匙,保證了那個密匙確實(shí)屬于Mike。這是一個多么感人的充滿誠信的故事啊 :-) 現(xiàn)實(shí)世界的人們是否應(yīng)該從這嚴(yán)格的技術(shù)標(biāo)準(zhǔn)中反思些什么呢?
還是回到這里。獲取附加于一個公匙上的簽名信息列表的命令是:
gpg --check-sigs mike@hairnet.org
簽名列表越長,密匙的可信度越大。其實(shí),正是簽名系統(tǒng)本身提供了密匙查證功能。假設(shè)我們接收到一個簽名為Mike的密匙,通過Mike的公匙,我們驗(yàn)證出簽名確實(shí)屬于Mike,那么我們就信任了這個密匙。推而廣之,我們就可以信任Mike簽名的任何密匙。
為了更加穩(wěn)妥,GPG還引入了另一個附加功能:可信級別(trust level)。使用它,我們可以為我們擁有的任何密匙的所有者指定可信級別。例如,即使我們知道Mike的公匙是可信的,但是事實(shí)上我們不能信任Mike在對其他密匙簽名時的判斷;我們會想,Mike也許只對少數(shù)密匙進(jìn)行了簽名,但卻沒有好好地檢查一遍。
設(shè)置可信級別的命令及執(zhí)行情況如下:
$ gpg --edit-key mike@hairnet.orgpub 1024D/4F03BD39 created: 2001-01-15 expires: never trust: -/fsub 1024g/FDBB477D created: 2001-01-15 expires: never(1) Mike Socks (I'm WIRED) Command> trust 1 = Don't know 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully s = please show me more information m = back to the main menuYour decision? 2Command> quit$
在命令編輯環(huán)境中執(zhí)行trust,然后選擇級別2(I do NOT trust),這樣我們割斷了任何信任鏈,使每個密匙都必須經(jīng)過Mike的簽名。
五、使用GPG收發(fā)數(shù)據(jù)
下面我們開始討論如何使用GPG收發(fā)數(shù)據(jù),這是日復(fù)一日的工作,一定要理解并熟練。在本文開始的PGP概述部分,我們提到了數(shù)據(jù)交換的兩種方式,現(xiàn)在我們對其分類概念化:
●數(shù)據(jù)簽名傳輸(Signed data):發(fā)送者使用私匙對數(shù)據(jù)加密,接收者使用公匙對數(shù)據(jù)解密。
●數(shù)據(jù)加密傳輸(Encrypted data):發(fā)送者使用公匙對數(shù)據(jù)加密,接收者使用私匙對數(shù)據(jù)解密。
以下分別詳細(xì)介紹。
1、數(shù)據(jù)簽名傳輸
發(fā)送者使用私匙對數(shù)據(jù)進(jìn)行簽名,接收者擁有發(fā)送者的公匙,對之信任并使用它驗(yàn)證接收數(shù)據(jù)的完整性。對數(shù)據(jù)進(jìn)行簽名的最簡單的方法是使用clearsign命令,這將使GPG創(chuàng)建一個易讀的簽名,很適于發(fā)送Email。具體命令及執(zhí)行情況如下:
$ gpg --clearsign mymessage.txtYou need a passphrase to unlock the secret key foruser: Ima User (I'm just ME) 1024-bit DSA key, ID D9BAC463, created 2001-01-15Enter passphrase:$
輸入passphrase后,就將生成一個擴(kuò)展名為.asc的新文件,這里就是mymessage.txt.asc。這個文件包含了mymessage.txt文件的原始內(nèi)容以及一個如下所示的簽名信息:
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE6YouhU87DFNm6xGMRAiwqAJ4mnviKz5wA9HFhCW9PG6zl7A2LPACgk0SB
n+yWiCt4SCTVkSSgezGKIUk=
=WnX/
-----END PGP SIGNATURE-----
當(dāng)接收者收到包含上述簽名的信息或文件時,他可以使用發(fā)送者的公匙來驗(yàn)證信息的完整性,具體命令及執(zhí)行情況如下:
$ gpg --verify message.txt.ascgpg: Signature made Sat Jan 13 22:33:21 2001 MST using DSA key D9BAC463gpg: Good signature from Ima User (I'm just ME) $
2、數(shù)據(jù)加密傳輸
第2種傳輸方式的目的是為了只讓個別人看到發(fā)送信息,所謂“信”有獨(dú)鐘。發(fā)送者使用其公匙對文件或數(shù)據(jù)進(jìn)行加密,接收者使用發(fā)送者的私匙對接收數(shù)據(jù)進(jìn)行解密。
加密命令包含兩個部分,一部分指定接收者的Email,另一部分指定要加密的文件。具體命令如下:
$ gpg -r mike@hairnet.org -a --encrypt message.txt
執(zhí)行后的輸出結(jié)果為文件message.txt.asc,其內(nèi)容類似如下:
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
hQEOA/Yj7lT9u0d9EAQAhE+KaGfMzvRfCdrfW2EYzuu+YeaKdoJksHB16CO7RsZC
DkllV/uma/rMj5PiDzFoV8PGjqdq9M+n9YXOVnuG3XITWhuvfFqm1KWxK9e0UDoS
7Tb2cm+k8UK18HBI/EaNrV+a3A5YQr6nVY0OCXheohg3+9ursFc8uOBQma64/VUD
/io0EQiIxEmERy2UsN7e+OB1/w4FUcRt7FFWCTVMGdUuQPY8UkeStH7u43NlPsf5
6uPPjaTxCOjjQoCf17XnfxqJPm9c0uyPDjljXYmp74XroT+lHvGcaKK56t0agGVo
i5nMflXoCIA2n/KDALzTjy7cIzLnUeYVU4NrBt7pV4TTyelxYB70mW94Wlr5BlLj
S+FYueR31i790QO+265iS4QPA+zxXIT5KCF8TT1gVPaZOJxmo0wRKuoOYrCd7LQD
Oz3exhCgeKKjfZRwJtqvl/QVamFJWSyhAiuTlA60IHyxIqAZlwLoYoXs9oOIs49g
HLYG6hSemJEW+fTX8xipOOfDXzHrJjUE897igeW62Mf6HLr4aNb1kwrlH7d7Xdr8
29+sckZlSRtBvL3/dSw5FcRCFYbS51AHstdywYvNu4rqSOljv5C6dXEw9Gre+wPS
5S7k0KoTLK4VOZJI2byBTZxgjQNr7ytpu1QMN2+10tpHx6MLkUFV/BJZbAtJ3C0v
auS4xskoSlZgbuX/8Veqhx4GC0lSRLqn14M9CP/tzZN0dIZSTbM2aq58zk0wZZVB
Tmb06HdYvkLrcLkmyNBt3/PUlDIIdeXNCkqN5bjGD/elTtkaMmHN9OIIDHWA9olR
tcXoLJPF4kgg1q6y6pgy2sklYQhI8A4q8VoQNJDzF/SbKvlnGji5HyF6rvKDCF0m
/l0heQEMn4AyFbJ7LZt2zh4i3jSwyV4Ff+tWJD09xaNziKi791FaSBVMxsPhT4SD
w+R75JR/FV0IRpMsy8kdJw/+kejQwCmRqDbm3EHOESCOouxsL8JB39vX+1h32p1b
EdVyQIHZA+TomHsp/y3i+EX52MC8+8XmCukHfT0dCVcnfk2H0hKvFueBkW8Y2JGd
FJZb+CDX33Aapr6FW9CIXvI+1NFOz+cIWVZIYYECnUZe4l3Jikjw3rY2To4E/WUy
MN+ZKsMb6xlhMSoRa9qHWY+S/pp9D8qiqweOLg4cnCjZBZWVOMf4dMcDWNjsW3mX
GgYVmPf52WxvVFtp1yjNbHBu+is8/ZR1P04efD+kOg1WtwpfRdHKQ1o1fn/OxYX1
oP7PVR5BK05HaQYmI0Vlwkcv59RyeYqqOQOiEfL0hEWdGy1gdj0R0eHYuZLnBLfb
SHJ2OtRpcqHuXB27EU3C4OR/N++7ExhG/MNB8WPFb82cbIP8xDF9q+3b73b7myTn
JpAYj4p2ocv9Zf1DH9HHaT7bYD37hvjLlNXe07kYOlMWB9+48meO/o+Yjn5oEj60
wipRdCiP4TUoAwC9EDFED64qLXST9MBycLrc5DwiMYzfdyauiHU3MNhUfErXVaRJ
/5ljtJUGHA/P/ouqbSCleHQ=
=2Sgq
-----END PGP MESSAGE-----
注意:通過以上方式被加密的信息也可以被簽名,方法是在上述命令中再加上一個-s參數(shù)。
要對上述加密數(shù)據(jù)進(jìn)行解密,接收者可以使用—decrypt命令,并指定輸出重定向的位置。具體命令及執(zhí)行情況如下:
$ gpg --decrypt message.txt.asc > message.txtYou need a passphrase to unlock the secret key foruser: Pipi Socks (I'm WIRED) 1024-bit ELG-E key, ID FDBB477D, created 2001-01-15Enter passphrase:$
接收者輸入passphrase后,加密信息就被解密,然后導(dǎo)入到文件message.txt中。
六、結(jié) 語
以上介紹了免費(fèi)加密工具GPG的概念、原理及使用方法,可以看到,整個操作流程都是很容易理解和操作的。我相信,你又掌握了網(wǎng)絡(luò)世界中和朋友安全溝通的一個方法,那么,就讓我們靈活、熟練地使用這個方法,在Internet中更加真實(shí)地生活!

熱詞搜索:

上一篇:如何應(yīng)用GPG加密使您的信息安全保障無憂(1)
下一篇:如何實(shí)現(xiàn)DES算法

分享到: 收藏
主站蜘蛛池模板: 纳尼亚传奇4在线观看免费完整版| 张芸| 山子高科股吧| 赫伯曼电影免费观看| 善良的姐妹| 膨腹爱好者撑肚子视频| 少先队应知应会知识题库及答案| 演员王磊| 孕妇入院待产包清单| 宝悦| fate动漫免费观看| 黑水电影| 楼下的女邻居| 演员任贤齐简历| 大秦帝国第一部免费看| 二年级上册期末真题卷| 在线观看高清电影| 《韩国小姐》| 安多卫视直播在线观看| 社会主义建设在探索中曲折发展| 折纸视频教程| 最后的招待1991| 电影二嫫1994在线观看完整版| 战狼7| 白洁少妇掀起裙子呻吟声视频| 欧美黑人乱码avxxxx| 挠tkvk| 69视频免费看| 廖凡演的电影| 碟仙诡谭| 我的世界大橙子| 因性而别| 千面魔女| 牵着妈妈的手广场舞| 川岛芳子电影| 我是特种兵免费观看完整版| 汤晶锦| 魔幻手机3什么时候上映| 李坤忆| 朱莉娅·安最经典十部电影| 亚新|