10北大信息安全_电子邮件安全

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

网络与信息安全第十讲电子邮件的安全陈钟北京大学信息科学技术学院软件研究所-信息安全研究室chen@cs.pku.edu.cn2003年春季北京大学硕士研究生课程讨论议题•PGP•S/MIME互联网上电子邮件传递简图服务器终端用户终端用户用户代理用户代理待发函件队列报文传输代理客户报文传输代理用户邮箱发送者接收者TCP连接TCP端口号25用户代理:UNIXMH,BerkeleyMail,Elm和Mush报文传输代理(MTA):UNIXsendmailRFC821定义了SMTP协议。RFC822定义了在两个MTA之间采用RFC821标准传输的函件报文格式电子邮件的收发方式•使用Browser来收发电子邮件–在Communicator中以Messenger来收发邮件–在IE中使用outlookexpress来收发–WebMail:直接使用Web服务器提供的服务Mail.263.netMail.hotmail.com安全电子邮件•E-mail是Internet上最大的应用,也是唯一的广泛跨平台、跨体系结构的分布式应用。•安全的电子邮件主要是解决身份鉴别和保密性的安全问题。涉及到的问题:–安全算法的选择–系统邮件的信息格式–如何实现认证和信任管理–邮件服务器的可靠性•应用实际例子:PGP、S/MIME、PEM、MOSS安全的算法•算法的安全•交互操作性PEMMOSSS/MIMEPGPRSA、DESMD5没有特别要求RSA、DES、RC2、RC3、RC5、MD5、SHA-1RSA、DSS和Diffie-HellmanIDEA、3DES、CAST128SHA-1、MD5系统的邮件信息格式•ASCII文本•MultipurposeInternetMailExtensions(MIME)系统的信任管理•PGP密钥:公钥环、私钥环,简单的信任模型,相当于把一个朋友介绍给另一个朋友•X.509只能被签名者签名一次•PEM简单的而又严格的全球认证分级安全的邮件服务器•对邮件服务器的攻击由来已久,WORM病毒•网络入侵和拒绝服务•防范措施:–防止来自外部的攻击:拒绝来自特定地址的连接请求、限制单个IP的连接数量–防止来自内部的攻击:实现用户身份的鉴别PGP•PGP-PrettyGoodPrivacy–作者:PhilZimmermann–提供可用于电子邮件和文件存储应用的保密与鉴别服务。PGP发展特点1)选择最好的可用加密算法作为系统的构造模块2)将这些算法集成到一个通用的应用程序中,该程序独立于操作系统和处理器,并且基于一个使用方便的小命令集。3)设计了程序、文档,并在Internet上公开4)一个商业公司(Viacrypt即NetworkAssociates)提供全兼容、低成本的商业版本。PGP广泛应用的原因•免费、可用于多平台。DOS/Windows、Unix、Macintosh•选用算法的生命力和安全性公众认可。•具有广泛的可用性•不由政府或标准化组织控制。PGP安全业务•数字签名–DSS/SHA或RSA/SHA•完整性:–RSA、MD5•消息加密–CAST-128或IDEA或3DES+Diffie-Hellman或RSA•数据压缩–ZIP•邮件兼容–Radix64•数据分段PGP密码功能概要(Fig12.1)记号说明:Ks:sessionkeyKRa:用户A的私钥KUa:用户A的公钥EP:公钥加密DP:公钥解密EC:常规加密DC:常规加密H:散列函数||:连接Z:用ZIP算法数据压缩R64:用radix64转换到ASCII格式PGP——功能:身份鉴别•发送方–产生消息M–用SHA-1对M生成一个160位的散列码H–用发送者的私钥对H加密,并与M连接•接收方–用发送者的公钥解密并恢复散列码H–对消息M生成一个新的散列码,与H比较。如果一致,则消息M被鉴别。PGP—身份鉴别说明•说明:1.RSA的强度保证了发送方的身份2.SHA-1的强度保证了签名的有效性3.DSS/SHA-1可选替代方案。•签名与消息可以分离–对消息进行单独的日志记录–可执行程序的签名记录,检查病毒–文档多方签名,可以避免嵌套签名PGP——保密性•发送方–生成消息M并为该消息生成一个随机数作为会话密钥。–用会话密钥加密M–用接收者的公钥加密会话密钥并与消息M结合•接收方–用自己的私钥解密恢复会话密钥–用会话密钥解密恢复消息MPGP—保密性说明•采用CAST-128(或IDEA或3DES)、64位CFB方式。一次性密钥,单向分发,公钥算法保护。1)对称加密算法和公钥加密算法的结合可以缩短加密时间2)用公钥算法解决了会话密钥的分配问题•不需要专门的会话密钥交换协议•由于邮件系统的存储-转发的特性,用握手方式交换密钥不太可能3)每个消息都有自己的一次性密钥,进一步增强了保密强度。所以,每个密钥只加密很小部分的明文内容4)公开密钥算法的长度决定安全性RSA(768~3072)、DSS(1024)保密与鉴别同时运用•两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密,再用接收者的公钥加密会话密钥。数据压缩•压缩的位置:发生在签名后、加密前。•压缩之前生成签名:–(1)验证时无须压缩–(2)压缩算法的多样性•在加密前压缩:压缩的报文更难分析对邮件传输或存储都有节省空间的好处。LZ77的压缩过程E-mail兼容性•加密后是任意的8位字节,需要转换到ASCII格式。•Radix64将3字节输入转换到4个ASCII字符,并带CRC校验。•长度扩大33%•与压缩综合后,长度为:–1.33x0.5xM=0.665xMRadix-64变换分段与重组•Email常常受限制于最大消息长度(一般限制在最大50000字节)•更长的消息要进行分段,每一段分别邮寄。•PGP自动分段并在接收时自动恢复。•签名只需一次,在第一段中。PGP消息的传送与接收加密密钥和密钥环PGP使用四种类型的密钥:一次性会话常规密钥,公钥,私钥,基于口令短语的常规密钥。需求:1、需要一种生成不可预知的会话密钥的手段2、需要某种手段来标识具体的密钥。–一个用户拥有多个公钥/私钥对。(更换,分组)3、每个PGP实体需要维护一个文件保存其公钥私钥对,和一个文件保存通信对方的公钥。会话密钥的生成•以CAST-128为例。•128位的随机数是由CAST-128自己生成的。输入包括一个128位的密钥和两个64位的数据块作为加密的输入。使用CFB方式,CAST-128产生两个64位的加密数据块,这两个数据块的结合构成128位的会话密钥。(算法基于ANSIX12.17)•作为明文输入的两个64位数据块,是从一个128位的随机数流中导出的。这些数是基于用户的键盘输入的。键盘输入时间和内容用来产生随机流。因此,如果用户以他通常的步调敲击任意键,将会产生合理的随机性。密钥标识符•一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥?–将公钥与消息一起传送。–将一个标识符与一个公钥关联。对一个用户来说做到一一对应。•定义KeyID包括64个有效位:(KUamod264)•KeyID同样也需要PGP数字签名。发送消息的格式•一个消息包含三部分成员:–报文messagecomponent–签名signature(optional)–会话密钥sessionkeycomponent(optional)PGP消息的一般格式(AtoB)密钥环•我们已经看到KeyID对于PGP是如何关键。–两个keyID包含在任何PGP消息中,提供保密与鉴别功能。–需要一种系统化的方法存储和组织这些key以保证使用。•PGP在每一个节点上提供一对数据结构:–存储该节点拥有的公钥/私钥对;(私钥环)–存储本节点知道的其他用户的公钥;(公钥环)私钥环说明•UserID:通常是用户的邮件地址。也可以是一个名字,或重用一个名字多次。•PrivateKey:使用CAST-128(或IDEA或3DES)加密过程如下:–用户选择一个口令短语用于加密私钥;–当系统用RSA生成一个新的公钥/私钥对时,要求用户输入口令短语。对该短语使用SHA-1生成一个160位的散列码后,销毁该短语。–系统用其中128位作为密钥用CAST-128加密私钥,然后销毁这个散列码,并将加密后的私钥存储到私钥环中。–当用户要访问私钥环中的私钥时,必须提供口令短语。PGP将检索出加密的私钥,生成散列码,解密私钥。公钥环说明•UserID:公钥的拥有者。多个UserID可以对应一个公钥。•公钥环可以用UserID或KeyID索引。PGP报文的生成PGP—发送方处理消息的过程•签名:–从私钥环中得到私钥,利用userid作为索引–PGP提示输入口令短语,恢复私钥–构造签名部分•加密:–PGP产生一个会话密钥,并加密消息–PGP用接收者userid从公钥环中获取其公钥–构造消息的会话密钥部分PGP报文的接收PGP—接收方处理消息的过程•解密消息–PGP用消息的会话密钥部分中的KeyID作为索引,从私钥环中获取私钥–PGP提示输入口令短语,恢复私钥–PGP恢复会话密钥,并解密消息•验证消息–PGP用消息的签名部分中的KeyID作为索引,从公钥环中获取发送者的公钥–PGP恢复被传输过来的消息摘要–PGP对于接收到的消息作摘要,并与上一步的结果作比较公钥管理问题•由于PGP重在广泛地在正式或非正式环境下应用,没有建立严格的公钥管理模式。•如果A的公钥环上有一个从BBS上获得B发布的公钥,但已被C替换,这是就存在两条通道。C可以向A发信并冒充B的签名,A以为是来自B;A与B的任何加密消息C都可以读取。•为了防止A的公钥环上包含错误的公钥,有若干种方法可用于降低这种风险。1、物理上得到B的公钥。2、通过电话验证公钥。–B将其公钥email给A,A可以用PGP对该公钥生成一个160位的SHA-1摘要,并以16进制显示。这一特点称作密钥的“指纹”。然后A打电话给B,让B在电话中对证“指纹”。如果双方一致,则该公钥被认可。3、从双方都信任的个体D处获得B的公钥。–D是介绍人,生成一个签名的证书。其中包含B的公钥,密钥生成时间。D对该证书生成一个SHA-1摘要,用其私钥加密这个摘要,并将其附加在证书后。因为只有D能够产生这个签名,没有人可以生成一个错误的公钥并假装是D签名的。这个签名的证书可以由B或D直接发给A,也可以贴到公告牌上。4、从一个信任的CA中心得到B的公钥。信任关系的应用•尽管PGP没有包含任何建立认证权威机构或建立信任体系的规格说明,但它提供了一个利用信任关系的手段,将信任与公钥关联,利用信任信息。–Keylegitimacyfield:表明PGP将信任这是一个对该用户是合法的公钥;信任级别越高,这个userID对这个密钥的绑定越强。这个字段是由PGP计算的。–每一个签名与一个signaturetrustfield关联,表明这个PGP用户对签名人对公钥签名的信任程度。Keylegitimacyfield是由多个signaturetrustfield导出的。–Ownertrustfield:表明该公钥被信任用于签名其它公钥证书的信任程度。这一级别的信任是由用户给出的。ContentsofTrustFlagByte(a)TrustAssignedtoPublicKeyOwner–appearsafterkeypacket;userdefinedOWNERTRUSTfield–undefinedtrust–unknownuser–usuallynottrustedtosignotherkeys–usuallytrustedtosignotherkeys–alwaystrustedtosignotherkeys–thiskeyispresentinsecretkeyring(ultimatetrust)BUCKSTOPbit–setifthiskeyappearsinsecretkeyringContinue...(b)TrustAssignedtoPublicKey/UserIDPair–app

1 / 69
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功