邮件加密软件PGP全攻略

Author: 周建军 Date: 2000年 第7期

  随着网络的普及,电子邮件已成为网民与外界联络的一条重要渠道,但随之而来的就是不可忽视的安全问题。我们知道,在因特网上传送文件是不加密的,任何一个精通网络的人都可以窃听、修改甚至伪造电子邮件,如果邮件内容仅限于朋友之间的聊天,那也许并不在乎这个问题,但如果是商业秘密、军事秘密或涉及个人隐私,那就需要考虑一下安全问题了。
  我们通常采用对邮件加密的方法来保护我们的邮件,目前可以对邮件加密的软件也很多,在这里,我想向大家推荐一款超级豪华的邮件加密软件PGP。这款软件不仅可以提供邮件加密,还可以对普通文档进行加密,加密程度非常高,目前尚无法对它强行破解,但是由于受美国出口法规的限制,中国得不到PGP正式版本,所以对这个软件熟悉的人较少,但我们可以下载到PGP国际版本的免费软件(Freeware),虽然它属于免费软件,但其功能已经非常强大。
#1  一、PGP简介
  PGP(Pretty Good Privacy)是基于RSA算法的双钥加密软件,可以加密我们的机密文档,除了我们希望能够看到的人能够正常解读外,没有任何人能够看到它的本来面目。它提供了极强的保护功能,到现在为止,即使用最先进的解码技术也无法破解加密后的内容。说它是双钥加密软件,是由于它生成两个密钥,一个称为公钥PK(Public Key),另一个称为私钥SK(Secret Key)。PGP使用公钥PK加密而使用私钥SK解密。比如说我们想给张三发送一个他能正常解读的邮件,就可以使用张三的公钥PK加密后发送过去,而张三收到后利用自己的私钥SK解密,这个加密后的邮件即使我们加密者本身也无法解读。由于PGP采用双钥算法,加、解密采用不同密钥,不需要加、解密双方构成某种信任关系,所以非常适合于网上传递消息使用。
