IPSec、SSL、S-HTTP和S/MIME安全协议的比较

IPSec SSL S-HTTP S/MIME 安全协议的比较
一.引言

由于许多网络攻击都是因网络协议如 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 将信件内容加密签名后作为特殊的附件传送。
三.四种安全协议的比较
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 即可。

四.结论

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

你可能感兴趣的:(ssl,安全,IPSec,S-HTTP,S/MIME)