SSL与TLS的区别以及介绍

http://kb.cnblogs.com/page/197396/算法

SSL 和TLS协议

http://blog.csdn.net/fangaoxin/article/details/6942312浏览器

 

  SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向链接的网络层协议和应用层协议之间的一种协议层。SSL经过互相认证、使用数字签名确保完整性、使用加密确保 私密性,以实现客户端和服务器之间的安全通信。该协议由两层组成:SSL记录协议和SSL握手协议。安全

  TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。服务器

  SSL是Netscape开发的专门用户保护Web通信的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它创建在SSL 3.0协议规范之上,是SSL 3.0的后续版本。二者差异极小,能够理解为SSL 3.1,它是写入了RFC的。 网络

  SSL (Secure Socket Layer)函数

  为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传 输过程当中不会被截取。目前通常通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器便可支持SSL。 加密

  当前版本为3.0。它已被普遍地用于Web浏览器与服务器之间的身份认证和加密数据传输。spa

  SSL协议位于TCP/IP协议与各类应用层协议之间,为数据通信提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它创建在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它创建在SSL记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。.net

  SSL协议提供的服务主要有:设计

  1)认证用户和服务器,确保数据发送到正确的客户机和服务器;

  2)加密数据以防止数据中途被窃取;

  3)维护数据的完整性,确保数据在传输过程当中不被改变。

  SSL协议的工做流程:

  服务器认证阶段:

  1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话链接;

  2)服务器根据客户的信息肯定是否须要生成新的主密钥,如须要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;

  3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;

  4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。

  用户认证阶段:在此以前,服务器已经经过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。

  从SSL 协议所提供的服务及其工做流程能够看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,因为运 做电子商务的企业大可能是信誉较高的大公司,所以这问题尚未充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程当中的单一认 证问题就愈来愈突出。虽然在SSL3.0中经过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,可是SSL协议仍存在一些问题,好比,只能 提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。在这种状况下,Visa和 MasterCard两大信用卡公组织制定了SET协议,为网上信用卡支付提供了全球性的标准。 

  TLS(Transport Layer Security Protocol):安全传输层协议 

  安全传输层协议(TLS)用于在两个通讯应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。

  TLS 记录协议提供的链接安全性具备两个基本特性:   

  • 私有――对称加密用以数据加密(DES 、RC4 等)。对称加密所产生的密钥对每一个链接都是惟一的,且此密钥基于另外一个协议(如握手协议)协商。记录协议也能够不加密使用。   
  • 可靠――信息传输包括使用密钥的MAC进行信息完整性检查。安全哈希功能( SHA、MD5 等)用于 MAC 计算。记录协议在没有 MAC 的状况下也能操做,但通常只能用于这种模式,即有另外一个协议正在使用记录协议传输协商安全参数。 

  TLS记录协议用于封装各类高层协议。做为这种封装协议之一的握手协议容许服务器与客户机在应用程序协议传输和接收其第一个数据字节前彼此之间相互认证,协商加密算法和加密密钥。 TLS 握手协议提供的链接安全具备三个基本属性:   

  • 可使用非对称的,或公共密钥的密码术来认证对等方的身份。该认证是可选的,但至少须要一个结点方。
  • 共享加密密钥的协商是安全的。对偷窃者来讲协商加密是难以得到的。此外通过认证过的链接不能得到加密,即便是进入链接中间的攻击者也不能。
  • 协商是可靠的。没有通过通讯方成员的检测,任何攻击者都不能修改通讯协商。 

  TLS的最大优点就在于:TLS是独立于应用协议。高层协议能够透明地分布在TLS协议上面。然而, TLS 标准并无规定应用程序如何在TLS上增长安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。 

  协议结构 

  TLS 协议包括两个协议组――TLS记录协议和TLS握手协议――每组具备不少不一样格式的信息。在此文件中咱们只列出协议摘要并不做具体解析。具体内容可参照相关文档。

  TLS记录协议是一种分层协议。每一层中的信息可能包含长度、描述和内容等字段。记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用MAC 、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,而后将它们传送到高层客户机。

  TLS链接状态指的是TLS记录协议的操做环境。它规定了压缩算法、加密算法和MAC算法。

  TLS记录层从高层接收任意大小无空块的连续数据。密钥计算:记录协议经过算法从握手协议提供的安全参数中产生密钥、 IV 和MAC密钥。

  TLS 握手协议由三个子协议组构成,容许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。 

  关系就是。。。。并列关系

  最新版本的TLS(Transport Layer Security,传输层安全协议)是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它创建在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLS与SSL3.0之间存在着显著的差异,主要是它们所支持的加密算法不一样,因此TLS与SSL3.0不能互操做。

  1.TLS与SSL的差别

  1)版本号:TLS记录格式与SSL记录格式相同,但版本号的值不一样,TLS的版本1.0使用的版本号为SSLv3.1。

  2)报文鉴别码:SSLv3.0和TLS的MAC算法及MAC计算的范围不一样。TLS使用了RFC-2104定义的HMAC算法。 SSLv3.0使用了类似的算法,二者差异在于SSLv3.0中,填充字节与密钥之间采用的是链接运算,而HMAC算法采用的是异或运算。可是二者的安全 程度是相同的。

  3)伪随机函数:TLS使用了称为PRF的伪随机函数来将密钥扩展成数据块,是更安全的方式。

  4)报警代码:TLS支持几乎全部的SSLv3.0报警代码,并且TLS还补充定义了不少报警代码,如解密失败 (decryption_failed)、记录溢出(record_overflow)、未知CA(unknown_ca)、拒绝访问 (access_denied)等。

  5)密文族和客户证书:SSLv3.0和TLS存在少许差异,即TLS不支持Fortezza密钥交换、加密算法和客户证书。

  6)certificate_verify和finished消息:SSLv3.0和TLS在用certificate_verify和finished消息计算MD5和SHA-1散列码时,计算的输入有少量差异,但安全性至关。

  7)加密计算:TLS与SSLv3.0在计算主密值(master secret)时采用的方式不一样。

  8)填充:用户数据加密以前须要增长的填充字节。在SSL中,填充后的数据长度要达到密文块长度的最小整数倍。而在TLS中,填充后的数据长度能够是密文块长度的任意整数倍(但填充的最大长度为255字节),这种方式能够防止基于对报文长度进行分析的攻击。

  2.TLS的主要加强内容

  TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善。TLS 在SSL v3.0 的基础上,提供了如下加强内容:

  1)更安全的MAC算法

  2)更严密的警报

  3)“灰色区域”规范的更明确的定义

  3.TLS对于安全性的改进

  1)对于消息认证使用密钥散列法:TLS 使用“消息认证代码的密钥散列法”(HMAC),当记录在开放的网络(如因特网)上传送时,该代码确保记录不会被变动。SSLv3.0还提供键控消息认 证,但HMAC比SSLv3.0使用的(消息认证代码)MAC 功能更安全。

  2)加强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。若是任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。

  3)改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变动。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。

  4)一致证书处理:与SSLv3.0不一样,TLS试图指定必须在TLS之间实现交换的证书类型。

  5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对什么时候应该发送某些警报进行记录。

 

