用免费GPG加密收发Email

GPG即GNU Privacy Guard,它是加密工具PGP(Pretty Good Privacy )的非商业化版本,用于对Email、文件及其他数据的收发进行加密与验证,确保通信数据的可靠性和真实性。本文将对GPG技术及相关工具进行介绍,旨在帮助网上冲浪者之间“真诚”交流。 一、PGP概述 在介绍GPG前,先让我们看看PGP的基本原理及应用规则。 与许多加密方法一样,PGP使用双密匙来加密数据。每个使用PGP加密技术的人都要创建一对密匙,一个叫做公匙,另一个叫做私匙。公匙可被广泛传播,甚至保存在公共密匙数据库中以被其他Internet用户查阅。私匙属于个人信息,绝不应该泄漏给其他人。 公匙和私匙相互作用对数据进行加密及解密。被公匙加密的数据只能被私匙解密,被私匙加密的数据也只能被一个公匙解密。这样就可以实现双重认证。 用户在发送关键信息给指定人前,
首先使用该用户的公匙对信息进行加密。因为只有使用该用户的私匙才能对发送信息进行解密,所以就保证了没有私匙的其他人不会解密信息。 另外,用户也可以使用他的私匙来加密信息,然后发送给许
多人。因为只有使用发送者的公匙才能对接收信息进行解密,这样接收者就能确信信息的确来自某个人。 二、
获取及安装GPG 前面我们提到,GPG是PGP的非商业版本,也就是免费版本。所以,理解并掌握GPG技术具有很大的实用价值和推广效应。 GPG的下载地址是http://www.gnupg.org/download.htmlGPG的当前版本是1.0.6,另外还有一个安全补丁。同时下载这2个文件gnupg-1.0.6.tar.gz和gnupg-1.0.5-1.0.6.diff.gz,对它们解压缩,安装补丁,运行configure脚本程序进行配置。请注意:默认安装后,配置选项已适用于大多数用户。然后,运行make、make install安装GPG二进制文件以及其他组件。相关命令如下: $ 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$ 三、创建公匙和私匙 在发送或接收加密数据前,首先需要创建一对密匙,即公匙和私匙。我们可以使用如下命令完成创
建工作: $ gpg --gen-key 如果是初次使用GPG,GPG会创建目录$HOME/.gnupg。然后我们必须再次运行这个命令,并依次回答确定PGP列出的一系列问题。对于这些问题,只需简单地选择默认值就可以。下面是相关命令执行情况: $ 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时,不要随意设置。建议按照设置口令的一般规则设置passphrase。 进行到这里,GPG将开始创建密匙了。但是你可能会看到下面的信息: Not enough random bytes available. Please do some otherwork to give the OS a chance to collect more entropy! 这是因为,创建密匙前,GPG还需要一些少量但稳定的随机数信息。在Linux中,通常情况下,GPG从/dev/random设备得到这些随机数,并且
最好在系统运行的当前状态下。我们可以通过移动鼠标或者敲打多次Shift、Ctrl键来完成随机数创建工作。 最终,将出现GPG成功创建密匙的信息: public and secret key created and signed. 四、操作密匙 有关密匙操作的方面包括:密匙列表、密匙导入、密匙导出、密匙签名以及用户信任,下面分别介绍。 1、密匙列表 密匙列表非常重要,获取密匙列表以及其所有者的名称、Email地址的命令及执行情况如下: $ 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$ 输出结果中的每一行包含一个用于加密文件的公匙信息,以及加密数据可被发送的Email地址。 2、密匙的导入和导出 密匙的导入和导出操作在PGP世界中简直就是家常便饭,因为为了安全交换数据,发送者和接收者之间必须首先具有相互的公匙,而实现这个目的就需要密匙的导入和导出。 首先看看如何导出密匙。假设用户是mike,具体的命令是: $ gpg --export mike@mynet.net >mike.gpg 这样,对于mike@mynet.net的公匙信息就保存到了mike.gpg文件中,然后mike就可用将mykey.gpg传播给朋友、合作伙伴,实现安全通信。但是这个mike.gpg是一个不可读格式的文件,就是说其内容看起来非常杂乱。能否生成一个标准ASCII码格式的导出密匙文件呢?当然可以,添加一个“-a”参数就可以,命令如下: $ gpg -a --export mike@mynet.net >mike.gpg 新mike.gpg具有很好的格式,并包含同样的公匙信息以及常规鉴别字符串。 接着看看如何导入密匙,其模式与导出密匙相似,假设用户是god,命令是: $ gpg --import mike.gpg 这样,god就可以接收来自mike、经mike的公匙加密的邮件信息了。 3、密匙签名和用户信任 尽管在理论上讲,
具备了公匙和私匙就可以实现安全的信息通讯,但是在实际应用中,还必须对公匙进行有效确认。因为,确实存在伪造公匙信息的可能。 由此,在GPG中引入了一个复杂的信任系统,以帮助我们区分哪些密匙是真的,哪些密匙是假的。这
个信任系统是基于密匙的,主要包括密匙签名。 当收到熟人的公匙并且GPG告知不存在任何实体可信信息附加于这个公匙后,首要的事情就是对这个密匙进行“指纹采样”(fingerprint)。例如,我们对来自mike的公匙进行了导入操作,并且GPG告知我们不存在这个密匙的附加可信信息,这时候,我们首先要做的工作就是对这个新密匙进行“指纹采样”,相关命令及执行情况如下: $ 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$ 这样,就从密匙数据中生成了其指纹信息,并且应该是唯一的。然后,我们打电话给mike,确认两件事情。首先,他是否发送给我们了密匙;其次,他的公匙的指纹信息是什么。如果Mike确认了这两件事情,我们就可以确信这个密匙是合法的。接下来,我们对密匙进行签名操作,以表示这个密匙来自Mike而且我们对密匙的信任,相关命令及执行情况如下: $ 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:$ 执行到此,使用我们的私匙完成了对Mike的公匙的签名操作,任何持有我们的公匙的人都可以查证签名确实属于我们自己。这个附加到Mike的公匙上的签名信息将随它环游Internet世界,我们使用个人信誉,也就是我们自己的私匙,保证了那个密匙确实属于Mike。这是一个多么感人的充满诚信的故事啊 :-) 现实世界的人们是否应该从这严格的技术标准中反思些什么呢? 还是回到这里。获取附加于一个公匙上的签名信息列表的命令是: gpg --check-sigs mike@hairnet.org 签名列表越长,密匙的可信度越大。
其实,正是签名系统本身提供了密匙查证功能。假设我们接收到一个签名为Mike的密匙,通过Mike的公匙,我们验证出签名确实属于Mike,那么我们就信任了这个密匙。推而广之,我们就可以信任Mike签名的任何密匙。 为了更加稳妥,GPG还引入了另一个附加功能:可信级别(trust level)。使用它,我们可以为我们拥有的任何密匙的所有者指定可信级别。例如,即使我们知道Mike的公匙是可信的,但是事实上我们不能信任Mike在对其他密匙签名时的判断;我们会想,Mike也许只对少数密匙进行了签名,但却没有好好地检查一遍。 设置可信级别的命令及执行情况如下: $ 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$ 在命令编辑环境中执行trust,然后选择级别2(I do NOT trust),这样我们割断了任何信任链,使每个密匙都必须经过Mike的签名。 五、使用GPG收发数据 下面我们开始讨论如何使用GPG收发数据,这是日复一日的工作,一定要理解并熟练。在本文开始的PGP概述部分,我们提到了数据交换的两种方式,现在我们对其分类概念化: ●数据签名传输(Signed data):发送者使用私匙对数据加密,接收者使用公匙对数据解密。 ●数据加密传输(Encrypted data):发送者使用公匙对数据加密,接收者使用私匙对数据解密。 以下分别详细介绍。 1、数据签名传输 发送者使用私匙对数据进行签名,接收者拥有发送者的公匙,对之信任并使用它验证接收数据的完整性。对数据进行签名的最简单的方法是使用clearsign命令,这将使GPG创建一个易读的签名,很适于发送Email。具体命令及执行情况如下: $ 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后,就将生成一个扩展名为.asc的新文件,这里就是mymessage.txt.asc。这个文件包含了mymessage.txt文件的原始内容以及一个如下所示的签名信息: -----BEGIN PGP SIGNATURE-----Version: GnuPG v1.0.1 (GNU/Linux)Comment: For info see http://www.gnupg.orgiD8DBQE6YouhU87DFNm6xGMRAiwqAJ4mnviKz5wA9HFhCW9PG6zl7A2LPACgk0SBn+yWiCt4SCTVkSSgezGKIUk==WnX/-----END PGP SIGNATURE----- 当接收者收到包含上述签名的信息或文件时,他可以使用发送者的公匙来验证信息的完整性,具体命令及执行情况如下: $ 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、数据加密传输 第2种传输方式的目的是为了只让个别人看到发送信息,所谓“信”有独钟。发送者使用其公匙对文件或数据进行加密,接收者使用发送者的私匙对接收数据进行解密。 加密命令包含两个部分,一部分指定接收者的Email,另一部分指定要加密的文件。具体命令如下: $ gpg -r mike@hairnet.org -a --encrypt message.txt 执行后的输出结果为文件message.txt.asc,其内容类似如下: -----BEGIN PGP MESSAGE-----Version: GnuPG v1.0.1 (GNU/Linux)Comment: For info see http://www.gnupg.orghQEOA/Yj7lT9u0d9EAQAhE+KaGfMzvRfCdrfW2EYzuu+YeaKdoJksHB16CO7RsZCDkllV/uma/rMj5PiDzFoV8PGjqdq9M+n9YXOVnuG3XITWhuvfFqm1KWxK9e0UDoS7Tb2cm+k8UK18HBI/EaNrV+a3A5YQr6nVY0OCXheohg3+9ursFc8uOBQma64/VUD/io0EQiIxEmERy2UsN7e+OB1/w4FUcRt7FFWCTVMGdUuQPY8UkeStH7u43NlPsf56uPPjaTxCOjjQoCf17XnfxqJPm9c0uyPDjljXYmp74XroT+lHvGcaKK56t0agGVoi5nMflXoCIA2n/KDALzTjy7cIzLnUeYVU4NrBt7pV4TTyelxYB70mW94Wlr5BlLjS+FYueR31i790QO+265iS4QPA+zxXIT5KCF8TT1gVPaZOJxmo0wRKuoOYrCd7LQDOz3exhCgeKKjfZRwJtqvl/QVamFJWSyhAiuTlA60IHyxIqAZlwLoYoXs9oOIs49gHLYG6hSemJEW+fTX8xipOOfDXzHrJjUE897igeW62Mf6HLr4aNb1kwrlH7d7Xdr829+sckZlSRtBvL3/dSw5FcRCFYbS51AHstdywYvNu4rqSOljv5C6dXEw9Gre+wPS5S7k0KoTLK4VOZJI2byBTZxgjQNr7ytpu1QMN2+10tpHx6MLkUFV/BJZbAtJ3C0vauS4xskoSlZgbuX/8Veqhx4GC0lSRLqn14M9CP/tzZN0dIZSTbM2aq58zk0wZZVBTmb06HdYvkLrcLkmyNBt3/PUlDIIdeXNCkqN5bjGD/elTtkaMmHN9OIIDHWA9olRtcXoLJPF4kgg1q6y6pgy2sklYQhI8A4q8VoQNJDzF/SbKvlnGji5HyF6rvKDCF0m/l0heQEMn4AyFbJ7LZt2zh4i3jSwyV4Ff+tWJD09xaNziKi791FaSBVMxsPhT4SDw+R75JR/FV0IRpMsy8kdJw/+kejQwCmRqDbm3EHOESCOouxsL8JB39vX+1h32p1bEdVyQIHZA+TomHsp/y3i+EX52MC8+8XmCukHfT0dCVcnfk2H0hKvFueBkW8Y2JGdFJZb+CDX33Aapr6FW9CIXvI+1NFOz+cIWVZIYYECnUZe4l3Jikjw3rY2To4E/WUyMN+ZKsMb6xlhMSoRa9qHWY+S/pp9D8qiqweOLg4cnCjZBZWVOMf4dMcDWNjsW3mXGgYVmPf52WxvVFtp1yjNbHBu+is8/ZR1P04efD+kOg1WtwpfRdHKQ1o1fn/OxYX1oP7PVR5BK05HaQYmI0Vlwkcv59RyeYqqOQOiEfL0hEWdGy1gdj0R0eHYuZLnBLfbSHJ2OtRpcqHuXB27EU3C4OR/N++7ExhG/MNB8WPFb82cbIP8xDF9q+3b73b7myTnJpAYj4p2ocv9Zf1DH9HHaT7bYD37hvjLlNXe07kYOlMWB9+48meO/o+Yjn5oEj60wipRdCiP4TUoAwC9EDFED64qLXST9MBycLrc5DwiMYzfdyauiHU3MNhUfErXVaRJ/5ljtJUGHA/P/ouqbSCleHQ==2Sgq-----END PGP MESSAGE----- 注意:通过以上方式被加密的信息也可以被签名,方法是在上述命令中再加上一个-s参数。 要对上述加密数据进行解密,接收者可以使用—decrypt命令,并指定输出重定向的位置。具体命令及执行情况如下: $ 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后,加密信息就被解密,然后导入到文件message.txt中。 六、结 语 以上介绍了免费加密工具GPG的概念、原理及使用方法,可以看到,整个操作流程都是很容易理解和操作的。我相信,你又掌握了网络世界中和朋友安全沟通的一个方法,那么,就让我们灵活、熟练地使用这个方法,在Internet中更加真实地生活! 给力(0票)动心(0票)废话(0票)专业(0票)标题党(0票)路过(0票) 原文:用免费GPG加密收发Email 返回网络安全首页

