B密码编码学与网络安全电子工业出版社2006-2007B第15章电子邮件安全*15.aSMTP/POP3↓•15.1PGP↓•15.2S/MIME↓*15.b文件加密↓B邮件安全•电子邮件是最普及最重要,同时也最受安全问题困扰的互联网应用之一。•电子邮件的特点是离线方式(非交互),因此解决其安全问题的方法是静态的,便于学习、分析和借鉴。B15.aSMTP/POP3•SMTP–制做假冒邮件•POP3•IMAP,X.400,…BE-Mail:@•SMTP–RFC821SMTP-SimpleMailTransferProtocol•POP3–RFC1939POP3-PostOfficeProtocol–V3•IMAP–RFC2060InternetMessageAccessProtocol•allowsaclienttoaccessandmanipulateelectronicmailmessagesonaserver•X400–X400isawholeofprotocolsadaptedtoEDIBE-Mailsoftware*Client:Outlook/Exp,Foxmail,Eudora*Server:Sendmail,Exchange,Exim,Qmail,PostfixSMTPServerSurvey//958All•401UNIXSendmail•176WindowsMicrosoftExchangeorIISSMTP•167UNIXqmail•57WindowsIpswitchIMail•23UNIXsmap•15UNIXIBMPostfix,formerlyVMailer•14UNIXExim•12WindowsGordanoNTMailBSMTP•SimpleMailTransferProtocol–RFC821••–ESMTP(Extensions)•RFC1869•Command–HELO、MAIL、RCPT、DATA、SEND、SOML、SAML、RSET、VRFY、EXPN、HELP、NOOP、QUIT、TURN、…HELOSPdomainCRLFMAILSPFROM:reverse-pathCRLFRCPTSPTO:forward-pathCRLFDATACRLFRSETCRLFSENDSPFROM:reverse-pathCRLFSOMLSPFROM:reverse-pathCRLFSAMLSPFROM:reverse-pathCRLFVRFYSPstringCRLFEXPNSPstringCRLFHELP[SPstring]CRLFNOOPCRLFQUITCRLFTURNCRLFBSMTPmodel•+----------++----------+•+------+||||•|User|--||SMTP||•+------+|Sender-|Commands/Replies|Receiver-|•+------+|SMTP|--------------|SMTP|+------+•|File|--||andMail||--|File|•|System||||||System|•+------++----------++----------++------+••Sender-SMTPReceiver-SMTP•ModelforSMTPUseBExtendedSMTP•rfc1869-SMTPServiceExtensions•EHLO(ExtendedHELLO)–ratherthanHELOBBSMTP会话•SMTPSessionHELO\015\012MAILFROM:abc@none\015\012RCPTTO:xyz@where\015\012DATA\015\012Subject:test-sub\015\012\015\012the_msg_body\015\012\056\015\012QUIT\015\012*以TCP连接SMTPserver的25号端口,发送此序列即可发出简单的邮件BSMTP试验•用telnet发信–找个不要口令即可发信的SMTP服务器•openrelay–步骤见备注行•编程–MAILAPIinWindows–在CGI/网页中发送邮件–在VBS脚本中发送BOpenRelay•准备自己的SMTP服务器BPOP3•Version3ofthePostOfficeProtocol.–POP3isdefinedinRFC1081.–POP3allowsaclientcomputertoretrieveelectronicmailfromaPOP3serverviaaTCP/IPorotherconnection.–Itdoesnotprovideforsendingmail,whichisassumedtobedoneviaSMTPorsomeothermethod.•BPOP3•MinimalPOP3Commands:•USERnamevalidintheAUTHORIZATIONstate•PASSstring•QUIT•STATvalidintheTRANSACTIONstate•LIST[msg]•RETRmsg•DELEmsg•NOOP•RSET•QUIT*SessionetcBPOP3Server试验(inw2k3)•测试帐号:test@bellflower.3322.org–口令是”passwd”或者”test”–SMTP:bellflower.3322.org–POP3:bellflower.3322.org•需要域名(免费)–3322.org–BIMAP•IMAPwasdesignedasamodernalternativetothewidelyusedPOP3emailretrievalprotocol–WhetherusingPOP3orIMAP4toretrievemessages,clientsusetheSMTPprotocoltosendmessages–IMAP4worksoveraTCP/IPconnectionusingnetworkport143–IMAP4nativelysupportsencryptedloginmechanisms–ItisalsopossibletoencryptIMAP4trafficusingSSL,eitherbytunnelingIMAP4communicationsoverSSLonport993,orbyissuingSTARTTLSwithinanestablishedIMAP4session–ImportantcapabilitiesinIMAPbutnotPOP3include:•…BX.400•ThesetofITU-Tcommunicationsstandardscoveringelectronicmailservicesprovidedbydatanetworks.–X.400waswidelyusedinEuropeandCanada.–X.400addressestendtobemuchlongerthanRFC822ones.Theyconsistofasetofbindingsforcountry(c),administrativedomain(a),primarymanagementdomain(p),surname(s),givenname(g).•Forexample,theX.400address–c=gb;a=attmail;p=UniversalExport;s=Bond;g=JamesmightbeequivalenttoRFC822James.Bond@UniversalExport.co.ukBBSMTP/POP3安全问题•窃听–sniffer•伪造–发信的随意性•抵赖•邮件传播病毒•垃圾邮件BEMAIL安全增强•PGP•S/MIMEB15.1PGP-PrettyGoodPrivacy•介绍–PhilZimmermann•–Open/Free•个人创造,流行世界,为黑白两道广泛使用–功能•邮件/文件的加密/签名•使用公钥/证书–算法•DES、3DES、CAST-128、IDEA、•RSA、DSS、DHBPRZcasedropped•PGP使用了高强度的算法、适应性强、源码公开•CaseReadingPhilipR.Zimmermann是PrettyGoodPrivacy,一个邮件加密软件的开创者.PGP于1991年在Internet上免费的发布,它的最初设计目标是一个保护人权的工具.由于PGP在世界范围的传播违反了美国政府关于加密软件的出口限制,Zimmermann受到了为期三年刑事调查.尽管缺少资金,缺少任何付酬员工,缺少在后面支持的一个公司,还有着政府的烦扰,PGP仍然成为了世界上使用最为广泛的邮件加密软件.1996年初,在政府撤手这个案子之后,Zimmermann创立了PGP公司.1997年12月,公司被NetworkAssociatesInc(NAI)收购,在那里他做了三年的高级职员.2002年8月,PGP被一家名叫PGP有限公司的新公司从NAI购得,Zimmermann在那里担任特殊顾问和咨询.B获得PGP•下载、安装、注册–PGPCorporation•–TheInternationalPGPHomePage•–GPG-TheGNUPrivacyGuard•–OpenPGP•–Thecomp.security.pgpFAQ••(注册)•产生私钥–名字、email帐号、RSA/1024、有效期–口令保护•导入/导出–公钥/私钥•加密/签名–邮件–文件(+自解密exe文件)–剪贴板–虚拟磁盘分区为了交换:用自己的私钥签名,用别人的公钥加密为了存储:用自己的公钥加密(此时接收者是未来的自己)BPGP课堂演示•$•推荐版本PGP6.5.8–(PGP8.02需注册!)•练习:请课后使用PGP并给出试用报告B邮件的认证-签名•发送方创建邮件报文–产生SHA-1值160比特–用RSA私钥签名,签名值放在报文前面•接收方鉴别来源人–用发送者的公钥解密签名,获得160比特SHA-1值–该值于明文的SHA-1值比较B邮件的保密性-加密•发送–产生(128b)随机数作为会话密钥–选择合适的算法(DES)加密报文–用RSA算法/接收者的公钥加密会话密钥,放在报文前面•接收–用自己的RSA私钥解密获得会话密钥–用会话密钥解密获得明文B其他•加密和签名结合–先签名,后对称加密,再把会话密钥用公钥保护•压缩–签名之后,加密之前–节省带宽、增强安全强度(减少了冗余信息)•编码–BASE64BBASE64Encode•Radix-64•每6bits编码为–A…Z,a…z,0…9,+,/–=(padding)•每3bytes(24bits)编码为4ASCs–若余1字节,则补2个=–若余2字节,则补1个=–概括为编码为4的倍数•见备注行BLZ77压缩•吃葡萄不吐葡萄皮不吃葡萄倒吐葡萄皮•吃葡萄不吐□□皮□□□□倒□□□□BPGP中对报文的操作•BPGP报文格式•BPGP中的报文传输•BPGP密钥管理•私钥–产生