电子邮件的安全性.ppt
《电子邮件的安全性.ppt》由会员分享,可在线阅读,更多相关《电子邮件的安全性.ppt(48页珍藏版)》请在三一办公上搜索。
1、第12章 电子邮件的安全性,PGP(Pretty Good Privacs)S/MIME,1.PGP,PGP的来源PGP主要由于 Phil Zimmermann一个人的贡献,PGP提供了一种机密性和鉴别的服务,可以用于电子邮件和文件存储的应用。Zimmermann主要做了下面一些工作:选择最好的、可用的加密算法作为基础构件。将这些算法集成起来,形成一个通用的独立于操作系统和处理器的应用程序,该应用程序基于易于使用的命令构成的小集合。制作了软件包和相应的文档,包括源代码,通过Internet、电子公告牌和如 Compuserve的商业网,免费提供给用户。和一个公司(Viacrypt,现在是Net
2、work Associates)签订了合同,提供PGP的完全兼容的、低价格的商用版本。,1.PGP,PGP的发展特点PGP发展非常迅速,现在已经被广泛应用。PGP得到快速发展的原因包括以下一些:它是全世界免费可得到的,包括了运行在不同平台的多个版本,诸如:DOSWndow,Unix,Macintosh等。另外,商用版本满足了那些想要获得厂家技术支持的用户的需要。它建立在一些经过公开评议,被认为是非常安全的算法的基础上。具体来说,PGP软件包包括了公开密钥的RSA,DSS和Diffie-Hellman加密算法;常规的CAST-128,IDEA和3DES加密算法;以及散列编码的SHA-1算法。它的
3、应用范围非常广,从想要选择和实施一个标准模式来加密文件和消息的公司到想要通过Internet或其他网络和他人进行安全通信的个人都可以使用。它不是任何政府或标准化组织开发的,因而也不会被它们控制。对于那些本质上不信任任何“组织机构”的人来说,PGP具有吸引力。,1.PGP,PGP的操作,1.PGP,PGP加密功能,1.PGP,PGP的操作鉴别发送者创建报文。使用 SHA-l来生成报文的160 bit散列代码。使用发送者的私有密钥,采用RSA算法对散列代码进行加密,结果串接在报文的前面。接收者使用发送者的公开密钥,采用RSA解密和恢复散列代码。接收者为报文生成新的散列代码,并与被解密的散列代码相比
4、较。如果两者匹配,则报文作为已鉴别的报文而接受。尽管签名一般和所签的报文或文件附加在一起,但这并不是必需的:分离的签名也是支持的。分离的签名可以和所签的报文分开存储和传输,这种方法在好几种场合中都是有用的。用户可能想要保持单独的所发送或接收的所有报文的签名日志。可执行程序的分离签名可以检测出接下来的病毒侵入。最后,分离签名可以用在需要多方签名的文档上,如法律合同。每个人的签名是独立的,因而可以只是应用到文档上。否则,签名将只能递归使用,第二个签名对文档和第一个签名进行签名,依此类推。,1.PGP,PGP的操作机密性发送者生成报文和128 bit的用作该报文会话密钥的随机数。采用CAST-128
5、(或IDEA或3DES)算法,使用会话密钥对报文进行加密。使用 64 bit来加密反馈(CFB)模式。采用RSA算法,使用接收者的公开密钥对会话密钥进行加密,并附加到报文前面。接收者采用RSA算法,使用自己的私有密钥解密和恢复会话密钥。使用会话密钥来解密报文。除了使用RSA对密钥加密之外,PGP提供了另一种称为Diffie-Hellman的选择。实际上,PGP使用的是Diffie-Hellman的提供加密解密的变体一一ElGamal。PGP提供给用户的密钥长度的范围达到768到3072比特。,1.PGP,PGP的操作机密性与鉴别PGP可以对报文可以同时使用两个服务。首先,为明文报文生成签名并附
6、加到报文首部。然后使用CAST-128(或IDEA或3DES)对明文报文和签名进行加密,再使用RSA(或ElGamal)对会话密码进行加密。这个步骤比相反的步骤要好:加密报文然后再生成加密后的报文的签名。将签名与明文报文存储在一起更加方便。另外,为了方便第三方验证,如果首先产生签名,第三方在验证签名时就不需要与常规密钥打交道。总之,当同时使用两个服务时,发送者首先用自己的私有密钥为报文签名,然后使用会话密钥对报文加密,接着再用接收者的公开密钥对会话密钥进行加密。,1.PGP,PGP的操作压缩在默认情况下,在签名之后加密之前,PGP可以对报文进行压缩。这有利于在电子邮件传输和文件存储时节省空间。
7、压缩算法使用的是ZIP。在压缩之前生成签名有两个理由:对没有经过压缩的报文进行签名更好,这样为了将来的验证只需要存储没压缩的报文和签名。如果对压缩文档签名,那么为了将来的验证就必须或者存储压缩过的报文,或者在需要验证时重新压缩报文。即使一个人愿意在验证时动态生成重新压缩的报文,PGP的压缩算法也存在问题。算法不是固定的,算法的不同实现在运行速度和压缩比上进行不同的折衷,因此产生了不同的压缩形式。但是,这些不同的压缩算法是可以互操作的,因为任何版本的算法都可以正确地解压其他版本的输出。在压缩之后应用散列函数和签名,将约束所有的PGP实现都使用同样的压缩算法。在压缩之后对报文加密可以加强加密的强度
8、。因为压缩过的报文比原始明文冗余更少,密码分析更加困难。,1.PGP,PGP的操作电子邮件的兼容性很多电子邮件系统只允许使用由ASCII正文组成的块。为了满足这一约束,PGP提供了将原始8 bit二进制流转换成可打印ASCII字符的服务。为这一目的采用的方案是radix-64转换。,1.PGP,PGP的操作分段和重装电子邮件设施经常受限于最大的报文长度。例如,很多Internet可以访问的设施都有最大50 000个八位组的限制。任何长度超过这个数值的报文都必须划分成更小的报文段,每个段单独发送。为了满足这个约束,PGP自动将太长的报文划分成可以使用电子邮件发送的足够小的报文段。分段是在所有其他
9、的处理(包括radix-64转换)完成之后才进行的,因此会话密钥部分和签名部分只在第一个报文段的开始位置出现一次。,1.PGP,PGP报文格式,1.PGP,PGP加密密钥和密钥环PGP利用了四种类型的密钥:一次性会话的常规密钥、公开密钥。私有密钥和基于口令短语(passphrase)的常规密钥(在下面解释)。对于这些密钥存在三种独立的需求:需要生成一种不可预测的会话密钥的方法。允许用户拥有多个公开私有密钥对。一个理由是用户可能想要不时地改变他或她的密钥对。当发生了这种情况时,管道中所有报文都将是用过时的密钥构造的。此外,接收者在接到改变的通知之前只知道旧的公开密钥。除了不时地改变密钥的需要之外
10、,在给定的时刻,用户可能想要拥有多个密钥对来和不同的通信组交互,或者只是为了增强安全性而限制密钥能够加密的报文的数量。这些原因的结果就是在用户和他们的公开密钥之间不存在一一对应的关系。因此,需要某种方法来标识特定的密钥。每个PGP实体必须维护它自己的公开私有密钥对的文件,以及与它通信的人的公开密钥文件。,1.PGP,PGP会话密钥和IV的生成参见密码编码学与网络安全:原理与实践(第二版)附录12C。,1.PGP,PGP的密钥标识符PGP采用的解决方法是给每个公开密钥指派一个密钥ID,这在用户ID中很可能是惟一的。密钥ID与每个公开密钥相关联,并由公开密钥的最低64比特组成,即,公开密钥KUa的
11、密钥ID是(KUa mod 264)。这个长度足以使密钥 ID重复概率非常小。PCP的数字签名也需要密钥ID。因为发送者可能使用一组私有密钥中的一个来加密报文摘要,接收者必须知道应该使用哪个公开密钥来解密。相应地,报文的数字签名部分包括了需要的公开密钥的64 bit密钥ID。当报文被收到时,接收者验证该密钥 ID是它所知道的发送者的公开密钥,然后接着来验证签名。,1.PGP,PGP的密钥环任何一个PGP报文中包括的两个密钥ID提供了机密性和鉴别。这些密钥需要以一种系统化的方法来存储和组织,使得各方能够有效和高效地使用它们。PGP使用的方法是在每个结点提供一对数据结构,一个用来存储该结点拥有的公
12、开私有密钥对,另一个用来存储该结点所知道的其他用户的公开密钥。相应地,这些数据结构被称为私有密钥环和公开密钥环。,1.PGP,PGP私有密钥环的一般结构时间戳:该密钥对生成的日期时间。密钥ID:这个实体的公开密钥的低位64比特。公开密钥:密钥对的公开密钥部分。私有密钥:密钥对的私有密钥部分;这个字段是加密的。用户ID:这个字段的典型值是用户的电子邮件地址(例如,stallingsacm.org)。然而,用户可以为每个密钥对选择不同的名字(例如,Stallings,Wstallings,Williamstallings等等),或者多次重用相同的用户ID。,1.PGP,PGP对私有密钥的保护尽管想
13、要私有密钥环只存储在创建和拥有密钥对的用户的机器上,并且只有该用户可以访问私有密钥环,但确保私有密钥的值尽可能地安全仍然很有意义。相应地,私有密钥本身并不存储在密钥环中,相反,要使用CAST-128(或IDEA或3DES)来对这个密钥加密。其步骤如下:用户选择口令短语用来对私有密钥进行加密。当系统使用RSA生成新的公开私有密钥对时,它向用户要求那个口令短语。使用SHA-1生成该口令短语的160 bit的散列编码,然后该口令短语被丢弃。系统使用CAST-128,将128 bit的散列编码作为密钥来加密私有密钥。然后,散列编码被丢弃,加密过的私有密钥被存储在私有密钥环中。当用户访问私有密钥环来查询
14、私有密钥时,他或她必须提供相应的口令短语。PGP将查询加密的私有密钥,生成口令短语的散列编码,然后使用该散列编码来应用CAST-128对加密的私有密钥进行解密。,1.PGP,PGP公开密钥环的一般结构时间戳:这个实体生成的日期时间。密钥ID:这个实体公开密钥的低位64比特。公开密钥:这个实体的公开密钥。用户ID:这个密钥的拥有者。公开密钥可以与多个用户ID相关联。,1.PGP,PGP报文生成,1.PGP,PGP报文生成签名报文PGP使用用户ID作为索引从私有密钥环中查找发送者的私有密钥。如果在命令中没有提供用户ID,那么查询环中的第一个私有密钥。PGP提示用户输入口令短语来恢复未加密的私有密钥
15、。构造报文的签名部分。加密报文PGP生成会话密钥并且加密报文。PGP使用接收者的用户ID作为索引,从公开密钥环中查找接收者的公开密钥。构造报文的会话密钥部分。,1.PGP,PGP报文接收,1.PGP,PGP报文接收解密报文PGP使用报文会话密钥部分的密钥ID字段作为索引,从私有密钥环中查找接收者的私有密钥。PGP提示用户输入口令短语来恢复未加密的私有密钥。PGP然后恢复会话密钥并且解密报文。鉴别报文PGP使用报文签名密钥部分的密钥ID字段作为索引,从公开密钥环中查找发送者的公开密钥。PGP恢复传输的报文摘要。PGP对接收的报文计算报文摘要,将计算的结果与传输过来的报文摘要相比较以鉴别报文。,1
16、.PGP,PGP公开密钥管理的方法确实地从B得到密钥。B可以将其公开密钥(KUb)存储在软盘上,将软盘交给A。A可以从这个软盘上将密钥加载到他的系统中。这是非常安全的方法,但实际运用具有明显的局限性。通过电话验证密钥。如果A可以在电话上听出B的声音人可以给B打电话,要求她在电话上以radix-64的形式口述密钥。更加实用的方法是B可以将她的密钥通过电子邮件传递给A。然后,A可以让PHP生成密钥的160 bit的SHA-l摘要,并且以十六进制的形式显示,这个摘要被称为密钥的“指纹”。接下来人可以给B打电话,让她在电话里口述指纹。如果两个指纹一致,那么密钥就验证过了。从双方信任的人D那里获得B的公
17、开密钥。介绍人D创建签名的证书,证书包括B的公开密钥、创建密钥的时间和密钥的合法期限。D生成这个证书的SHA-1摘要,使用她的私有密钥对其加密,并且将签名附加在证书上。因为只有D能够创建这个签名,所以没有其他人可以创建假的公开密钥,并且伪装成经过D的签名。签名的证书可以直接由B或D发送给A,或者粘贴在公告牌上。从可信任的认证中心获得B的公开密钥。再一次创建公开密钥证书,并经过认证中心的签名。A可以访问这个认证中心,提供用户名获得签名的证书。,1.PGP,PGP信任的标注PGP使用与实体相联系的密钥合法性字段,用来指示PGP信任“这是这个用户合法的公开密钥”的程度;信任程度越高,这个用户ID与这
18、个密钥的绑定越紧密。这个字段是由PGP从这个实体的一组签名信任字段中推导出来的。与每个实体相联系的还有密钥环的拥有者收集的,对这个证书签名的零个或多个签名。每个签名都带有签名信任字段,用来指示该PGP用户信任签名者对这个公开密钥证明的程度。每个实体定义了与特定的拥有者相联系的公开密钥,包括拥有者信任字段,用来指示这个公开密钥对其他公开密钥证书进行签名的可信任程度,这个信任程度是由该用户指派的。我们可以把签名信任字段看成是来自于其他实体的拥有者信任字段的副本。,1.PGP,PGP信任标志字节的内容,1.PGP,PGP信任的确定当A在公开密钥环中插入了新的公开密钥时,PGP必须为与这个公开密钥拥有
19、者相关联的信任标志赋值。如果拥有者是A,因此这个公开密钥也出现在私有密钥环中,那么这个信任字段被自动指派终极信任的值。否则,PGP询问A指派这个密钥拥有者的信任程度的评定,A必须输入想要的级别。用户可以说明这个拥有者是未知的、不可信任的、少量信任和完全可信的。当新的公开密钥输入之后,可以在它上面附加一个或多个签名,以后还可以增加更多的签名。在实体中插入签名时,H对在公开密钥环中搜索,查看这个签名的作者是否属于已知的公开密钥拥有者。如果是,为这个签名的SIGTRUST字段指派该拥有者的OWNERTRUST值。否则,指派不认识的用户值。密钥合法性字段的值是在这个实体的签名信任字段的基础上计算的。如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子邮件 安全性
链接地址:https://www.31ppt.com/p-6131120.html