时间: 2024-09-22 13:30:42

用免费GPG加密收发Email的相关文章

Linux下使用Evolution收发Email

1. 安装Evolution Evolution是一个整合了邮件,日历,计划任务,地址本功能的套件.以root身份运行apt-get install evolution就可以安装上Evolution了. 2. 设置Email账号 从任务栏的Application(程序)菜单中选择运行Evolution,然后从Evolution的Edit(编辑)菜单中选择Preferences(首选项)打开Evolution Settings设置窗口.点击的Mail Accounts,再点击Add按钮启动Evol

免费文件加密方法解析

(1)电脑自带加密方法 1.打开Windows资源管理器. 2.右键单击要加密的文件或文件夹,然后单击"属性". 3.在"常规"选项卡上,单击"高级".选中"加密内容以便保护数据"复选框,然后点击确定. (2)WinRAR打包加密 1.找到要进行加密的文件,右键弹出好多选项,我们点击[添加到压缩文件-]选项.如果没有这一选项,那么证明我们还没有下载和安装好WinRAR软件,我们只要在网上下载并安装就行了. 2.选择常规选项,如

如何对Email地址进行加密?

 email地址加密代码: <code><meta http-equiv="Content-Type" content="text/html; charset=utf-8″ /></code> <style type="text/css"><!– body {     font-size: 12px; } –></style><script type="text/jav