SSL (Secure Socket Layer)

为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过 程中不会被截取及窃听。目前通常通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。

只要3.0版本以上之I.E.或Netscape浏览器便可支持SSL。 当前版本为3.0。它已被普遍地用于Web浏览器与服务器之间的身份认证和加密数据传输。

SSL协议位于TCP/IP协议与各类应用层协议之间,为数据通信提供安全支持。

SSL协议可分为两层:

SSL记录协议(SSL Record Protocol):它创建在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

SSL握手协议(SSL Handshake Protocol):它创建在SSL记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议提供的服务主要有:

1)认证用户和服务器,确保数据发送到正确的客户机和服务器;

2)加密数据以防止数据中途被窃取;

3)维护数据的完整性,确保数据在传输过程当中不被改变。


SSL协议的工做流程

服务器认证阶段:

1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话链接;

2)服务器根据客户的信息肯定是否须要生成新的主密钥,如须要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;

3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;

4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。


用户认证阶段:在此以前,服务器已经经过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。

从SSL 协议所提供的服务及其工做流程能够看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,因为运做电子商务的企业大可能是信誉较高的大公司,所以这问题尚未充分暴露出来。

但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程当中的单一认证问题就愈来愈突出。虽然在SSL3.0中经过数字签名和数字证书可 实现浏览器和Web服务器双方的身份验证,可是SSL协议仍存在一些问题,好比,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易 中,SSL协议并不能协调各方间的安全传输和信任关系。在这种状况下,Visa和 MasterCard两大信用卡公组织制定了SET协议,为网上信用卡支付提供了全球性的标准。


TLS:安全传输层协议 (TLS:Transport Layer Security Protocol)

安全传输层协议(TLS)用于在两个通讯应用程序之间提供保密性和数据完整性。

该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。

较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。

TLS 记录协议提供的链接安全性具备两个基本特性:

私有――对称加密用以数据加密(DES 、RC4 等)。对称加密所产生的密钥对每一个链接都是惟一的,且此密钥基于另外一个协议(如握手协议)协商。记录协议也能够不加密使用。

可靠――信息传输包括使用密钥的 MAC 进行信息完整性检查。安全哈希功能( SHA、MD5 等)用于 MAC 计算。记录协议在没有 MAC 的状况下也能操做,但通常只能用于这种模式,即有另外一个协议正在使用记录协议传输协商安全参数。

TLS 记录协议用于封装各类高层协议。做为这种封装协议之一的握手协议容许服务器与客户机在应用程序协议传输和接收其第一个数据字节前彼此之间相互认证,协商加密算法和加密密钥。

TLS 握手协议提供的链接安全具备三个基本属性: 可使用非对称的,或公共密钥的密码术来认证对等方的身份。

该认证是可选的,但至少须要一个结点方。 共享加密密钥的协商是安全的。对偷窃者来讲协商加密是难以得到的。此外通过认证过的链接不能得到加密,即便是进入链接中间的攻击者也不能。

协商是可靠的。没有通过通讯方成员的检测,任何攻击者都不能修改通讯协商。

TLS 的最大优点就在于:

TLS 是独立于应用协议。高层协议能够透明地分布在 TLS 协议上面。然而, TLS 标准并无规定应用程序如何在 TLS 上增长安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。

协议结构 TLS 协议包括两个协议组―― TLS 记录协议和 TLS 握手协议――每组具备不少不一样格式的信息。在此文件中咱们只列出协议摘要并不做具体解析。具体内容可参照相关文档。

TLS 记录协议是一种分层协议。每一层中的信息可能包含长度、描述和内容等字段。记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用 MAC 、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,而后将它们传送到高层客户机。 TLS 链接状态指的是 TLS 记录协议的操做环境。它规定了压缩算法、加密算法和 MAC 算法。

TLS 记录层从高层接收任意大小无空块的连续数据。

密钥计算:记录协议经过算法从握手协议提供的安全参数中产生密钥、 IV 和 MAC 密钥。

TLS 握手协议由三个子协议组构成,容许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。

相关文章
相关标签/搜索