1第六章:应用层安全协议1.电子邮件安全协议(PEM、S/MIME、PGP)2.远程登陆的安全协议(SSH)3.Web安全协议(S-HTTP)参考文献:教科书第5章21.电子邮件安全协议(PEM、S/MIME、PGP)电子邮件的威胁邮件炸弹邮件欺骗邮件服务器控制权电子邮件安全协议PEM(PrivacyEnhancedEmail,RFC1421through1424)S/MIMEPGP(PrettyGoodPrivacy)3电子邮件的安全需求机密性:只有接收者才能阅读报文的加密:关键是密钥的分发收发双方如何共享密钥?认证:发送者的身份认证基于公钥技术,用发送者的私钥对报文的摘要进行加密,即数字签名基于共享密钥:事先发送者与接收者共享一个密钥,采用消息认证码(MAC)对报文进行认证完整性:报文未被修改报文的完整性与身份认证的方法类似,通常可在一起进行抗否认性:发信者的不可抵赖性,可供第三方鉴别基于公钥技术,采用发送者的私钥签名利用公钥体制,用接收者的公钥加密报文。但对于长报文及多个接收者时该怎么办?发送者生成一个密钥,采用对称密码算法加密报文,即S{M}再用接收方的公钥加密密钥S,并与加密的报文同时发送。假设接收者有A、B、C三人,就分别生成三个加密密钥KA{S},KB{S},KC{S}。4PEM(PrivacyEnhancedMail)PEM协议是80年代末90年代初发展起来的,它的功能主要包括加密、源认证和完整性,RFC1421-1424与此同时,出台了传输多种媒体格式的EMAIL标准:MIME(MultipurposeInternetMailExtensions,RFC2045),而S/MIME(RFC2633)采用了PEM的许多设计原理在MIME的基础上进行了扩展5PEM的构成PEM将邮件报文分成几部分,有的需要加密,有的则需要认证,这些需要特殊处理的报文通过语句标记。例如在需要加密的报文段前插入BEGINPRIVACY-ENHANCEDMESSAGE在需要加密的报文后插入ENDPRIVACY-ENHANCEDMESSAGE报文加密采用DES算法认证采用MD-5密钥的分发基于公钥技术,用接收者的公钥加密会话密钥,并在RFC1422中定义了证书体系。基于对称密码时,采用事先共享的密钥加密会话密钥。6PGP(PrettyGoodPrivacy)Email安全加密系统PGP提供的安全业务:加密:发信人产生一次性会话密钥,以IDEA、3-DES或CAST-128算法加密报文,采用RSA或D-H算法用收信人的公钥加密会话密钥,并和消息一起送出。认证:用SHA对报文杂凑,并以发信人的私钥签字,签名算法采用RSA或DSS。压缩:ZIP,用于消息的传送或存储。在压缩前签字,压缩后加密。兼容性:采用Radix-64可将加密的报文转换成ASCII字符数据分段:PGP具有分段和组装功能7机密性和认证机密性:发送端产生随机的128位数字作为会话密钥对称算法加密报文接收端公钥加密会话密钥认证采用SHA-1产生160位HASH值用发送者的私钥对HASH值签名报文只需要认证服务或加密服务,当同时需要认证和加密服务时采用先签名,后加密顺序(与IPSECESP中的先加密,后MAC相反)通常将明文与签名一起保存比较方便验证时,不需要涉及会话密钥8压缩HASH加密A的公钥A的私钥解密对称密码加密9压缩PGP的压缩过程在报文的签名和加密之间,即先对报文签名,然后压缩,再是加密签名后再压缩是为了保存未压缩的报文和签名压缩后加密是为了提高密码的安全性,因为压缩后的报文具有更少的冗余,所以密码分析会更困难,另外加密的报文也更短压缩算法采用ZIP10E-mail的兼容性在多数的邮件系统中是以ASCII字符形式传输,加密后的任意8比特报文可能不符合ASCII字符特点。采用基64转换方式(seeappendix5B).基64转换方式的采用将原报文扩展了33%.11分段和重组通常邮件的最大报文的长度限制在50,000octets.超过标准长度的报文必须分段.PGP自动对过长的报文分段.接收端再将其重组.12SumaryofPGPServicesFunctionAlgorithmUsedDigitalSignatureDSS/SHAorRSA/SHAMessageEncryptionCASTorIDEAorthree-keytripleDESwithDiffie-HellmanorRSACompressionZIPE-mailCompatibilityRadix-64conversionSegmentation-1314加密密钥和密钥环PGP使用四种类型的密钥:一次性会话对称密钥,公钥,私钥,基于过度阶段的传统密钥需求需要一种生成不可预测的会话密钥需要某种手段来标识具体的密钥(一个用户可拥有多个公钥/私钥对,以便随时更换)每个PGP实体需要维护一个保存其公钥/私钥对的文件和一个保存通信对方公钥的文件15密钥标识符(KeyID)一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥将公钥与消息一起传送将一个标识符与一个公钥关联,对一个用户来说做到一一对应定义KeyID包括64个有效位,(KUamod264)16密钥环(KeyRings)KeyID在PGP中标识所使用的发送者和接收者的密钥号两个keyID包含在任何PGP消息中提供保密与认证功能需要一种系统化的方法存储和组织这些key以保证使用PGP在每一个节点上提供一对数据结构存储该节点拥有的公钥/私钥对私钥环存储本节点知道的其他用户的公钥环17密钥对产生时间加了密的私钥如用户邮件地址18FormatofPGPMessage192021公钥管理PGP虽然采用公钥密码体系,但不是证书保护公钥免受攻击是PGP的一个问题采用信任关系保护公钥22安全协议的分析与思考认证和加密的次序会话密钥产生的复杂度与安全通道的粒度有关对应用层安全来说,由于需求明确,通常采用一次一密,会话密钥的产生比较简单对传输层安全来说,安全保护的是某个连接。(如SSL协议,虽然可用于保护所有的应用层协议,但在邮件保护中,由于邮件服务器到本地的路径是用POP/MAPI协议,所以需要分段SSL,较为复杂)对于网络层安全(如IPSEC),安全通道保护的可能是某个数据流,也可能是一个端-端,也可能是LAN-LAN,因此会话密钥的生成最为复杂。对于链路层安全来说,安全保护只限于一截链路,加密算法和密钥分发都不宜复杂23S/MIMESecure/MultipurposeInternetMailExtension(安全/多用途Internet邮件扩展,RFC2630、2632、2633)S/MIME将会成为商业和机构使用的工业标准.PGP为个人e-mail提供安全24SimpleMailTransferProtocol(SMTP,RFC822)SMTP(简单邮件传输协议)存在的问题:SMTP不能传输可执行文件和其他二进制码(jpegimage)SMTP只能传输7-位ASCII字符的文字STMP服务器拒绝接收超长邮件ASCII到EBCDIC转换问题截取换行超过76字符的行,等等MIME是对RFC822框架的扩展,致力于解决STMP存在的问题25MIME的头标MIME的头标定义了5个新的字段版本(MIME-Version):1.0(按照RFC2045,RFC2046定义的规格)内容类型(Content-Type):这个字段用于详细描述主体的数据内容传输编码(Content-Transfer-Encoding):内容采用的编码方案(如radix-64)内容ID(Content-ID):该字段主要用于多个上下文时,对MIME实体的标识.内容描述(ContentDescription):对内容的文本描述(e.g.,mpeg)26S/MIME功能在功能上,S/MIME与PGP相似,通过使用签名、加密或签名/加密的组合来保证MIME通信的安全,但强化了证书的规范S/MIME的安全功能:封装的数据:加密的内容和加密的会话密钥签名的数据:报文摘要+发送者的私钥签名,然后使用基64变换编码内容和签名透明签名:签名但不加密.只对签名进行基64变换,这样具有MIME支持而没有S/MIME权能的接收者也能读取签名和封装的数据:各种不同嵌套顺序将数据加密、签名,如签名加密的数据或加密签名的数据S/MIME使用X.509证书,它的密钥管理方案介于严格的X.509证书层次结构和PGP信任网27AlgorithmsUsed报文摘要:SHA-1andMD5数字签名:DSS对称密码算法:Triple-DES,RC2/40(exportable)公钥密码算法:RSAwithkeysizesof512and1024bits,andDiffie-Hellman(forsessionkeys).28PGPvsPEM、S/MIMEItemPGPPEMorS/MIMESupportsencryption?YesYesSupportsauthenticationYesYesSupportsnon-repudiation?YesYesSupportscompression?YesNoSupportsmailinglists?NoYesUsesbase64coding?YesYesCurrentdataencryptionalgorithmIDEADESKeylengthfordataencryption(bits)12856CurrentalgorithmforkeymanagementRSARSA/D-HKeylengthforkeymanagement(bits)?384/512/1024VariableUsernamespaceUserdefinedX.400X.509conformant?NoYesCaneavesdropperreadmessages?NoNoCaneavesdropperreadsignatures?NoYesInternetStandard?YesYes292.远程登录安全协议SSH:SecureSHellSSH主要由芬兰赫尔辛基大学的TatuYlonen开发的,它提供一条安全的远程登录通道,可以代替telnet,rlogin等。由于受版权和加密算法的限制,很多人都使用它的免费替代产品OpenSSH。SSH协议有版本1(SSHv1)和版本2(SSHv2),这两版本互不兼容,目前SSH协议只有草案(2002,9),由IETF的SECSH工作组规范,还没有形成RFC。30SSH的体系SSH传输层(TransportLayer)协议提供服务器主机认证,提供数据加密,提供数据完整性支持SSH认证(Authentication)协议为服务器提供用户的身份认证SecureFTPSSH连接(Connection)协议将加密的信息隧道复用成若干个逻辑通道,提供给高层的应用协议使用。SSHTransportLayerProtocolSFTPConnectionProtocolAuthenticationProtocol31SSH采用的认证、加密算法SupportedauthenticationmethodsX509CertificatesPublickeysPasswordsSupportedencryptionalgorithms3DESBlowfishArcfourCastSupportedhashalgorithmsSHA1MD5323.Web安全协议(S-HTTP)安全的超文本传输协议(SecureHypertextTransferProtocol)最初由企业集成技术公司(EnterpriseInteg