SSL与TLS

900阅读 0评论2015-03-31 cjxqhhh
分类:网络与安全

本文S根据百度资料及一篇博文(SSL部分, 朱祁林:http://zhuqil.cnblogs.com)整理而成


SSL


1SSL是拿来干吗用的


SSL的主要作用是在浏览器(如Internet ExplorerNetscape Navigator)和Web服务器(如NetscapeNetscape Enterprise ServerColdFusion Server等等)之间构造安全通道来进行数据传输:

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

认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都是有各自的识别号,这些识别号由公开密钥进行编号,为了认证用户是否合法,安全套接层协议要求对握手交换数据进行数字认证,以此来确保用户的合法性。

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

安全套接层协议所采用的加密技术既有对称密钥技术,也有公开密钥技术。在客户机与服务器进行数据交换之前,交换SSL初始握手信息,在SSL握手信息中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别。这样就可以防止非法用户进行破译。

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

安全套接层协议采用Hash函数和机密共享的方法来提供信息的完整**,建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能全部完整准确无误地到达目的地。

2、常见应用


对线上购物者来说,绿色地址栏是验证网站身份及安全性的最简便可靠的方式。在IE7.0FireFox3.0Opera 9.5等新一代高安全浏览器下,使用扩展验证(EVSSL证书的网站的浏览器地址栏会自动呈现绿色,从而清晰地告诉用户正在访问的网站是经过严格认证的。此外绿色地址栏临近的区域还会显示网站所有者的名称和颁发证书CA机构名称,这些均向客户传递同一信息,该网站身份可信,信息传递安全可靠,而非钓鱼网站。

3、详解


         SSL协议有3个子协议:

         1)握手协议(handshake protocol

         2)记录协议(record protocol

         3)警报协议(alert protocol

 

下面对每一层进行讲解。

      握手协议:


握手协议是客户机和服务器用SSL连接通信时使用的第一个子协议,它建立在SSL记录协议之上。握手协议包括客户机与服务器之间的一系列消息。SSL中最复杂的协议就是握手协议。该协议允许服务器和客户机相互验证,协商加密和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。握手协议是在应用程序的数据传输之前使用的。

握手协议又分为四个阶段:

1)建立安全能力

SSL握手的第一阶段启动逻辑连接,建立这个连接的安全能力,协商秘钥算法等。


2)服务器鉴别与密钥交换

鉴别服务器的合法性,客户端与服务器间交换秘钥。秘钥交换算法在第1)步中就已经协商好。


3)客户机鉴别与密钥交换

鉴别客户端的合法性, 并交换秘钥。


    4)完成

    客户机启动SSL握手第4阶段,使服务器结束。



     记录协议:

它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。其在客户机和服务器握手成功后使用,即客户机和服务器鉴别对方和确定安全信息交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务:

1)保密性:使用握手协议定义的秘密密钥实现

2)完整性:握手协议定义了MAC,用于保证消息完整性 


     警报协议:

      客户机和服务器发现错误时,向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号,秘密和密钥。每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;第2个字节制定实际错误类型。

TLS


      TLS完整握手的消息流


(其实在官方文档中,这个图和SSL 3.0的图是一样的)

最新版本的TLSTransport Layer Security,传输层安全协议)是IETF Internet Engineering Task ForceInternet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLSSSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLSSSL3.0不能互操作。

SSL的差异:

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

1)更安全的MAC算法,对于消息认证使用密钥散列法:

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

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

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

4)一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。  5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问

题。TLS还对何时应该发送某些警报进行记录。





上一篇:WIFI与WLAN的区别
下一篇:Activity劫持实例与防护手段