电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处1信息安全原理与应用第十章安全电子邮件本章由王昭主写电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处2讨论议题•电子邮件原理•电子邮件的安全性•PGP电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处3UNIX电子邮件系统•自从20世纪70年代以来,电子邮件是Internet上最广泛的应用之一。•邮件服务器通常被划分为三个模块:–邮件分发代理(MailDeliveryAgent,MDA)–邮件传送代理(MailTransferAgent,MTA)–邮件用户代理(MailUserAgent,MUA)•这三个部分之间的界限并不十分明确。有时一个程序模块可能既包含了MDA功能同时又能实现MTA功能,有时又是MTA与MUA功能组合在一起。电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处4互联网上电子邮件传递简图电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处5邮件用户代理MUA•MUA程序是用来阅读和发送邮件的程序。•用户代理:–文本终端的binmail,存放在:/bin/mail.同时是MDA–图形文本终端的pine–XWindows系统终端的kmail程序–Rand公司的MailHandler(MH)–NetscapeMessenger–MicrosoftOutlookExpress电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处6邮件分发代理MDA•主要功能是在本地邮件服务器上将邮件分发给用户。•包括以下功能:–自动邮件过滤:邮件信息能够被自动分捡到不同的邮件文件夹–自动邮件回复:对所收邮件进行自动回复–邮件自动触发:根据邮件信息的不同启动不同的程序•开放源码MDA程序:–文本终端的binmail,存放在:/bin/mail.同时是MUA,简单–procmail,可进行灵活配置电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处7邮件传输代理MTA•MTA负责处理所有接收和发送的邮件。如果目的主机是远程的邮件服务器,本地MTA必须同这个远程的MTA建立通信链路来传递邮件。•MTA程序的特性–安全性:MTA程序使用普通用户运行,确保黑客即使破坏了邮件软件,也不至于控制整个服务器;–配置简单–处理迅速:邮件分级•UNIX环境下三种使用最广泛的MTA–Sendmail、Qmail、Postfix电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处8电子邮件协议•邮件传输代理协议(MTAProtocol)–在互联网上使用的最广泛的邮件传送协议是简单邮件传送协议SMTP。–RFC821定义了SMTP协议。–RFC822定义了在两个MTA之间采用RFC821标准传输邮件的格式–扩展的简单邮件传输协议ESMTP•邮件用户代理协议(MUAProtocol)–MUA协议的目的是允许用户从他们的邮箱中读取邮件–最简单的是邮局(PostOfficeProtocol,POP3)协议–交互邮件访问协议IMAP电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处9•电子邮件原理•电子邮件的安全性•PGP电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处10安全电子邮件•E-mail是Internet上最大的应用之一,也是一个广泛跨平台、跨体系结构的分布式应用。•安全的电子邮件主要是解决身份鉴别和保密性的安全问题。涉及到的问题:–安全算法的选择–系统邮件的信息格式–如何实现鉴别和信任管理–邮件服务器的可靠性•应用实际例子:PGP、S/MIME、PEM、MOSS电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处11安全的算法•算法的安全•交互操作性电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处12系统的邮件信息格式•ASCII文本可以直接发送•非ASCII文本通过编码转换为ASCII文本后发送–二进制数据编码uuencode–编码标准RFC2045和2046,MultipurposeInternetMailExtensions(MIME)电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处13系统的信任管理•PGP密钥:公钥环、私钥环,简单的信任模型,相当于把一个朋友介绍给另一个朋友•X.509只能被签名者签名一次•PEM简单的而又严格的全球认证分级电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处14安全的邮件服务器•对邮件服务器的攻击由来已久,WORM病毒•网络入侵和拒绝服务•防范措施:–防止来自外部的攻击:拒绝来自特定地址的连接请求、限制单个IP的连接数量–防止来自内部的攻击:实现用户身份的鉴别电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处15讨论议题•电子邮件原理•电子邮件的安全性•PGP电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处16PGP•PGP-PrettyGoodPrivacy–作者:PhilZimmermann–提供可用于电子邮件和文件存储应用的保密与鉴别服务。–pgp已成为Internet标准文档(RFC3156)–电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处17PGP成功的原因-1①选用生命力和安全性已经得到公众认可的算法。目前最新版本的PGP9.9.0采用的公钥算法有RSA(签名和加密密钥均支持1024-4096位)、DSS(1024-3072位)、Diffie-Hellman(1024-4096位);对称密码算法有CAST-128、IDEA(128位)、3DES(168位)、AES-128、AES-192,AES-256;散列算法有SHA-2-256、SHA-2-384、SHA-2-512、SHA-1(160位)、RIPEMD-160、MD5(128位)。PGP软件在5.0版本以前使用MD5,从PGP5.0开始向SHA-1发展,保留MD5的目的之一是出于兼容性的考虑。电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处18PGP成功的原因-2②提供免费版本,且可用于多种平台,如Windows、Unix、Linux、MacOSX,商业版本使用户得到很好的技术支持。③具有广泛的可用性,适用于公司和个人。④不由政府或标准化组织控制。电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处19PGP安全业务•数字签名–DSS/SHA或RSA/SHA•消息加密•数据压缩–Bzip2、ZLIB和Zip•邮件兼容–Radix64•数据分段电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处PGP数字签名过程20电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处PGP数字签名的验证过程21电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处22PGP功能:数字签名•发送方–产生消息M–用散列算法如SHA-256对M生成一个160位的散列码H–用发送者的私钥对H加密,并与M连接•接收方–用发送者的公钥解密并恢复散列码H–对消息M生成一个新的散列码,与H比较。如果一致,则消息M被鉴别。电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处PGP发送加密邮件的过程23电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处PGP接收加密邮件的过程24电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处25PGP功能:保密性•发送方–生成消息M并为该消息生成一个随机数作为会话密钥。–用会话密钥加密M–用接收者的公钥加密会话密钥并与消息M结合•接收方–用自己的私钥解密恢复会话密钥–用会话密钥解密恢复消息M电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处26PGP—保密性说明①对称加密算法和公钥加密算法的结合可以缩短加密时间②用公钥算法解决了会话密钥的分配问题•不需要专门的会话密钥交换协议•由于邮件系统的存储-转发的特性,用握手方式交换密钥不太可能③每个消息都有自己的一次性密钥,进一步增强了保密强度。所以,每个密钥只加密很小部分的明文内容④公开密钥算法的长度决定安全性RSA(签名和加密密钥均支持1024-4096位)、DSS(1024-3072位)、Diffie-Hellman(1024-4096位)电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处27数据压缩•压缩的位置:发生在签名后、加密前。•压缩之前生成签名:(1)验证时无须压缩(2)压缩算法的多样性•在加密前压缩:压缩的报文更难分析对邮件传输或存储都有节省空间的好处。电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处28E-mail兼容性•加密后是任意的8位字节,需要转换到ASCII格式。•Radix64将3字节输入转换到4个ASCII字符,并带CRC校验。•长度扩大33%•与压缩综合后,长度为:–1.33x0.5xM=0.665xM电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处29分段与重组•Email常常受限制于最大消息长度(一般限制在最大50000字节)•更长的消息要进行分段,每一段分别邮寄。•PGP自动分段并在接收时自动恢复。•签名只需一次,在第一段中。电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处30密钥标识符•一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥?–将公钥与消息一起传送。–将一个标识符与一个公钥关联。对一个用户来说做到一一对应。•定义KeyID包括64个有效位:(KUamod264)•KeyID同样也需要PGP数字签名。电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处31发送消息的格式•一个消息包含三部分成员:–报文messagecomponent–签名Signature(optional)–会话密钥sessionkeycomponent(optional)电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处32PGP消息的一般格式电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处33密钥环•我们已经看到KeyID对于PGP是如何关键。–两个keyID包含在任何PGP消息中,提供保密与鉴别功能。–需要一种系统化的方法存储和组织这些key以保证使用。•PGP在每一个节点上提供一对数据结构:–存储该节点拥有的公钥/私钥对;(私钥环)–存储本节点知道的其他用户的公钥;(公钥环)电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处34电子工业出版社,《信息安全原理与应用》,2010.1©版权所有,引用请注明出处35私钥环说明•UserID:通常是用户的邮件地址。也可以是一个名字,或重用一个名字多次。•PrivateKey:使用CAST-128(或IDEA或3DES)加密过程如下:–用户选择一个口令短语用于加密私钥;–当系统用RSA生成一个新的公钥/私钥对时,要求用户输入口令短语。对该短语生成一散列码后,销毁该短语。–系统用其中128位作为密钥用CAST-128加密私钥,然后销毁这个散列码,并将加密后的私钥存储到私钥环中。–当用户要访问私钥环中的私钥时,必