,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第六章:应用层安全协议,1.电子邮件安全协议(,PEM、S/MIME、PGP),2,远程登陆的安全协议(SSH),3,Web安全协议(S-HTTP),参考文献:,教科书第5章,1,1.,电子邮件安全协议(PEM、S/MIME、PGP,),电子邮件的威胁,邮件炸弹,邮件欺骗,邮件服务器控制权,电子邮件安全协议,PEM(Privacy Enhanced Email,RFC 1421 through 1424),S/MIME,PGP(Pretty Good Privacy),2,电子邮件的安全需求,机密性:只有接收者才能阅读,报文的加密:关键是密钥的分发,收发双方如何共享密钥?,认证:发送者的身份认证,基于公钥技术,用发送者的私钥对报文的摘要进行加密,即数字签名,基于共享密钥:事先发送者与接收者共享一个密钥,采用消息认证码(MAC)对报文进行认证,完整性:报文未被修改,报文的完整性与身份认证的方法类似,通常可在一起进行,抗否认性:发信者的不可抵赖性,可供第三方鉴别,基于公钥技术,采用发送者的私钥签名,利用公钥体制,用接收者的公钥加密报文。,但对于长报文及多个接收者时该怎么办?,发送者生成一个密钥,采用对称密码算法加密报文,即SM,再用接收方的公钥加密密钥S,并与加密的报文同时发送。,假设接收者有A、B、C三人,就分别生成三个加密密钥KAS,KBS,KCS。,3,PEM(Privacy Enhanced Mail,),PEM协议是80年代末90年代初发展起来的,它的功能主要包括加密、源认证和完整性,RFC1421-1424,与此同时,出台了传输多种媒体格式的EMAIL标准:MIME(Multipurpose Internet Mail Extensions,RFC2045),而S/MIME(RFC2633)采用了PEM的许多设计原理在MIME的基础上进行了扩展,4,PEM,的构成,PEM将邮件报文分成几部分,有的需要加密,有的则需要认证,这些需要特殊处理的报文通过语句标记。,例如在需要加密的报文段前插入,BEGIN PRIVACY-ENHANCED MESSAGE,在需要加密的报文后插入,END PRIVACY-ENHANCED MESSAGE,报文加密采用DES算法,认证采用MD-5,密钥的分发,基于公钥技术,用接收者的公钥加密会话密钥,并在RFC 1422中定义了证书体系。,基于对称密码时,采用事先共享的密钥加密会话密钥。,5,PGP(Pretty Good Privacy),Email安全加密系统,PGP提供的安全业务:,加密:发信人产生一次性会话密钥,以IDEA、3-DES或CAST-128算法加密报文,采用RSA或D-H算法用收信人的公钥加密会话密钥,并和消息一起送出。,认证:用SHA对报文杂凑,并以发信人的私钥签字,签名算法采用RSA或DSS。,压缩:ZIP,用于消息的传送或存储。在压缩前签字,压缩后加密。,兼容性:采用Radix-64可将加密的报文转换成ASCII字符,数据分段:PGP具有分段和组装功能,6,机密性和认证,机密性:,发送端产生随机的128位数字作为会话密钥,对称算法加密报文,接收端公钥加密会话密钥,认证,采用SHA-1产生160位HASH值,用发送者的私钥对HASH值签名,报文只需要认证服务或加密服务,当同时需要认证和加密服务时,采用先签名,后加密顺序(与IPSEC ESP中的先加密,后MAC相反),通常将明文与签名一起保存比较方便,验证时,不需要涉及会话密钥,7,压缩,HASH,加密,A的公钥,A的私钥,解密,对称密码加密,8,压缩,PGP,的压缩过程在报文的签名和加密之间,即先对报文签名,然后压缩,再是加密,签名后再压缩是为了保存未压缩的报文和签名,压缩后加密是为了提高密码的安全性,因为压缩后的报文具有更少的冗余,所以密码分析会更困难,另外加密的报文也更短,压缩算法采用,ZIP,9,E-mail,的兼容性,在多数的邮件系统中是以ASCII字符形式传输,加密后的任意8比特报文可能不符合ASCII字符特点。,采用基64转换方式(see appendix 5B).,基64转换方式 的采用将原报文扩展了33%.,10,分段和重组,通常邮件的最大报文的长度限制在50,000 octets.,超过标准长度的报文必须分段.,PGP 自动对过长的报文分段.,接收端再将其重组.,11,Sumary of PGP Services,12,13,加密密钥和密钥环,PGP使用四种类型的密钥:一次性会话对称密钥,公钥,私钥,基于过度阶段的传统密钥,需求,需要一种生成不可预测的会话密钥,需要某种手段来标识具体的密钥(一个用户可拥有多个公钥/私钥对,以便随时更换),每个PGP实体需要维护一个保存其公钥/私钥对的文件和一个保存通信对方公钥的文件,14,密钥标识符(,Key ID,),一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥,将公钥与消息一起传送,将一个标识符与一个公钥关联,对一个用户来说做到一一对应,定义KeyID 包括64个有效位,(KUa mod 2,64,),15,密钥环(,Key Rings,),KeyID在PGP中标识所使用的发送者和接收者的密钥号,两个keyID包含在任何PGP消息中提供保密与认证功能,需要一种系统化的方法存储和组织这些key以保证使用,PGP在每一个节点上提供一对数据结构,存储该节点拥有的公钥/私钥对私钥环,存储本节点知道的其他用户的公钥环,16,密钥对产生时间,加了密的私钥,如用户邮件地址,17,Format of PGP Message,18,19,20,公钥管理,PGP虽然采用公钥密码体系,但不是证书,保护公钥免受攻击是PGP的一个问题,采用信任关系保护公钥,21,安全协议的分析与思考,认证和加密的次序,会话密钥产生的复杂度与安全通道的粒度有关,对应用层安全来说,由于需求明确,通常采用一次一密,会话密钥的产生比较简单,对传输层安全来说,安全保护的是某个连接。(如SSL协议,虽然可用于保护所有的应用层协议,但在邮件保护中,由于邮件服务器到本地的路径是用POP/MAPI协议,,,所以需要分段SSL,较为复杂,),对于网络层安全(如IPSEC),安全通道保护的可能是某个数据流,也可能是一个端端,也可能是LAN-LAN,因此会话密钥的生成最为复杂。,对于链路层安全来说,安全保护只限于一截链路,加密算法和密钥分发都不宜复杂,22,S/MIME,Secure/Multipurpose Internet Mail Extension,(,安全/多用途Internet邮件扩展,RFC2630、2632、2633,),S/MIME 将会成为商业和机构使用的工业标准.,PGP 为个人e-mail 提供安全,23,Simple Mail Transfer Protocol(SMTP,RFC 822),SMTP(简单邮件传输协议)存在的问题:,SMTP不能传输可执行文件和其他二进制码(jpeg image),SMTP只能传输7-位ASCII字符的文字,STMP服务器拒绝接收超长邮件,ASCII 到 EBCDIC 转换问题,截取换行超过76字符的行,等等,MIME是对RFC 822框架的扩展,致力于解决STMP存在的问题,24,MIME的头标,MIME的头标定义了5个新的字段,版本(MIME-Version):1.0(按照 RFC 2045,RFC 2046定义的规格),内容类型(Content-Type):这个字段用于详细描述主体的数据,内容传输编码(Content-Transfer-Encoding):内容采用的编码方案(如radix-64),内容ID(Content-ID):该字段主要用于多个上下文时,对MIME实体的标识.,内容描述(Content Description):对内容的文本描述(e.g.,mpeg),25,S/MIME 功能,在功能上,S/MIME与PGP相似,通过使用签名、加密或签名/加密的组合来保证MIME通信的安全,但强化了证书的规范,S/MIME的安全功能:,封装的数据:加密的内容和加密的会话密钥,签名的数据:报文摘要发送者的私钥签名,然后使用基64变换编码内容和签名,透明签名:签名但不加密.只对签名进行基64变换,这样具有MIME支持而没有S/MIME权能的接收者也能读取,签名和封装的数据:各种不同嵌套顺序将数据加密、签名,如签名加密的数据或加密签名的数据,S/MIME使用X.509证书,它的密钥管理方案介于严格的X.509证书层次结构和PGP信任网,26,Algorithms Used,报文摘要:SHA-1 and MD5,数字签名:DSS,对称密码算法:Triple-DES,RC2/40(exportable),公钥密码算法:RSA with key sizes of 512 and 1024 bits,and Diffie-Hellman(for session keys).,27,PGP vsPEM、S/MIME,Item,PGP,PEM or S/MIME,Supports encryption?,Yes,Yes,Supports authentication,Yes,Yes,Supports non-repudiation?,Yes,Yes,Supports compression?,Yes,No,Supports mailing lists?,No,Yes,Uses base64 coding?,Yes,Yes,Current data encryption algorithm,IDEA,DES,Key length for data encryption(bits),128,56,Current algorithm for key management,RSA,RSA/D-H,Key length for key management(bits)?,384/512/1024,Variable,User name space,User defined,X.400,X.509 conformant?,No,Yes,Can eavesdropper read messages?,No,No,Can eavesdropper read signatures?,No,Yes,Internet Standard?,Yes,Yes,28,2.远程登录安全协议SSH:Secure SHell,SSH主要由芬兰赫尔辛基大学的Tatu Ylonen开发的,它提供一条安全的远程登录通道,可以代替telnet,rlogin等。由于受版权和加密算法的限制,很多人都使用它的免费替代产品OpenSSH。,SSH协议有版本1(SSHv1)和版本2(SSHv2),这两版本互不兼容,目前SSH协议只有草案(2002,9),由IETF的SECSH工作组规范,还没有形成RFC。,29,SSH的体系,SSH传输层(Transport Layer)协议,提供服务器主机认证,提供数据加密,提供数据完整性支持,SSH认证(Authentication)协议,为服务器提供用户的身份认证,Secure FTP,SSH连接(Connection)协议,将加密的信息隧道复用成若干个逻辑通道,提供给高层的应用协议使用。,SSH Transport Layer Protocol,SFTP,ConnectionProtocol,AuthenticationProtocol,30,SSH,采用的认证、加密算法,Supported authentication methods,X509 Certificates,Public keys,Passwords,Supported encryption algorithms,3DES,Blowfish,Arcfour,Cast,Supported has