使用GnuPG对文件进行加密

使用GPG非常简单,它是一个基于 命令行的工具,主要用于给文件进行加密 1.生成密钥 在使用GPG之前,必须生成一对密钥. [root@tipy root]$ gpg --gen-key 在这之后,你将被问选择哪 种加密方式 DAS AND EIGamal, DAS ,EIGAMAL. 第一个是默认的,它包括GPG的全部特性.一般我们都选择它. 接下来它会问你想要的keysize,默认的keysize是1024 bits(一般都用它),我们 就选它.当然你还可以选择其它的,像2048......

谈谈使用5D6D免费空间建立论坛的感受

我的领地(www.5d6d.com)是社区软件及服务提供商http://www.aliyun.com/zixun/aggregation/12899.html">康盛创想(Comsenz)于2006年11月8日正式推出的一个免费论坛托管服务(Free Forum Hosting Services)平台. 与Comsenz公司旗下流行的社区论坛软件系统Discuz!不一样的是,5d6d.com提供给用户的不仅仅论坛软件,还包括免费域名.不限容量的免费论坛服务器空间.不限流量的免费数据带宽.免

gpg加解密软件学习

想要获得更多的文章,可以关注我的微信ilanniweb. 为什么要学习gpg呢?因为要在Linux下把一个邮箱的密码加密,不让其他人看到该邮箱真正的密码. 为了不让其他人看到真正的邮箱密码,我们需要对其进行加密. 加密的方式是先把密码先写到一个文件A中,然后使用相关的加密软件对该文件A进行加密生成新的文件B.此时再删除文件A. 其他程序调用邮箱密码时,只调用加密后的文件B,同时对文件B进行解密. 加密我们使用的是gpg这个工具,下面我们来介绍下gpgp. 一.gpg是什么 GPG是GNU Pri

