计算机网络与信息安全技术研究中心1数据安全--电子邮件安全主讲人:翟健宏Email:zhaijh@hit.edu.cn办公室:新技术楼509Tel:0451-86402573计算机网络与信息安全技术研究中心21电子邮件安全简介2PGP3S/MIME计算机网络与信息安全技术研究中心31电子邮件安全简介1.1引言•E-mail是Internet上最大的应用,也是唯一的广泛跨平台、跨体系结构的分布式应用。•安全的电子邮件主要是解决身份鉴别和保密性的安全问题。•涉及到的问题:–安全算法的选择–系统邮件的信息格式–如何实现认证和信任管理–邮件服务器的可靠性•应用实际例子:PGP、S/MIME、PEM、MOSS–PGP-PrettyGoodPrivacy•作者:PhilZimmermann•提供可用于电子邮件和文件存储应用的保密与鉴别服务。–S/MIME-Secure/MultipurposeInternetMailExtension)MIME对象安全服务(MIMEObjectSecurityServices)保密性增强邮件标准(Privacy-EnhancedMail)计算机网络与信息安全技术研究中心41.2互联网上电子邮件传递简图a)用户代理:UNIXMH,BerkeleyMail,Elm和Mushb)报文传输代理(MTA):UNIXsendmailc)RFC821定义了SMTP协议。d)RFC822定义了在两个MTA之间采用RFC821标准传输的函件报文格式计算机网络与信息安全技术研究中心51.3电子邮件的收发方式1.使用Browser来收发电子邮件2.在Communicator中以Messenger来收发邮件3.在IE中使用outlookexpress来收发WebMail:直接使用Web服务器提供的服务–Mail.263.net–Mail.hotmail.com计算机网络与信息安全技术研究中心61.4安全的算法•算法的安全–没有一种算法能够保证绝对的安全和不可破译。许多事实使密码人员相信现在使用的最安全的算法是非常安全的。•交互操作性–收发邮件的双方最好都使用同一种算法。如果双方使用不同的算法会带来交互操作性的问题,这会大大限制E-mail的的应用。计算机网络与信息安全技术研究中心71.5系统的邮件信息格式•ASCII文本最初的InternetE-mail的内容只包括明文.•MultipurposeInternetMailExtensions(MIME)有了MIME标准后,就允许E-mail信息被分成多个部分和结构,并在E-mail中携带各个部分的类型信息,也开始可以携带非明文数据。最经常使用的就是携带各种附加文档,MIME允许携带国际字符集、HTML、音频、语音邮件、图象、多媒体等。计算机网络与信息安全技术研究中心81.6系统的信任管理•信任管理要更多的依靠系统使用的组织环境。一个信任系统常常也称为“信任模型”。–现在许多企业或公司将公司的标志发放给它的员工就是信任模型的一种例子,这个标志可以表明持有者与该公司或企业是有关系的。这种标志只对企业中和对那些同该企业有关的个人或组织有意义。1.PGP密钥:公钥环、私钥环,简单的信任模型,相当于把一个朋友介绍给另一个朋友2.X.509只能被签名者签名一次3.PEM是简单的而又严格的全球认证分级(PEM采用一种简单的认证方法并使用X.509v1标准。)计算机网络与信息安全技术研究中心91.7安全的邮件服务器1.对邮件服务器的攻击由来已久,WORM病毒2.网络入侵和拒绝服务3.防范措施:–防止来自外部的攻击:拒绝来自特定地址的连接请求、限制单个IP的连接数量–防止来自内部的攻击:实现用户身份的鉴别计算机网络与信息安全技术研究中心101电子邮件安全简介2PGP3S/MIME计算机网络与信息安全技术研究中心112PGP•PGP-PrettyGoodPrivacy–作者:PhilZimmermann–提供可用于电子邮件和文件存储应用的保密与鉴别服务。计算机网络与信息安全技术研究中心122.1PGP自身发展特点•1)选择最好的可用加密算法作为系统的构造模块•2)将这些算法集成到一个通用的应用程序中,该程序独立于操作系统和处理器,并且基于一个使用方便的小命令集。•3)设计了程序、文档,并在Internet上公开•4)一个商业公司(Viacrypt即NetworkAssociates)提供全兼容、低成本的商业版本。计算机网络与信息安全技术研究中心132.2PGP广泛应用的原因•免费、可用于多平台。DOS/Windows、Unix、Macintosh•选用算法的生命力和安全性公众认可。•具有广泛的可用性•不由政府或标准化组织控制。计算机网络与信息安全技术研究中心142.3PGP安全业务1.数字签名:DSS/SHA或RSA/SHA2.完整性:RSA、MD53.消息加密:CAST-128或IDEA或3DES+Diffie-Hellman或RSA4.数据压缩:ZIP5.邮件兼容:Radix64,数据分段Radix64是一种将任意二进制输入,转换成可打印的字符输出的编码技术。对于大的数据,PGP自动分段并在接收时自动恢复。计算机网络与信息安全技术研究中心152.4PGP密码功能概要•记号说明:•Ks:sessionkey•KRa:用户A的私钥•KUa:用户A的公钥•EP:公钥加密•DP:公钥解密•EC:常规加密•DC:常规解密•H:散列函数•||:连接•Z:用ZIP算法数据压缩•R64:用radix64转换到ASCII格式计算机网络与信息安全技术研究中心16(c)Authenticationandconfidentiality计算机网络与信息安全技术研究中心172.5PGP——功能:身份鉴别•发送方•接收方–说明:•签名与消息可以分离产生消息M用SHA-1对M生成一个160位的散列码H用发送者的私钥对H加密,并与M连接用发送者的公钥解密并恢复散列码H–对消息M生成一个新的散列码,与H比较。如果一致,则消息M被鉴别。1.RSA的强度保证了发送方的身份2.SHA-1的强度保证了签名的有效性3.DSS/SHA-1可选替代方案。–对消息进行单独的日志记录–可执行程序的签名记录,检查病毒–文档多方签名,可以避免嵌套签名计算机网络与信息安全技术研究中心182.6PGP——保密性•发送方–生成消息M并为该消息生成一个随机数作为会话密钥。–用会话密钥加密M–用接收者的公钥加密会话密钥并与消息M结合•接收方–用自己的私钥解密恢复会话密钥–用会话密钥解密恢复消息M说明:1)对称加密算法和公钥加密算法的结合可以缩短加密时间2)用公钥算法解决了会话密钥的分配问题3)每个消息都有自己的一次性密钥,进一步增强了保密强度。所以,每个密钥只加密很小部分的明文内容4)公开密钥算法的长度决定安全性RSA(768~3072)、DSS(1024)计算机网络与信息安全技术研究中心192.7保密与鉴别同时运用•两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密,再用接收者的公钥加密会话密钥。计算机网络与信息安全技术研究中心202.8数据压缩•压缩的位置:发生在签名后、加密前。•压缩之前生成签名:•–(1)验证时无须压缩•–(2)压缩算法的多样性•在加密前压缩:压缩的报文更难分析,对邮件传输或存储都有节省空间的好处。计算机网络与信息安全技术研究中心212.9LZ77的压缩过程计算机网络与信息安全技术研究中心222.10E-mail兼容性•加密后是任意的8位字节,需要转换到ASCII格式。•Radix64将3字节输入转换到4个ASCII字符,并带CRC校验。•长度扩大33%•与压缩综合后,长度为:–1.33x0.5xM=0.665xM计算机网络与信息安全技术研究中心232.11Radix-64变换计算机网络与信息安全技术研究中心242.12分段与重组•Email常常受限制于最大消息长度(一般限制在最大50000字节)•更长的消息要进行分段,每一段分别邮寄。•PGP自动分段并在接收时自动恢复。•签名只需一次,在第一段中。计算机网络与信息安全技术研究中心252.13PGP消息的传送与接收计算机网络与信息安全技术研究中心262.14加密密钥和密钥环•PGP使用四种类型的密钥:一次性会话常规密钥,公钥,私钥,基于口令短语的常规密钥。•需求:1.需要一种生成不可预知的会话密钥的手段2.需要某种手段来标识具体的密钥。–一个用户拥有多个公钥/私钥对。(更换,分组)3.每个PGP实体需要维护一个文件保存其公钥私钥对,和一个文件保存通信对方的公钥。计算机网络与信息安全技术研究中心272.15会话密钥的生成•以CAST-128为例。•128位的随机数是由CAST-128自己生成的。输入包括一个128位的密钥和两个64位的数据块作为加密的输入。使用CFB方式,CAST-128产生两个64位的加密数据块,这两个数据块的结合构成128位的会话密钥。(算法基于ANSIX17)•作为明文输入的两个64位数据块,是从一个128位的随机数流中导出的。这些数是基于用户的键盘输入的。键盘输入时间和内容用来产生随机流。因此,如果用户以他通常的步调敲击任意键,将会产生合理的随机性。计算机网络与信息安全技术研究中心282.16密钥标识符•一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥?–将公钥与消息一起传送。–将一个标识符与一个公钥关联。对一个用户来说做到一一对应。•定义KeyID包括64个有效位:(KUamod264)•KeyID同样也需要PGP数字签名。计算机网络与信息安全技术研究中心292.17发送消息的格式•一个消息包含三部分成员:–报文messagecomponent–签名signature(optional)–会话密钥sessionkeycomponent(optional)计算机网络与信息安全技术研究中心302.18PGP消息的一般格式(AtoB)计算机网络与信息安全技术研究中心312.19密钥环•我们已经看到KeyID对于PGP是如何关键。–两个keyID包含在任何PGP消息中,提供保密与鉴别功能。–需要一种系统化的方法存储和组织这些key以保证使用。•PGP在每一个节点上提供一对数据结构:–存储该节点拥有的公钥/私钥对;(私钥环)–存储本节点知道的其他用户的公钥;(公钥环)计算机网络与信息安全技术研究中心32计算机网络与信息安全技术研究中心332.20私钥环说明•UserID:通常是用户的邮件地址。也可以是一个名字,或重用一个名字多次。•PrivateKey:使用CAST-128(或IDEA或3DES)加密过程如下:1.用户选择一个口令短语用于加密私钥;2.当系统用RSA生成一个新的公钥/私钥对时,要求用户输入口令短语。对该短语使用SHA-1生成一个160位的散列码后,销毁该短语。3.系统用其中128位作为密钥用CAST-128加密私钥,然后销毁这个散列码,并将加密后的私钥存储到私钥环中。4.当用户要访问私钥环中的私钥时,必须提供口令短语。PGP将检索出加密的私钥,生成散列码,解密私钥。计算机网络与信息安全技术研究中心342.21公钥环说明•UserID:公钥的拥有者。多个UserID可以对应一个公钥。•公钥环可以用UserID或KeyID索引。计算机网络与信息安全技术研究中心352.22PGP报文的生成KUb计算机网络与信息安全技术研究中心362.23PGP—发送方处理消息的过程•签名:–从私钥环中得到私钥,利用userid作为索引–PGP提示输入口令短语,恢复私钥–构造签名部分•加密:–PGP产生一个会话密钥,并加密消息–PGP用接收者userid从公钥环中获取其公钥–构造消息的会话密钥部分计算机网络与信息安全技术研究中心372.24PGP报文的接收KUa计算机网络与信息安全技术研究中心382.25PGP—接收方处理消息的过程•解密消息–PGP用消息的会话密钥部分中的KeyID作为索引,从私钥环中获取私钥–PGP提示输