Wireshark入门与进阶系列十一之SSL分析

Wireshark SSL分析
本文介绍如何使用Wireshark分析SSL协议,涵盖SSL握手过程、记录层解析及常见连接问题诊断等内容。

0x00 前言
    Wireshark(前称Ethereal)中文版是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。本文着重分析wireshark捕获SSL协议及其对SSL协议的故障分析。

0x01 基本的密码学

1 保密性

      【加密和解密】、消息完整性【信息摘要和消息签名】、端点身份验证和认可【证书和认证机构】

2 对称加密

        加密和解密的密钥相同、Computatively低消耗、短密钥(通常为40-256比特)DES,3DES,AESxxx,RC4

3 非对称加密

        加密是一个密钥,解密是另外第二个密钥(两键来源于一对)、相比较“高消耗”、长密钥(通常为512-4096位)RSA,DSA

4 消息摘要

         不可逆【从摘要中不能复原文】
         抗碰撞【不可能创建一个消息M',使其具有相同摘要的消息M,MD5,SHA-1,SHA-2】

5 消息签名

         用私钥认证来新建信息摘要,消息的发送者可以用公钥进行检查真实性

6 数字证书

        以加密法,公开密钥证书(或身份证明)是一种利用与身份的公共密钥绑定在一起的数字签名的电子文档。

7 证书颁发机构

        互相信任的发送者和接收者“解决了”密钥交换问题、CA之间能够链接、顶链是“自签名”(它称为“根CA”)

0x01 SSL知识

1 SSL历史

SSLv1 by Netscape (unreleased, 1994)
SSLv2 by Netscape (v2-draft,1994)
SSLv3 by Netscape (v3-draft, 1995)
TLSv1.0, IETF (RFC 2246, 1999)
TLSv1.1, IETF (RFC 4346, 2006)
TLSv1.2, IETF (RFC 5246, 2008)

2TCP/IP堆中位置

在传输层和应用层之间、介于HTTP和TCP之间,SSL协议独立处于一个层段,不依赖上下层协议。

3 SSL记录层

提供分片(最大尺寸为2 ^14)
每个SSL记录多个SSL信息(包括一个内容类型)允许
SSL记录可以被分割在多个TCP段(2 ^14> MSS!)
一个TCP段可以包含多个SSL记录(或片段)

4 SSL内容类型

握手协议(0x16)---负责认证和密钥设置
ChangeCipherSpec协议(0×14)----通知加密开始
警报协议(为0x15)---警示和致命错误的报告
应用协议(0x17已)---数据的实际的加密和传输

0x02 分析SSL记录层

    为了更好地过滤SSL协议的信息并且同时排除其他协议对本次本次分析的影响,我们可以提前设置一下显示过滤设置,详细设置参数如下:
ip.defragment: TRUE
tcp.check_checksum: FALSE
tcp.desegment_tcp_streams: TRUE
ssl.desegment_ssl_records: TRUE
ssl.desegment_ssl_application_data: TRUE
        我们从wireshark的截图中,通过分析,可以查看SSL 记录层的状态,长度,加密等,如下图1 是建立SSL协议前,客户端发送了请求包,进行握手协商。


图2.1.1 客户端hello包



图2.1.2 服务端hello包



图2.1.3 证书传输

0x03 常规的RSA handshake

      下图为SSL中 RSA handshake建立连接的整个过程,其中客户端和服务端之间共经过9个流程来建立一个SSL连接,连接成功后,才开始发送数据。

1=====客户端发送clienthello=================================================================

2===服务器发送serverhello包回应=============================================================

3===服务端发送证书====================================================================




4====服务端证书认证完成===================================================================

5===客户端秘钥交换========================================================================

6====交换客户端加密套件===================================================================

7====客户端完成加密套件加密================================================================

8====服务端交换加密套件===================================================================

9====服务端交换秘钥套件完成================================================================

############################################################################################

0x04短暂RSA (or DH) handshake

下图显示整个加密过程,明显可以看到整个流程比RSA多了一个服务端秘钥交换过程。

===在0x02中的第3,4之间多了一个【ServerKeyExchange】的过程=====================================

0x05 Client Authentication


====服务器请求客户端证书==================================================================

=====客户端发送自己的证书=================================================================

=====确认证书============================================================================

========================================================================================

0x06 缓存SSL 会话

密钥协6商消耗大
TCP会话之间的缓存SSL会话可以从停留的地方继续进行
SSL会话ID作为索引使用
SSL会话的ID超时是一个“绝对超时”,也不是一个“空闲超时”
旧老IE:默认是2分钟,现在10小时

========================================================================================

========================================================================================

========================================================================================

========================================================================================
0x07 解密 SSL 流量
         提供服务器的私钥给wireshark;仅在追踪文件时,仅对完整的会话或者握手有效;在EphemeralRSA or DH ciphers无法起到作用(因为密钥交换);在客户端认证的情况,也能起效。要实现这个效果,首先要设置SSL的密钥和日志等文件,。
操作方法:主界面--【编辑】--【首选项】--【协议】--【SSL】-->>

========================================================================================

========================================================================================

=======================================================================================

========================================================================================

========================================================================================

========================================================================================

========================================================================================

==========

========================================================================================
      解密过程中,由于各种因素,难免出现各种问题,所以这时候要检查 SSL 调试日志和 核实证书的一致性,例如服务器证书是否变动,是否更改,是否和wireshark配置的是同一个证书。

0x08 常见SSL 连接问题

1 安全连接失败


2 无共同密钥


3 客户端无法验证服务端的证书


4 证书过期


5 时间不对称


6 虚假网站


========================================================================================

7服务器证书


========================================================================================

========================================================================================

========================================================================================

0x09参考资料

https://www.wireshark.org/docs/


欢迎大家分享更好的思路,热切期待^^_^^ !


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值