向普通人加密 用PHP程序保护数据

在这个日渐虚拟的互联网世界中,您必须小心保护自已的数据.本文将介绍编码和加密一些重要信息(比如密码.信用卡号.甚至整个消息)的基础知识.并通过使用 PHP 的内置功能,了解加密和解密信息的意义,并且将了解一些涉及密码和其他数据的实际示例. 了解当今现实世界与 20 年前的现实世界的不同.在 20 世纪 80 年代,加密是一种特工人员的行为 -- 是您在 Tom Clancy 的侦探小说中才可以读到的情节.如果某人想保持少量私有信息,那么他必须使用密码.密码短语或其他基本方法对数据进行加密. 而现

win7文件夹应该怎么加密

win7文件夹应该怎么加密 现在很多用户电脑中都有一些比较私密的文件,为了保护这些私密文件不会被他人随意打开或盗取,大家经常会在网上寻找一些文件加密软件对私密的文件进行加密.但是,现在网上很多加密软件都要收费,而且一些加密软件加密方式简单,网上随便一款解密软件都可以进行解密,另外,一些加密软件可能会盗取用户重要的文件资料,又有可能会将一些病毒.木马文件携带到用户电脑中,致使用户重要数据受损.对于这些情况,很多用户都曾遇到过,所以大家就在想,有没有一款免费文件加密软件,用户既不用担心文件数据安全,

如何加密文件夹?

  对于重要的文件夹,最好的办法就是对其进行加密处理.如何才能寻找到适合自己需要的加密软件,让文件夹伪装得更逼真的呢?下面为您介绍下如何加密文件夹. 用好VHD和BitLocker功能 VHD是微软Virtual PC 虚拟的磁盘文件,在Windows 7操作系统中,我们能够单独创建和挂载VHD,所以我们可以利用VHD功能在系统中创建一个虚拟的硬盘,然后用BitLocker加密将我们的隐私文件保存在这个"加密磁盘"中.可能有的朋友会说,直接用BitLocker加密整个磁盘不就行了?其实