HTTPS,IPsec, SSL,S/MIME安全协议介绍

Cited from http://eelab.nbu.edu.cn/2010f/1/?p=239

一.引言

       由于许多网络攻击都是因网络协议如TCP/IP的固有漏洞引起的,因此,为了保证网络传输和应用的安全,出现了很多运行在基础网络协议上的安全协议,如IPSec、SSL、 S-HTTP、S/MIME等,下面对他们进行了简单的介绍,并对它们进行了比较。

二.四种安全协议简介

1.IPSec
    IPSec 是Internet Protocol Security的缩写,它是设计为IPv4和IPv6协议提供基于加密安全的协议,它使用AH和ESP协议来实现其安全,使用 ISAKMP/Oakley及SKIP进行密钥交换、管理及安全协商(Security Association)。IPSec安全协议工作在网络层,运行在它上面的所有网络通道都是加密的。IPSec安全服务包括访问控制、数据源认证、无连 接数据完整性、抗重播、数据机密性和有限的通信流量机密性。IPSec使用身份认证机制进行访问控制,即两个IPSec实体试图进行通信前,必须通过 IKE协商SA,协商过程中要进行身份认证,身份认证采用公钥签名机制,使用数字签名标准(DSS)算法或RSA算法,而公通常是从证书中获得的; IPSec使用消息鉴别机制实现数据源验证服务,即发送方在发送数据包前,要用消息鉴别算法HMAC计算MAC,HMAC将消息的一部分和密钥作为输入, 以MAC作为输出,目的地收到IP包后,使用相同的验证算法和密钥计算验证数据,如果计算出的MAC与数据包中的MAC完全相同,则认为数据包通过了验 证;无连接数据完整性服务是对单个数据包是否被篡改进行检查,而对数据包的到达顺序不作要求,IPSec使用数据源验证机制实现无连接完整性服务; IPSec的抗重播服务,是指防止攻击者截取和复制IP包,然后发送到源目的地,IPSec根据 IPSec头中的序号字段,使用滑动窗口原理,实现抗重播服务;通信流机密性服务是指防止对通信的外部属性(源地址、目的地址、消息长度和通信频率等)的 泄露,从而使攻击者对网络流量进行分析,推导其中的传输频率、通信者身份、数据包大小、数据流标识符等信息。IPSec使用ESP隧道模式,对IP包进行 封装,可达到一定程度的机密性,即有限的通信流机密性。

2.SSL协议
    安全套接层(Security Socket Layer,SSL)协议就是设计来保护网络传输信息的,它工作在传输层之上,应用层之下,其底层是基于传输层可靠的流传输协议(如TCP)。SSL协议 最早由Netscape公司于1994年11月提出并率先实现(SSLv2)的,之后经过多次修改,最终被IETF所采纳,并制定为传输层安全 (Transport Layer Security,TLS)标准。该标准刚开始制定时是面向Web应用的安全解决方案,随着SSL部署的简易性和较高的安全性逐渐为人所知,现在它已经成 为Web上部署最为广泛的信息安全协议之一。近年来SSL的应用领域不断被拓宽,许多在网络上传输的敏感信息(如电子商务、金融业务中的信用卡号或PIN 码等机密信息)都纷纷采用SSL来进行安全保护。SSL通过加密传输来确保数据的机密性,通过信息验证码(Message Authentication Codes,MAC)机制来保护信息的完整性,通过数字证书来对发送和接收者的身份进行认证。
    实际上SSL协议本身也是个分层的协议,它由消息子层以及承载消息的记录子层组成。
SSL 记录协议首先按照一定的原则如性能最优原则把消息数据分成一定长度的片断;接着分别对这些片断进行消息摘要和MAC计算,得到MAC值;然后再对这些片断 进行加密计算;最后把加密后的片断和MAC值连接起来,计算其长度,并打上记录头后发送到传输层。这是一般的消息数据到达后,记录层所做的工作。但有的特 殊消息如握手消息,由于发送时还没有完全建立好加密的通道,所以并不完全按照这个方式进行;而且有的消息比较短小,如警示消息(Alert),出于性能考 虑也可能和其它的一些消息一起被打包成一个记录。
消息子层是应用层和SSL记录层间的接口,负责标识并在应用层和SSL记录层间传输数据或者对握 手信息和警示信息的逻辑进行处理,可以说是整个SSL层的核心。其中尤其关键的又是握手信息的处理,它是建立安全通道的关键,握手状态机运行在这一层上。 警示消息的处理实现上也可以作为握手状态机的一部分。SSL协议为了描述所有消息,引入了SSL规范语言,其语法结构主要仿照C语言,而是无歧义、精简 的。
3. S-HTTP
    安全超文本传输协议(Secure HyperText Transfer Protocol,S-HTTP)是EIT公司结合 HTTP 而设计的一种消息安全通信协议。S-HTTP协议处于应用层,它是HTTP协议的扩展,它仅适用于HTTP联结上,S-HTTP可提供通信保密、身份识 别、可信赖的信息传输服务及数字签名等。S-HTTP 提供了完整且灵活的加密算法及相关参数。选项协商用来确定客户机和服务器在安全事务处理模式、加密算法(如用于签名的非对称算法 RSA 和 DSA等、用于对称加解密的 DES 和 RC2 等)及证书选择等方面达成一致。
  S-HTTP 支持端对端安全传输,客户机可能“首先”启动安全传输(使用报头的信息),如,它可以用来支持加密技术。S-HTTP是通过在S-HTTP所交换包的特殊头标志来建立安全通讯的。当使用 S-HTTP时,敏感的数据信息不会在网络上明文传输。
