gpg4win+thunderbird+enigmail实现电子邮件签名与加密

 

一、前言:

1.PGP:

PGP(Pretty Good Privacy)是一个基于RSA加密体系的加密软件。可以用来对邮件进行加密以防止非授权者阅读,对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。

 

2.GPG:

即GnuPG,是PGP标准的一个免费实现。

 

3.非对称加密:

公钥、私钥互补存在,公钥加密的只能用私钥解密,私钥加密的只能用公钥解密。可以创建口令来保护私钥不被盗~~窃滥用。创建了以后后,在解密信息、数字签名、加密文件的时候需要键入私钥保护口令。

 

4.数字签名和邮件加密:

甲给乙发邮件,甲先用消息摘要算法(MD5)生成一个该邮件的128位特征值,然后甲用自己的私匙将上述的128位的特征值加密,附加在邮件后,再用乙的公匙将整个邮件加密。这样这份密文被乙收到以后,乙用自己的私匙将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公匙解密签名所得到的数比较,如果两者一致就说明这份邮件确实是甲寄来的且传递过程中未被篡改。

 

更多详情请参考度娘:

http://baike.baidu.com/view/7607.htm



二、gpg4win的安装与使用
1.首先,下载并安装gpg4win
下载地址:
http://gpg4win.org/

安装过程中须手动勾选上gpa选项,其他部分按照默认选项进行安装即可。安装完成后在控制台输入命令“gpg --version”,可以见到gpg的版本号信息:
gpg (GnuPG) 2.0.17 (Gpg4win 2.1.0)
libgcrypt 1.4.6
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
。。。

在程序菜单中可以见到:
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第1张图片
 
其中GPA主要用于密钥管理,Kleopatra可用于文件加密/解密。

2.创建自己的密钥对
(1)使用命令行方式创建密钥:
在命令行中输入
gpg --gen-key
然后以问答形式依次输入密钥的算法、大小、失效时间,通常使用默认值即可。接着gpg还会询问你的名字、电子邮件地址和对密钥的备注。最后一步是提供一个私钥保护口令:
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第2张图片
 
输入完私钥保护口令后随即点几下鼠标、在键盘敲几个字符以帮助密钥对的生成,然后就大功告成啦:

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第3张图片
 
(2)使用gpa界面创建密钥:
运行gpa,点击:Keys --》New Key...:
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第4张图片
 
依次指定所用的加密算法、密钥长度、用户名、邮箱、备注和密钥失效日期(可选项),然后点击OK:
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第5张图片
 
3.备份私钥
个人的私钥十分重要,万一不慎丢失将不能解密以往所加密过的文件和邮件,因此进行私钥的备份并妥善保管是十分必要的。
(1)在命令行中使用如下命令进行私钥的备份:
gpg -o keyfilename --export-secret-keys KeyID
如果没有KeyID则是备份所有的私钥,-o表示输出到文件keyfilename中,如果加上-a的参数则输出文本格式的信息,否则输出的是二进制格式信息。

(2)通过gpa界面进行私钥备份:
在所需备份的密钥上右击,选择Backup...

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第6张图片
 
然后选择备份文件放置的位置并设定文件名,点击Save
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第7张图片
 
4.导出自己的公钥
(1)可以使用如下命令导出公钥:
gpg -o -a mypublickey.txt --export KeyID

(2)通过gpa界面导出公钥:
在所需导出的密钥对上右击,选择Export Keys
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第8张图片
 
然后选择导出的位置和设定文件名,点击Save
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第9张图片
 
5.发布自己的公钥到公钥服务器上
(1)使用gpa界面进行发布
a.选择需要发布到的服务器
菜单 --》 Edit --》 Preferences,选择自定义的Default keyserver,然后点击OK
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第10张图片
 
b.发布
在所需发布的密钥上右击,选择Send Keys
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第11张图片
 
然后Yes
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第12张图片
 
(2)你也可以选择一个其他的公钥服务器(譬如pgp.mit.edu)进行公钥发布。打开网址http://pgp.mit.edu/,把刚刚导出的mypublickey.txt里的文本内容贴到输入框,然后点击Submit:
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第13张图片

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第14张图片

 
提交成功后可以在同一个页面搜索到刚刚提交的公钥:

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第15张图片


gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第16张图片

点击KeyID可进入查看详情: 


gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第17张图片

 

6.与朋友交换公钥

在做完了以上几步以后,你就可以与其他同样创建了自己的密钥对的好友们进行公钥交换了。你可以使用如下任一种方式导入其他人的公钥:

(1)朋友直接把他的公钥以文件形式发送给你,这时候你可以:

a.通过命令行导入

gpg --import filename

 

b.通过gpa界面导入

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第18张图片

(2)从公钥服务器导入:
a.通过命令行导入
gpg --keyserver hkp://pgp.mit.edu --recv-keys KeyID

b.通过gpa界面导入
点击Server --》 Retrieve Keys...
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第19张图片
 
输入要导入的公钥ID,然后点击OK

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第20张图片
 
至此,关于gpg4win的使用已经大致讲解完,其他功能可留待诸位看官自行摸索挖掘: ) 
接下来讲讲如何在邮件客户端中使用gpg进行邮件签名和加密

三、使用Thunderbird+Enigmail进行邮件签名和加密
1.下载并安装Thunderbird
http://www.mozilla.org/zh-CN/thunderbird/
安装过程大部分按照默认配置即可

2.设置Thunderbird邮件帐户
请参考:
http://hanning5137.blog.51cto.com/2914528/792787

还有:
http://www.heibai.net/book/html/wangluogongju/youjiangongju/2010/1021/3564.html

3.安装Enigmail插件
打开网址:
http://enigmail.mozdev.org/download/index.php.html
选择对应的版本进行下载

然后打开Thunderbird菜单,工具,附加组件
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第21张图片
 
浏览选择刚刚下载好的Enigmail插件的放置位置,确定

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第22张图片
 
安装插件完成后需要重启Thunderbird。

4.Enigmail插件配置
右击邮件帐户,选择设置,可以见到多了一个OpenPGP安全的选项
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第23张图片
 
选择所需使用的密钥并设定发送邮件的安全选项,点击确定完成设置。

5.向已经导入了自己公钥的联系人发送含有自己数字签名的邮件
(1)选择邮箱帐户,新建邮件,确认数字签名邮件已经勾选
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第24张图片

(2)然后点击发送,输入私钥保护口令
gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第25张图片
(3)发送过程中可以见到邮件已经被签名 

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第26张图片

 

6.接收带有数字签名的邮件

输入私钥保护口令以查看收件箱

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第27张图片

带有对方数字签名的邮件,Enigmail会自动校验其签名合法性以及是否被篡改

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第28张图片

 

7.向已经交换了密钥的联系人发送签名并加密的、带附件的邮件

撰写邮件,添加附件,勾选上安全菜单的数字签名和加密邮件选项:

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第29张图片
 

 

然后键入私钥保护口令:

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第30张图片

选择邮件加密签名方式:

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第31张图片

 

发送过程中,签名并加密邮件,会稍微影响处理速度,稍微忍耐下吧: )

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第32张图片

然后,在接收方看到的邮件就是这样的:

gpg4win+thunderbird+enigmail实现电子邮件签名与加密_第33张图片

 

如此一来,就算客官你用的是雅虎邮箱,也不用怕怕啦~Hope you enjoy it~

 

 

 

参考资料:

http://baike.baidu.com/view/7607.htm

 

http://terrychen.info/encryption-gpg4win

 

http://blog.sina.com.cn/s/blog_44abafb201008zjo.html

 

http://blog.sina.com.cn/s/blog_44abafb201008zgc.html

 

http://www.ithov.com/linux/104420_2.shtml

 

http://blog.sina.com.cn/s/blog_44abafb201008y95.html

 

http://hanning5137.blog.51cto.com/2914528/792787

 

http://www.heibai.net/book/html/wangluogongju/youjiangongju/2010/1021/3564.html

 

你可能感兴趣的:(数字签名,gpg,thunderbird,Enigmail,邮件加密)