SSL/TSL双向认证过程与Wireshark抓包分析
原博文
1、 SSL/TSL基本知識
(1)SSL/TLS協議運行機制:https://blog.csdn.net/fw0124/article/details/40873253
(2)圖解SSL/TLS協議:https://blog.csdn.net/fw0124/article/details/40875629
(3)SSL/TLS 雙向認證(一) -- SSL/TLS工作原理:https://blog.csdn.net/ustccw/article/details/76691248
(4)Java SSL/TLS 安全通訊協議介紹:https://www.ibm.com/developerworks/cn/java/j-lo-ssltls/
?
2、 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)加密通信
開始使用協商密鑰與算法進行加密通信。
?
?
?
3、SSL雙向認證過程如何進行加密數據傳輸業務數據的?
簡單的說:
在認證初期,客戶端和服務端分別生成一個隨機數。后面,在第(3)步,客戶端又生成pre-master-key隨機數,加密后傳給服務端。此時,客戶端和服務端雙方都有三個隨機數了。
此時,客戶端和服務端分別將這三個隨機數通過前面協商的加密算法進行加密,各自生成本次會話所用的同一把“會話秘鑰”。即:雙方使用同一把密碼進行對稱加解密通信。
下面是詳解:
4、其他關于SSL/TSL詳解
(1)HTTPS加密協議詳解(四):TLS/SSL握手過程:https://www.wosign.com/faq/faq2016-0309-04.htm
(2)HTTPS--使用wireshark觀察SSL/TLS握手過程--雙向認證/單向認證:https://blog.csdn.net/xiangjai/article/details/51898657
(3)TLS/SSL 協議詳解 (16) client key exchange:https://blog.csdn.net/mrpre/article/details/77868396
(4)Java Secure(SSL/TLS) Socket實現:https://blog.csdn.net/a19881029/article/details/11742361
總結
以上是生活随笔為你收集整理的SSL/TSL双向认证过程与Wireshark抓包分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 绕过TracerPid检测
- 下一篇: 关于CVE-2019-0708 - 数组