TLS和SSL详解

一、TLS和SSL概述

       SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

是Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。

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

      SSL协议可分为两层: 
      SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 
      SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL握手协议有三个子协议如图:

         握手协议(Handshake protocol):用于会话建立。

        改变密码规约协议(Change cipher spec protocol):用于通知安全参数的建立。

        告警协议(Alert protocol):用于向对方发出告警信息。

TLS和SSL详解_第1张图片
SSL/TLS协议栈
SSL/TLS协议主要解决的以下3个问题:
    1.客户端对服务器端的认证
    2.服务器端对客户端的认证
    3.在客户端和服务器端建立安全的数据通道

二、对握手协议的3个子协议的详细解释:

       SSL改变密码规约协议是使用SSL记录协议服务的SSL高层协议的3个特定协议之一,也是其中最简单的一个。协议由单个消息组成,该消息只包含一个值为1的单个字节。该消息的唯一作用就是使挂起的读状态拷贝为当前状态,更新用于当前连接的密码组。为了保障SSL传输过程的安全性,双方应该每隔一段时间改变加密规范。

       SSL报警协议是用来为通信的对方传递SSL的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。警示消息有两种:一种是Fatal错误,如传递数据过程中,发现错误的MAC,双方就需要立即中断会话,同时消除自己缓冲区相应的会话记录;第二种是Warning消息,这种情况,通信双方通常都只是记录日志,而对通信过程不造成任何影响。

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

每个握手协议包含以下3个字段:

  Type:表示10种消息类型之一

  Length:表示消息长度字节数

  Content:与消息相关的参数


SSL完全握手协议包含四个阶段:

    

      第一个阶段 建立安全能力;

TLS和SSL详解_第2张图片

    ClientHello 客户发送CilentHello信息,包含如下内容:

  (1)客户端可以支持的SSL最高版本号

  (2)一个用于生成主秘密的32字节的随机数。(等会介绍主秘密是什么)

  (3)一个确定会话的会话ID。

  (4)一个客户端可以支持的密码套件列表。


第二个阶段   服务器鉴别和密钥交换;

第三个阶段   客户鉴别和密钥交换;


 第四个阶   段完成握手协议。

TLS和SSL详解_第3张图片
完全握手协议执行图
SSL 简单握手 流程:
TLS和SSL详解_第4张图片
简单握手协议图

第一个阶段建立安全能力;

第二个阶段完成握手协议。


三、记录协议

记录协议向SSL连接提供两个服务:

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

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

      记录协议首先从应用层或者TLS上层3个协议接收报文,其次进行一系列处理,最后将结果提交给TCP传输;对于来自TCP的则进行逆操作,最后交给上层


 记录协议的过程:
TLS和SSL详解_第5张图片
记录协议执行图
SSL记录的首部:
      类型(type):8位,指明上层协议的类型。 改变密码规约协议的值:20. 告警协议:21 握手协议:22 应用数据协议:23
      版本(version):TLS协议版本,长度为16位
           长度(length):加密后数据的长度
      数据分片的密文数据,附带MAC摘要。

四、利用wireshark进行SSL/TLS协议的验证---以登陆163邮箱为例子

         确保浏览器开启了SSL、TLS功能TLS和SSL详解_第6张图片
TLS数据包列表

TLS和SSL详解_第7张图片
   客户端 Client Hello 报文

   TLS和SSL详解_第8张图片
server hello报文
TLS和SSL详解_第9张图片
     服务器认证报文

你可能感兴趣的:(协议分析)