【ssl认证、证书】Wireshark抓包分析

相关文章:
//-----------Java SSL begin----------------------
【ssl认证、证书】SSL双向认证和SSL单向认证的区别(示意图)
【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系
【ssl认证、证书】SSL双向认证java实战、keytool创建证书
【ssl认证、证书】Wireshark抓包分析
【ssl认证、证书】 查看keystore文件内容
//------------Java SSL end--------------------------

//-----------下面的是CA证书和openssl相关的知识--------------
【ssl认证、证书】TLS/SSL双向认证概念、openssl genrsa示例
【ssl认证、证书】openssl genrsa 命令详解
【ssl认证、证书】SSL 证书基本概念、证书格式、openssl和keytool的区别

代码示例

参见 【ssl认证、证书】SSL双向认证java实战、keytool创建证书

完整的流程:

在这里插入图片描述

TLS/SSL双向认证握手过程分析

(1)client_hello
支持的协议版本,比如TLS 1.0;
支持的加密算法(Cipher Specs);
客户端生成的随机数1(Challenge),稍后用于生成"对话密钥"。
在这里插入图片描述
(2)server_hello
确认使用的协议版本;
服务器生成的随机数2,稍后用于生成"对话密钥";
确认使用的加密算法; 算法解释: HTTPS背后的加密算法
向客户端提供自己的证书;
请求客服端的证书。

在这里插入图片描述
(3)客户端发生给服务端
客户端证书发送给服务端;
client_key_exchange。

在这里插入图片描述

(4)客户端发生给服务端
客户端证书校验;
change_cipher_spec:客户端通知服务器后续的通信都采用协商的通信密钥和加密算法进行加密通信。

在这里插入图片描述
(5)服务端向客户端
change_cipher_spec: 验证通过之后,服务器同样发送 change_cipher_spec 以告知客户端后续的通信都采用协商的密钥与算法进行加密通信;
encrypted_handshake_message:服务器也结合所有当前的通信参数信息生成一段数据并采用协商密钥 session secret 与算法加密并发送到客户端;
在这里插入图片描述
(6)加密通信
开始使用协商密钥与算法进行加密通信。

在这里插入图片描述

参考

SSL/TSL双向认证过程与Wireshark抓包分析

猜你喜欢

转载自blog.csdn.net/m0_45406092/article/details/129996514