4. S/MIME
    S/MIME 是Secure / Multipurpose Internet Mail Extensions的缩写,是从PEM (Privacy Enhanced Mail)和MIME(Internet邮件的附件标准)发展而来的。S/MIME是利用单向散列算法(如SHA-1、MD5等)和公钥机制的加密体系。 S/MIME的证书格式采用X.509标准格式。S/MIME的认证机制依赖于层次结构的证书认证机构,所有下一级的组织和个人的证书均由上一级的组织负 责认证,而最上一级的组织(根证书)之间相互认证,整个信任关系是树状结构的。另外,S/MIME将信件内容加密签名后作为特殊的附件传送。

5. HTTP

     它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
三.五种安全协议的比较
1.SSL与IPSEC
    SSL与IPSEC在很多地方上是非常相似的。两种协议都有密钥协商,加密参数的握手阶段,之后还有加密数据的传输阶段。传输模式(TCP)下使用的IPSEC与SSL行为比较接近,它为通信数据但不包括IP头信息提供认证。
    SSL与IPSEC的主要不同在于:
(1)SSL用来保护在传输层(TCP)上通信的数据的安全,而IPSEC除此之外还用来保护在IP层上的数据包的安全,如UDP包。
(2)对一个已经在使用的系统,SSL不需要改动协议栈但需要改变应用层,与此相反,IPSEC不需要改变应用层但需要改变协议栈。
(3)SSL可以单向认证(仅认证服务器),但IPSEC要求双方认证。
(4)当涉及应用层中间节点,IPSEC只能提供链接保护,而SSL提供端到端保护。
(5)IPSEC受NAT影响较为严重,而SSL可以穿过NAT而毫无影响。
2.SSL与S-HTTP
    S -HTTP是应用层的加密协议,它能感知到应用层数据的结构,而不是像SSL一样完全当作流来处理,也就是说,S-HTTP把消息当成对象进行签名或加密 传输,而SSL则主动把数据流分帧处理,而不理会消息的边界。也由于这样,S-HTTP可以提供基于消息的抗抵赖性证明,而SSL不可以。因此,S- HTTP比SSL更灵活,功能更强大,但是实现较困难,而使用也更困难,也因此现在使用基于SSL的HTTPS要比S-HTTP要更普遍。

3.SSL与S/MIME的比较
   S/MIME 协议是专门用来保护E-mail安全的,也是一种应用层加密协议。而SMTP/SSL保护E-mail效果不是很理想,因为SMTP/SSL仅提供使用 SMTP的链路的安全,而从邮件服务器到本地的路径是用POP/MAPI协议,这无法使用SMTP/SSL来保护。相反S/MIME使用加密整个邮件的内 容后使用MIME数据发送,这种发送可以是任何一种方式,摆脱了安全链路的限制只需要收发邮件的两个终端支持S/MIME即可。

4. HTTPS与HTTP的比较:

  HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。
  HTTP是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的SSL加密传输协议
  HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
  HTTP的连接很简单,是无状态的
  HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比HTTP协议安全。

四.结论
   IPSec 安全协议工作在网络层,SSL工作在传输层之上、应用层之下,S-HTTP和S/MIME都工作在应用层。相比较而言,SSL简单,应用广泛。因此,当所 需要的保护基于TCP并是直接连接而不是经过中介且较为简单时可以考虑SSL部署,但SSL不提供针对消息等对象的抗抵赖性证明,也不提供时间戳等上层所 需要用的标记。如果是比较复杂的安全要求,最好使用有专门针对性的安全协议,如电子邮件采用S/MIME协议,信用卡支付采用安全电子交易(SET)协 议。


你可能感兴趣的:(Linux,Manage)