为了更好理解SSL协议的握手过程,结合实例,使用Wireshark抓包分析SSL握手过程中客户端与服务器间的交互过程。本例中服务器为AcFun弹幕视频网 - 认真你就输啦 (・ω・)ノ- ( ゜- ゜)つロ(58.49.162.241),客户端为本机浏览器(192.168.1.9)

第一阶段

  客户端浏览器向服务器发起TCP连接请求,建立起TCP连接后,客户端向服务器发送Client Hello消息,传送客户端支持的最高 SSL 协议的版本号、随机数、加密算法列表,以及其他所需信息。Client Hello消息的内容如下图所示:

通过上图可以知道Client Hello消息结构如下:

 Cipher Suits字段是一个枚举类型,说明了客户端所支持算法,每个Cipher Suit指定了一个加密组合,如下图所示:

服务器收到客户端建立SSL连接的请求后,通过发送Server Hello消息向客户端传送SSL 协议的版本号、随机数、会话ID、加密算法的种类以及其他相关信息。消息内容如下

通过上图可知Server Hello消息结构如图所示:

Randon:由随机种子gmt_unix_time使用伪随机数函数(PRF)生成的32字节随机数。

session ID:如果没有建立过连接则对应值为空,不为空则说明之前建立过对应的连接并缓存。

Cipher Suite:指定了服务端选定的加密组合,这里选出的加密组合是TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,ECDHE_RSA作为密钥交换算法。128位的AES分组加密算法,SHA作为消息摘要算法。

Compress Method:记录层接收高层协议的数据时使用的压缩算法,这里没有使用压缩算法,所以是null。

第二阶段

服务器向客户端发送包含其证书的Certificate消息。证书中所携带服务器的公钥,用于加密后面消息中预主密钥。消息内容如下:

从图中可以看到证书的各字段信息,包括证书版本号(v3)、证书序列号、证书签名算法、颁发者信息(Symantec)和证书有效期.

接下来还包括证书持有者、证书公钥信息、扩展字段(持有者备用名称、基本约束、密钥用法、增强型密钥用法、证书策略、颁发机构密钥标识符、CRL分发点、颁发机构信息访问),最后是证书的签名算法和证书的签名值

第三阶段与第四阶段

服务器发送完Certificate消息后继续发送Server Key Exchange和Server Hello Done消息,Server Key Exchange消息中包含有密钥交换算法所需要的额外参数。Server Hello Done消息表示服务器已发送完此阶段的全部信息。

客户端发送Client Key Exchange和Change Cipher Spec消息,Client Key Exchange包含使用服务器RSA公钥加密过的随机数Pre_Master_Secret,该参数用于后续生成主密钥;Change Cipher Spec消息告诉服务器,接下来的消息将采用新协商的加密套件和密钥进行通信,并通知客户端到服务器的握手过程结束。

接着服务器同样发送Change Cipher Spe消息通知服务器到客户端的握手过程结束,并发送一个加密的握手数据Encrypted Handshake Message 消息,客户端收到消息解密后进行验证,验证通过则说明握手过程中的数据没有被篡改过,也说明服务器是之前交换证书的持有者。现在双方就可以开始加密通信。

SSL握手过程实例抓包分析相关推荐

  1. ARP完整过程及抓包分析

    ARP完整过程及抓包分析 1.ARP协议概念 ARP(地址解析协议)是根据IP地址获取物理地址的一个协议.由于OSI将网络分为七层,IP地址在OSI模型的第三层(网络层),MAC地址在第二层(数据链路 ...

  2. DNS完整过程及抓包分析

    DNS完整过程及抓包分析 1.DNS概念 DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主机的域名和对应IP地址 ...

  3. TCP 数据收发过程抓包分析

    本文简单对 TCP 协议的三次握手.数据传输.四次挥手过程进行抓包分析. 一. 抓包准备 首先本地通过套接字实现一个 TCP 通信,然后通过 Wireshark 抓包,套接字通信代码如下: Serve ...

  4. SSL连接的抓包分析

    在上一篇博客中,我用JAVA编写了一个服务器和客户端程序,实现SSL的双向认证和连接.下面我们可以对整个连接的过程进行抓包分析,更好的理解整个连接的过程,也方便做故障排查. 首先安装wireshark ...

  5. Wireshark对pop3抓包分析

    本文主要使用Wireshark对邮件客户端使用POP3协议收取邮件的过程进行抓包分析并使用telnet命令进行简单操作. 1.POP3简介 邮局协议(英语:Post Office Protocol,缩 ...

  6. Wireshark对SMTP抓包分析

    本文主要使用Wireshark对邮件客户端使用SMTP协议发送邮件的过程进行抓包分析并使用telnet命令进行简单操作. 1.SMTP简介 简单邮件传输协议(英语:Simple Mail Transf ...

  7. Wireshark对IMAP抓包分析

    本文主要使用Wireshark对邮件客户端使用IMAP协议接收邮件的过程进行抓包分析并使用telnet命令进行简单操作. 1.IMAP简介 IMAP和POP3两个协议基本上是目前支持和使用最广泛的邮件 ...

  8. DHCP和PPPoE协议以及抓包分析

    目录 一.DHCP协议学习 1.1 定义 1.1.1 使用DHCP的优点 1.2 DHCP客户端 1.3 DHCP服务器 1.4 端口 1.5 DHCP中继 1.6 报文格式及其类型 1.7 DHCP ...

  9. Wireshark抓包分析SSL握手的过程

    刚才用图和文字描述讲解了SSL协议的交互过程HTTPS协议--通过SSL协议实现安全保障的过程和原理. 用Wireshark抓包进行详细的讲解.抓的是某机构腾讯课堂的首页. (因为网页有变动,所以实际 ...

最新文章

  1. 中科大博士20万字正经论文:教你如何给女朋友送礼物
  2. 饥荒联机版连不上服务器_饥荒联机版不搜索房间直连服务器教程 搜索不到房间怎么办_游侠网...
  3. Hydra 8.4/8.5新增功能
  4. golang非对称加密
  5. 学习VIM编辑器的使用
  6. ubuntu 12.04 联想thinkpad e430 安装wifi驱动
  7. 1.Boost之array
  8. ImportError: cannot import name ‘moving_averages‘
  9. 一个注册页面的前端模板(html+css+javascript)可自适应屏幕
  10. thrift之TTransport层的堵塞的套接字I/O传输类TSocket
  11. 走进小作坊(十四)----web2.0策略指南
  12. 网页采集器,全自动网站采集发布(图文)
  13. 小红书后台开发岗面试经历复盘
  14. MAK代理激活的使用方法和注意事项
  15. 关于 MySQL bug 91418 一些看法
  16. 日知录(七):python之理解pygame飞机大战
  17. 为什么人人都爱油炸食物?
  18. bellman operator 和bellman equation概念区分
  19. 快手“老”矣,尚能饭否?
  20. SCI 论文投稿时该如何撰写 Highlights?

热门文章

  1. 拼多多开店步骤是什么?在拼多多如何开店?
  2. 微信小程序----map组件实现检索【定位位置】周边的POI
  3. 立可得_第2章_新零售_重构人、货、场
  4. 使用Unity制作3D驾驶游戏
  5. 以想总结就来博客写写
  6. 服务器系统能玩吃鸡么,迅游普通vip能吃鸡能玩什么服务器 | 手游网游页游攻略大全...
  7. 前端vue使用XXTEA进行对称加解密。同时对比rsa算法和xxtea算法的优缺点。
  8. C语言中continue可以用于switch语句中吗?
  9. 力扣--初级算法-1
  10. ROS2机器人-C++和Python怎么选