#1  二、PGP的使用
  PGP目前的版本很多,适用的平台也不一致,我们现在以Windows  95和DOS下的PGP免费软件(Freeware)的最新版本为例介绍一下如何使用PGP。
  (一)Windows 95下 Outlook Express  PGP  插件的使用
  我们可以按下面这个链接下载Windows  95版本下Outlook Express的PGP(6.5.1)插件(7.93M),这个插件不仅可以加密邮件,还可以对普通文件进行加密。下载链接:ftp://ftp.kr.pgpi.org/pub/security/pgp/6.5/6.5.1/win/PGPfreeware6.5.1.zip
  1.PGP的安装
  将这个软件解压至任何一个目录后得到两个文件setup.exe.sig 和setup.exe,安装时运行setup.exe文件,一路“Next”(注意:如果你没有使用Eudora邮件系统,在安装时不要选择“PGP Eudora Plugin”一项,否则会提示我们找不到Eudora软件),安装成功。安装完成后,PGP会询问我们是否已经拥有密钥对,如果没有,接下来会生成密钥对:①填入你的姓名和邮件地址;②选择密钥的加密算法,有Diffie-Hellman/DSS和RSA 两种算法可以选择,第一种算法最大可以生成4096位密钥,而RSA算法最大可以生成2048位密钥,一般采用其默认值即可;③选择密钥位数,如果我们用于一般的加密工作,也可以采用其默认值,如果要求加密强度高的话,可以适当增加位数,一般来说,系统默认值2048位已经足够;④确定密钥的有效期,可以自由选取有效时间,也可以选取第一项永不过期;⑤输入通行密码,关于密码的确定和其它密码的确定方式一样,尽量采用不好猜的组合方式,最好设在8位以上。这一切完成后PGP系统会为我们生成密钥对,接下来会让我们保存密码,询问我们是不是把公钥发送到默认的服务器上,这些可以视情况而定。
  按要求安装完成后,任务栏托盘里会出现一个锁状的图标,单击这个图标会出现PGP的主菜单。
  2.加密和签名电子邮件
  打开Outlook Express,我们会发现OE的菜单栏内多了一个名为PGP的菜单,快捷按钮里也多了一个名为“Launch PGPkeys”的按钮,通过这个菜单和快捷按钮就可以对我们的邮件完成签名、加密和发送公钥。
  (1)发送加密邮件
  假定我们已经知道了对方的公钥,并且已经加入我们的密钥环内,那么我们在给对方发送邮件时,就可以在邮件写完后按下加密按钮,或者选取“工具”→“Encrypt  using PGP”,然后按下“发送”按钮,PGP系统就会对当前邮件使用对方的公钥加密,邮件内容随之会便成一堆杂乱无章的乱码。
  (2)接收加密邮件  
  当对方接收到用他们的公钥加密的邮件时,打开邮件也会显示乱码,这时可以把乱码窗口设成当前窗口,然后点击任务栏托盘上的锁状图标,选取“Current window”→“Decrypt & Verify”,PGP会对当前窗口进行解密,解密时会提示输入通行密码,正确后会给出解密后的内容,这时对方就可以阅读该邮件了,也可以拷贝到剪贴板再粘贴到文件中保存起来。
  (3)发送签名邮件
  方法与发送加密邮件类似,邮件写好后,按下签名按钮,或者选取“工具”→“Digitally Sign with PGP”,按发送后提示我们输入通行密码后加以签名。但是签名不等于加密,它只是在邮件正文前面、后面加上一段代码来证明这是我们亲自所写。
  (3)发送自己的公钥
  既然我们想让别人给我们发送加密邮件,我们就必须让对方知道我们的公钥。在给对方写邮件时,我们可以单击“Launch  PGPkeys”按钮,右键单击我们的密钥,选取“Copy”,然后在邮件内容栏内按“Ctrl+V”粘贴,粘贴过来的内容即是我们的公钥,也可以单击任务栏托盘上锁状图标,选择PGPkeys,选择自己的代码然后按“Ctrl+C”复制它,之后把代码按“Ctrl+V”贴在给对方的信中。大致内容为
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: PGPfreeware 6.5.1 for non-commercial use 〈http://www.pgp.com〉
    mQGiBDgbB5wRBADVZcgfUdFcKK3cJgc6qRl3lJnbUA5TXz
    OYZs7Qel2oOqpU31XU
    ......
    =h/MM
    -----END PGP PUBLIC KEY BLOCK-----
  (4)接收对方的公钥:
  如果我们接收的邮件含有对方的公钥代码,我们可以把这块文档拖黑后按“Ctrl+C”拷贝到剪贴板中,然后打开PGPkeys,在窗口内按鼠标右键,选择“Paste”粘贴,就会把该公钥加入密钥环中,以后我们就可以给他发送加密邮件了。
  2.使用PGP签名自己的文章
  文章写完后,使文章所在窗口成为当前窗口,然后单击任务栏托盘上的锁状图标,选择“Current window”→“Sign”,输入通行密码后我们的文章就会被签名。这份经过签名的文章就可以证明是自己而不是别人所写。
  3.加密文档
  PGP既然可以加密邮件,当然可以加密文档。使用方法:选定要加密的文档,单击鼠标右键,选择“PGP”→“Encrypt”,输入通行密码即可以对文档加密。
  4.解密文档
  鼠标双击要解密的文档,PGP会提示我们输入自己的通行密码,之后即可对文档完成解密过程。
  5.文档的彻底删除
  如果某个文档(比如加密后的明文文档)我们需要彻底删除时,可以使用PGP的这个功能,使用方法:单击鼠标右键,选择“PGP”→“Wipe”,确认后即可彻底删除此文档而不会在硬盘上留下任何痕迹。
  6.PGP的设置
  要想让PGP更加好用,我们还可以对PGP进行设置,设置方法有两种,一种是在OE下选取PGP菜单下的Option选项进行设置,另一种是单击锁状图标选取Option进行设置,其内容完全相同。此外,PGP还提供了PGP快捷工具(PGPtools),单击锁状图标选取PGPtools即可调出工具栏。第一个按钮(显示两把钥匙的)为PGP的密钥管理;第二个按钮为使用PGP加密。按下这个按钮会出现一个对话框,双击要加密的文件后,PGP会提示我们用谁的公钥进行加密,用鼠标把收信人的公钥拖到下面,按确定即可完成对这个文件的加密。如果想加密当前窗口,则须要先把当前窗口的内容拷贝到剪贴板中,然后按下加密按钮,选取第三项Clipboard,确定加密所用公钥后即可加密,加密后的内容存放在剪贴板中,需要在编辑窗口中按下“Ctrl+V”将之拷贝下来;第三个按钮为签名;第四个为签名又加密,使用方法和加密相似,不再赘述;第五个按钮为解密/校验按钮。如果某个文件被加密或签名,按下这个按钮,输入通行密码,就会对这个文件解密或检验;第六个按钮为文件清除按钮;第七个按钮功能为清空磁盘空白区域,我们知道,在DOS和Windows  95下删除文件只是把这个文件做了一个删除标记,文件内容没有真正清空,通过工具软件可以恢复原文件内容,这无疑给保密工作带来了隐患,按下第六个按钮可以真正删除一个文件而不在磁盘上留下任何痕迹,使用第七个按钮则可以清空磁盘上的空白区域(其中也许就包含着我们删除的文件内容),从而达到安全保密的功能。
  (二)DOS环境下PGP的使用方法
  PGP原本就是一个命令行软件,在Windows中使用只不过是有了一个图形界面的Shell而已,真正要掌握PGP的使用方法,还要掌握PGP的命令行方式。
  1.软件的下载:
  下载链接为:ftp://ftp.kr.pgpi.org/pub/security/pgp/5.0/msdos/pgp50ibi.zip,文件大小为626K,解压到目标目录后运行Install.bat,后面加参数“F”即可完整安装。
  安装后目录内共有pgpk.exe、 pgpe.exe 、pgps.exe 、pgpv.exe、pgpo.exe 五个可执行文件。其中pgpk.exe负责密钥的生成与管理; pgpe.exe负责加密工作;pgps.exe负责签名;pgpv.exe负责解密和校验;pgpo.exe则模拟2.6.3老版本的PGP命令行方式。
  2.密钥的生成
  命令:pgpk -g
  根据程序提示一步一步生成密钥:第一步,选择加密算法,第一种DSS算法为5.0以后版本专有方式,建议使用,第二种RSA算法为传统算法;第二步,密钥的大小,建议选择第三项2048/1024位,加密很有保障;第三步,为你的公钥起一个标识(名字),一般为自己的名字加上邮箱地址,比如我使用的为mzjgxs 〈mzjgxs@ynmail.com〉;第四步,选择密钥的有效期,选择0为永不过期;第五步,为我们的私钥起一个通行密码,密码命名的原则与Win95下一样,之后会提示我们重新输入以便核对一次,然后PGP会出现一个提示数字让我们敲击键盘产生随机数字生成密钥,这时便可随意敲击键盘直到系统提示我们停下来为止(此时应注意敲击键盘时的节奏,不应以同一节奏敲击,最好每次敲击的时间间隔都不一样,只有这样才能真正产生一个不规则的乱数,密钥才更加难以破解),然后PGP为我们生成密钥对。
  3.公钥的管理
  (1)让你的朋友知道你的公钥
  命令:pgpk -x 〈userid〉[-o 〈outfile〉]
  比如我这里就可以输入pgpk -x mzjgxs -o mm.txt,命令执行后生成mm.txt,其内容即为我的公钥(与Win  95下拷贝?稣程绞揭谎?。然后把这个mm.txt发送给你的朋友,他们就会得到你的公钥了。如果不指定输入文件,则输出到屏幕上。
  (2)得到朋友的公钥
  命令:pgpk -a 〈keyfile〉
  如果我们收到了朋友的公钥,公钥保存在zz.txt里(如果直接贴在邮件里,我们也可以把它拷贝到一个文本文件中),这时我们可以使用这个命令:pgpk -a zz.txt,PGP执行时会显示出公钥的信息并询问我们是否加入我们的密钥环中,键入“Y”加以确认。查一下目录,看一看你的Pubring.pkr是不是变大了?这时你应该记住朋友的公钥标识(user ID)。
  (3)删除密钥环内的公钥
  命令:pgpk -r 〈userid〉
  比如说公钥名称为 minzheng  〈minzheng@ynmail.com〉的公钥我们不需要再使用了,我们要将之清除出我们的密钥环,可以使用这个命令:pgpk -r minzheng
  4.加密文件
  pgpe -r 〈userid〉 〈filename〉[-a 〈outfilename〉][-a]
  如上所述,我们已经获得了minzheng的公钥,我们就可以用他的公钥加密文件了,比如说我们要加密jm.txt,则命令为:pgpe -r  minzheng jm.txt  -o jm1.txt  -a,之后会产生jm1.txt这个加密后的文件,我们只需把这个文件传送给他,他就可以用自己的私钥解密阅读了。如果不指定-a参数,则系统生成二进制文档,指定  -a参数则生成ASCII格式文档。如果不指定输出文档则系统按默认方式生成文档,如果有  -a参数,则生成的文档名后缀为.asc,否则生成.pgp格式文档。
  5.解密文件
  pgpv 〈filename〉[-o 〈outfilename〉]
  如果我们收到了朋友用我们的公钥加密的文件jmn.txt,我们可以用这个命令解密:
  pgpv jmn.txt -o jm.txt
  PGP随即会要求我们输入自己的通行密码,正确后会将解密文件存为.jm.txt,如果不选输出文件名,PGP会按默认格式生成文件。
  6.签名文件
  命令:pgps -u 〈userid〉  〈filename〉[-a][-o<outfile>]
  假设我自己的ID为mzjgxs,要想对zb.txt签名,可以使用这个命令:
  pgps -u mzjgxs zb.txt  -a,PGP会要求我们输入自己的通行密码,然后生成zb.asc文件,这个文件就是我们签名后的文件。如果不指定-a参数,则生成的文件为二进制格式,如果指定输出文件名,则按输出文件名输出签名后的文件。用pgpv 〈filename〉命令则可以检验文件内容是否被人修改过。比如用pgpv zb.asc命令,系统会将没有签名的文件还原为文件zb,同时告诉我们文件是否正常。
  说明:对于PGP要求输入的标识(userid),可以使用标识的全部(如mzjgxs 〈mzjgxs@ynmail.com〉),也可以使用标识的一部分(如只用mzjgxs或 mzjgxs@ynmail.com)。
  PGP的命令很多,感兴趣的朋友可以在命令后面加-h指令来获得帮助。如果想熟练掌握这个软件的使用,自己不妨多练习一下。
#1  三、几点说明
  1.如果本文下载链接有所变动,请访问http://www.pgpi.org,以获得最新消息。
  2.要想使用PGP加密邮件之类双方通信的内容,要求双方都要有PGP软件。
  3.PGP不能对邮件的附件进行加密,如果想加密附件的话,首先加密要发送的文件,然后作为附件发送。
  4.对已经生成并传送给你朋友的密钥要妥善管理,要知道PGP不能重复生成同一对密钥,即使我们两次使用相同的标识和相同的通告密码也不行。
  5.PGP只能用于合法的需要,不能用来加密违法的信息。
  本人的电子邮件地址为:minzheng@ynmail.com,对PGP加密感兴趣的朋友可以和我联系。