第四部分安全技术与产品第11章电子邮件安全及PGP导读信息加密是每一个普通用户都有权利和有能力使用的一种安全的通信技术。PGP(PrettyGoodPrivacy)是一个强有力的电子邮件加密系统。它是由许多人开发,在国际互联网上广为传播的免费软件。我们应该了解PGP系统的功能,研究它的可行性、方便性、安全性和认证的可操作性。使用PGP加密系统可以保证信息在计算机上的安全存储和在网络上的安全传输。内容11.1电子邮件安全概述11.2PGP11.3PGP软件的使用11.4S/MIME11.5垃圾邮件电子邮件中主要存在的问题如下:1.诈骗邮件:通常指那些带有恶意的欺诈性邮件。2.邮件炸弹:指在短时间内向同一信箱发送大量电子邮件的行为。3.传播病毒:通过电子邮件传播的病毒通常用VBScript编写,且大多数采用附件的形式夹带在电子邮件中。4.邮件的安全问题:未加密的信息可能在传输中被截获、偷看或篡改;如果邮件未经数字签名,用户就无法肯定邮件是从哪里来的。解决方法要解决上述这些问题,可以从三个方面入手:端到端的安全电子邮件技术传输层的安全电子邮件技术保证邮件服务器的安全与可靠。内容11.1电子邮件安全概述11.2PGP11.3PGP软件的使用11.4S/MIME11.5垃圾邮件11.2.1PGP的历史及概述PGP是PrettyGoodPrivacy的缩写,是一种长期在学术界和技术界都得到广泛使用的安全邮件标准。PGP的特点是使用单向散列算法和公开密钥技术对邮件内容进行签名,以保证信件内容无法被篡改且不可否认;使用对称和非对称加密技术保证邮件内容保密。在PGP体系中,“信任”或是双方之间的直接关系,或是通过第三者、第四者的间接关系。但无论哪种,任意两方之间都是对等的,整个信任关系构成网状结构,这就是所谓的信任网(WebofTrust)。1992年9月,PGP2.0在欧洲发布。11.2.2PGP的功能PGP软件有3个主要功能:(1)对存储在计算机上的文件加密。加密的文件只能由知道密钥的人解密阅读。(2)对电子邮件进行加密。经加密的电子邮件只有收信人本人才能解密阅读。(3)对文件或电子邮件作数字签名。收件人可以用签名人的公开密钥签别真伪。此外,为了方便使用,PGP软件还可以:(1)对文件或电子邮件既加密又签名,这是PGP提供的最安全的通信方式。(2)为用户生成公/私钥对。(3)为用户管理密钥。用户可以把通信人的公开密钥穿在自己的公钥环上,取用时提供通信人地址即可。(4)允许用户把所知的公开密钥签名并发给朋友。(5)在得知密钥失效或泄密后,能够对该密钥取消或停用。为了防止遗忘或意外,用户还可以对密钥做备份。(6)允许用户根据个人喜好和使用环境设置PGP。(7)允许用户与国际互联网上的公开密钥服务器打交道。11.2.3PGP的算法PGP采用RSA算法和对称加密算法相混合的方法。PGP实际上并不用RSA来加密邮件内容,而是采用IDEA对称加密算法来对邮件内容加密。由于IDEA的加(解)密速度比RSA快得多,所以实际上PGP是用一个随机生成的密钥(每个邮件均不相同)及IDEA算法对明文加密,然后再用RSA算法对该随机密钥加密。收信人同样是用RSA解密出这个随机密钥,再用IDEA解密得到邮件明文。PGP的创意有一半就在这一点上,另一半则在PGP的密钥管理上。一个成熟的加密体系必然要有一个配套的成熟的密钥管理机制。•防止冒充公钥情况出现的最好办法是避免让任何其他人有篡改公钥的机会,例如,直接从小王手中得到他的公钥。然而当他在千里之外或无法见到时,这是很难做到的。•PGP采用了一种公钥介绍机制来解决这个问题。11.2.4PGP对文件加解密的过程PGP文件加密过程用户口令MD5函数128位密钥IDEA加密密文文件明文文件PGP文件解密过程用户口令MD5函数128位密钥IDEA解密明文文件密文文件11.2.5PGP公/私钥对生成过程生成公/私钥对时,用户要经过如下四个步骤:1.密钥长度的选择:首先考虑的是安全因素,其次是速度。选1024位的密钥应该是足够安全的,密钥的长度并不影响加密和解密邮件或文件内容的速度,只影响加密和解密128位会话密钥的速度以及签名的速度。2.提供用户标识信息:纯粹是为了标识生成的公开密钥。3.确定口令:是用户保护私钥和向PGP系统证明自己是私钥主人的唯一依据。4.做些随机的击键动作:是为了生成一个536位的伪随机数发生器种子,它与PGP加密系统的安全性有关。将每个人完成随机击键的时间差异放大来产生随机数种子,比其它很多方式都安全有效。PGP公/私钥对的生成过程用户口令MD5函数128位密钥IDEA加密密钥长度IDEA加密随机数用户标识信息RSA密钥生成器RSA私钥RSA公钥公钥文件私钥文件随机数文件11.2.6PGP的数字签名技术PGP签名过程用户口令MD5函数128位密钥IDEA解密消息RSA私钥加密的RSA私钥MD5函数摘要传输签名值RSA签名PGP报文格式11.2.7PGP公开密钥所使用的认证方式对于拟使用的任何公开密钥,原则上都应当进行鉴定。人们之所以能够建立某种互相信任的关系,归纳起来,不外有三种方式:中心控制式、金字塔式和网络式。目前切实可行的公开密钥认证方案,也不外乎有以上几种。PGP在鉴别公开密钥真伪时,所使用的就是网络式。PGP一般使用私人方式的公钥介绍机制,因为这样的非官方方式更能反映出人们自然的社会交往,而且人们也能自由地选择信任的人来介绍。11.2.8PGP的安全性从加密的理论基础和实际运用的可靠性分析来看,PGP加密系统属于较强的加密系统。一个好的加密系统在技术上至少需要满足如下三个条件:(1)核心的加密算法必须是公认可靠的;(2)加密系统的具体实现应当是可靠的;(3)加密系统应能支持足够长的密钥。大致有三种办法可能破译PGP加密的报文,这就是:(1)破译IDEA加密(2)破译RSA公开密钥加密(3)设法搞到收件人的私钥,或伪造一个收件人的公开密钥PGP程序产生随机数的方法类似RSA密钥的产生,它是从用户敲击键盘的时间间隔上取得其随机数种子的。同时对于硬盘上的随机数文件采用了和邮件同样强度的加密,这有效地防止了他人从该文件中分析出加密密钥的规律来。然而,PGP程序的使用并不能完全保证用户的通信就是安全的,用户的计算机也仍可能很脆弱。就像在房子前门安装一个最安全的锁,小偷仍然可以从开着的窗户爬进来一样。存在许多著名的对PGP的攻击,主要有蛮力攻击、对私钥环的攻击和对公钥环的攻击等。内容11.1电子邮件安全概述11.2PGP11.3PGP软件的使用11.4S/MIME11.5垃圾邮件PGP安装完成后,任何用户都要做的第一件事就是创建一个自己的RSA密钥对。密钥的长短与密钥的安全性成正比例,与使用这个密钥所花费的时间成反比例,也就是说,密钥越长越安全,但使用时所花的时间也越多。用户标识信息称为UserID,它是一个可打印的字符串,这个字符串告诉其他人谁拥有这个密钥。一个密钥可以有多个UserID。一般来说,UserID的形式是RealNameemail-account@email-site。密钥参数定义完之后,PGP会提示用户输入一个口令。这个口令以后会用来加解密私钥。在输入口令之后,PGP会接着要求用户给出一些随机击键。内容11.1电子邮件安全概述11.2PGP11.3PGP软件的使用11.4S/MIME11.5垃圾邮件S/MIME是SecureMultipurposeInternetMailExtensions的简称,它是从PEM(PrivacyEnhancedMail)和MIME发展而来的。最初由RSA公司开发,目的是为了使不同产品的开发者能使用兼容的加密技术创建能互通的消息传输代理。同PGP一样,S/MIME也利用单向散列算法和非对称的加密体系。S/MIME与PGP的不同之处主要有两点:首先,它的认证机制依赖于层次结构的证书认证机构,所有下一级的组织和个人的证书由上一级的组织负责认证,最上一级的组织的证书(根证书)则依靠组织之间相互认证,整个信任关系基本是树状结构,就是所谓的TreeofTrust;其次,S/MIME将信件内容加密签名后作为特殊的附件传送,其证书格式采用X.509规范,但与一般网上购物所使用的SSL证书还有一定差异,支持的厂商也相对比较少。在国外,有VeriSign公司免费向个人提供S/MIME电子邮件证书;在国内,也有公司提供支持该标准的产品。在客户端,NetscapeMessenger和MicrosoftOutlook等都支持S/MIME。内容11.1电子邮件安全概述11.2PGP11.3PGP软件的使用11.4S/MIME11.5垃圾邮件垃圾邮件(spam)现在还没有一个非常严格的定义。一般来说,凡是未经用户许可就强行发送到用户的邮箱中的任何电子邮件。在垃圾邮件出现之前,美国一位名为桑福德·华莱士(或称Spamford或「垃圾福」)的人,成立了一间公司,专门为其他公司客户提供收费广告传真服务,由於惹起接收者的反感,以及浪费纸张,於是美国立法禁止未经同意的传真广告。後来垃圾福把广告转到电子邮件,垃圾邮件便顺理成章地出现.10月垃圾邮件来源比例垃圾邮件利用Internet这个开放的传输网络,对目标邮箱进行“狂轰乱炸”,造成非常恶劣的影响。为抵御垃圾邮件,在服务器端应该设置发信人身份认证,以防止自己的邮件服务器被选做垃圾邮件的传递者。在用户端,有下列一些方式可以用来防范垃圾邮件。不随便公开自己的电子邮件地址,防止其被收入垃圾邮件的发送地址列表。尽量采用转发的方式收信,避免直接使用ISP提供的信箱。申请一个转发信箱地址,结合垃圾邮件过滤,然后再转发到自己的真实信箱。地址过滤可以设定只有当该转发信箱地址出现在收信人地址栏并且发信人地址不等于收信人地址时才转发,这对于很多垃圾邮件发送者同时抄送成千上万用户时很有效果;字符串特征过滤可以设置为当邮件主题为空或者包含“赚钱”、“好消息”、“美金”等词语时拒收或者直接丢弃。具体设置可以参照各转信服务商提供的帮助页面。不要回复垃圾邮件,这是一个诱人进一步上当的花招。垃圾邮件的过滤