使用Wireshark分析TLS1.2

概念扫盲

首先,先说下TLS是什么? TLS是SSL协议的具体实现,SSL是一个规范,TLS是安装SSL规范实现的。后面都说SSL/TLS

SSL/TLS位于应用层和传输层之间,应用层还是可以用http、telnet等应用层协议,只是应用层的数据不是直接交给tcp,而是由tls管理,tls在头部增加安全数据然后交给tcp。

(图来自https://www.cnblogs.com/lv6965/p/7859925.html

详细过程

1. 浏览器/客户端给出协议版本号、客户端生成的随机数(Client random),以及客户端支持的加密方法。

2. 服务端确认双方使用的加密方法,使用的tls版本号没有问题,生产一个随机数发给客户端。

3. 数字证书、以及一个服务器运行Diffie-Hellman算法生成的公钥pubkey。

4. 浏览器/客户端获取服务器发来的pubkey,计算出另一个pubkey,发给服务器。

5. 服务器发给浏览器一个session ticket。

使用Wireshark抓包上面的过程

第一步,

看最后的Transport Layer Security,tls协议,可以看到有生成的随机数,协议版本,支持的加密算法,Cipher 展开如下

第二步,

服务端发生server hello给客户端,信息有版本信息,随机数,服务端采用的加密算法。

第三步,

Certificate:服务器发一个证书给客户端,该证书用于客户端确认服务器的身份。这个涉及客户端对访问服务端的身份认证,一般是服务器会从第三方认证机构获得一个证书,客户端请求服务端的时候,服务端根据这个证书,以及客户端刚开始生成的随机数生成一个证实给客户端去第三方机构认证。如果客户端的SSL需要验证服务器的身份,会发送该消息(多数电子商务应用都需要服务器端身份验证。服务器如果需要验证客户端的身份,那么服务器会发一个“Certificate Request”给浏览器,而在很多实现中,服务器一般不需要验证客户端的身份)。在这个Certificate包中,还告诉我们服务器和浏览器是通过Diffie-Hellman算法来生成最终的密钥(也就是Sessionkey),其中下图所示的pubkey是Diffie-Hellman算法中的一个参数,这个参数需要通过网络传给浏览器,即使它被截取也没有影响安全性。

第四步

浏览器收到服务器发来的Certificate包来之后,运行Diffie-Hellman算法生成一个pubkey,然后发送给服务器。通过这一步和上面Certificate两个步骤,服务器和浏览器分别交换了pubkey,这样他们就可以分别生成了一个一样的sessionkey(具体的实现过程可以参考Diffie-Hellman算法的实现),如果你还不是很理解这个算法,那么这里你只需要知道服务器和浏览器向对方发送了pubkey之后,双方就可以计算出相同的密钥了,并且这个过程没有安全问题。

第五步

完成上面的步骤,可以说TLS的握手阶段已经完成了,接下来开始分段传输数据。

————————————————

原文链接:https://blog.csdn.net/liangyihuai/article/details/53098482

原文地址:https://www.cnblogs.com/zhengwangzw/p/12228887.html

时间: 2024-10-15 20:28:33

使用Wireshark分析TLS1.2的相关文章

Centos6.5下使用tcpdump抓包并用wireshark分析

前言 原创文章欢迎转载,请保留出处. 若有任何疑问建议,欢迎回复. 邮箱:[email protected] 在Centos6.5下通过使用tcpdump抓包和wireshark分析包,初步了解抓包和解包 安装 首先我们要安装tcpdump,必须的库: yum install flex yum install bison yum install gcc 另外tcpdump是基于libpcap,这个在yum找不到,我们到tcpdump的官网(http://www.tcpdump.org/#late

Wireshark分析非标准端口号流量

Wireshark分析非标准端口号流量 2.2.2  分析非标准端口号流量Wireshark分析非标准端口号流量 应用程序运行使用非标准端口号总是网络分析专家最关注的.关注该应用程序是否有意涉及使用非标准端口,或暗中想要尝试通过防火墙本文选自WireShark数据包分析实战详解清华大学出版社. 1.分配给另一个程序的端口号 当某数据包使用非标准端口上,如果被Wireshark识别出是使用另一个程序,则说明Wireshark可能使用了错误的分析器,如图2.19所示本文选自WireShark数据包分

tcpdump常用用法+wireshark分析cap包

工作中的常用用法一.tcpdump常用用法: 1,-i 指定网口 -vnn 常用选项,显示详细信息并且不解析IP,端口 :抓取某个网口上发往或来自某个IP的报文tcpdump -i ethX host 192.168.1.100 -vnn 2,可以用or 或者and 连接多个过滤条件,port前的tcp表示tcp协议,也可为udp:抓取某个网口上发往或来自某个IP.并且指定端口的报文tcpdump -i ethX host 192.168.1.100 and tcp port 22(端口号) -

[转]使用wireshark分析TCP/IP协议中TCP包头的格式

本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述 TCP是面向连接的可靠传输协议,两个进程互发数据之前需要建立连接,这里的连接只不过是端系统中分配的一些缓存和状态变量,中间的分组交换机不维护任何连接状态信息.连接建立整个过程如下(即三次握手协议): 首先,客户机发送一个特殊的TCP报文段: 其次,服务器用另一个特殊的TCP报文段来响应: 最后,客户机再用第三个特殊报文段作为响应. 图1 三次握

使用wireshark分析tcp/ip报文之报文头

以太网报文的结构如下: 其中,以太网的帧头: 14 Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B. IP头部: TCP头部: http://blog.163.com/[email protected]/blog/static/618945432011101110497885/ http://www.cnblogs.com/zhuzhu2016/p/5797534.html 也就是报文的头部一共有54字节.下面以一个简单的http请求查看

tcpdump 抓包 通过 Wireshark分析抓包文件

1. tcpdump的基本原理 1.1  tcpdump starce 的区别 在本机中的进程的系统行为调用跟踪,starce   是一个很好的工具:但是在网络问题的调试中,tcpdump 应该是一个必不可少的工具:能清晰分析网络通信的信息. 默认情况下,tcpdump 不会抓取本机内部通讯的报文   :根据网络协议栈的规定,对于报文,即使是目的地是本机(自己和自己通信),也需要经过本机的网络协议层,所以本机通讯肯定是通过API进入内核,并且完成路由选择.[比如本机的TCP通信,也必须要sock

使用wireshark分析TCP/IP协议中TCP包头的格式

摘要:     本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述     TCP是面向连接的可靠传输协议,两个进程互发数据之前需要建立连接,这里的连接只不过是端系统中分配的一些缓存和状态变量,中间的分组交换机不维护任何连接状态信息.连接建立整个过程如下(即三次握手协议): 首先,客户机发送一个特殊的TCP报文段: 其次,服务器用另一个特殊的TCP报文段来响应: 最后,客户机再用第三个特殊报文段

Linux网络编程--wireshark分析TCP包头的格式

摘要:     本文简介了TCP面向连接理论知识,具体讲述了TCP报文各个字段含义.并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述     TCP是面向连接的可靠传输协议,两个进程互发数据之前须要建立连接,这里的连接仅仅只是是端系统中分配的一些缓存和状态变量,中间的分组交换机不维护不论什么连接状态信息. 连接建立整个步骤例如以下(即三次握手协议): 首先,客户机发送一个特殊的TCP报文段: 其次,server用还有一个特殊的TCP报文段来响应: 最后,客户机再用

使用wireshark分析MQTT协议

网络上搜索到两种用wireshark工具分析MQTT协议的方法,都是使用wireshark插件,一种是Wireshark Generic Dissector:另一种是使用lua脚本插件. 一.Wireshark Generic Dissector: 1.下载generic.so,注意版本要严格匹配,放到wireshark的插件目录(Global Plugins folder or Personal Plugins folder,可以通过wireshark的 Help / About Wiresh