使用wireshark分析SSL/TLS

Posted 20179216

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用wireshark分析SSL/TLS相关的知识,希望对你有一定的参考价值。

一、基本概念

  SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。

    TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。

    SSL/TLS位于传输层和应用层之间,应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。

 

1、不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。

(1) 窃听风险(eavesdropping):第三方可以获知通信内容。

(2) 篡改风险(tampering):第三方可以修改通信内容。

(3) 冒充风险(pretending):第三方可以冒充他人身份参与通信。

 

2、SSL/TLS协议是为了解决这三大风险而设计的,希望达到:

(1) 所有信息都是加密传播,第三方无法窃听。

(2) 具有校验机制,一旦被篡改,通信双方会立刻发现。

(3) 配备身份证书,防止身份被冒充。

 

3、SSL/TLS协议的基本过程是这样的:

(1) 客户端向服务器端索要并验证公钥。

(2) 双方协商生成"对话密钥"。

(3) 双方采用"对话密钥"进行加密通信。

前两步又称为“握手阶段(handshake)”

 

4、握手阶段的详细过程

可分为5步(使用Diffie – Hellman算法):
第一步,浏览器给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。
第二步,服务器确认双方使用的加密方法,使用的tls版本号和一个随机数。
第三部,并给出数字证书、以及一个服务器运行Diffie-Hellman算法生成的参数,比如pubkey。
第四部,浏览器获取服务器发来的pubkey,计算出另一个pubkey,发给服务器。
第五部,服务器发给浏览器一个session ticket。

 

 二、步骤

 (1)客户端向服务器提供以下信息

 

(2)服务器回答给客户端以下信息

4

 

(3)客户端发送给服务器

服务器发送给客户端
服务器端发送change_cipher_specfinished消息。到这里握手结束。

 

 

下面是一个server证书采用DSA算法的握手过程。由于采用了DH算法交换密钥,多了server_key_exchange这一步。

 

 

 的WireShark抓到TLS数据包后的显示结果:

 

以上是关于使用wireshark分析SSL/TLS的主要内容,如果未能解决你的问题,请参考以下文章

使用wireshark分析MQTT协议

计算机网络原理实验_使用网络协议分析仪Wireshark

使用Wireshark工具分析网络协议

使用wireshark抓包分析-抓包实用技巧

wireshark抓包

使用Wireshark分析-以太网帧与ARP协议-IP协议-ICMP-UDP协议-TCP协议-协议HTTP-DNS协议