浅谈https(创建、传输、断开)
前言
比起http,https是更安全的,傳輸過(guò)程中加密的。但是具體的加密過(guò)程是怎么樣我一直一知半解。花了點(diǎn)時(shí)間抓包簡(jiǎn)單分析了一下,希望對(duì)大家有用。
在windows平臺(tái)下抓tcp包是用wireshark的了。沒(méi)啥好說(shuō)的。
我們平常的一次https 的請(qǐng)求,如下所示
?
創(chuàng)建https連接
創(chuàng)建https鏈接是最復(fù)雜的部分。
首先是tcp三次握手。基于tcp的東西,這是必須的。
?
然后是客戶端告知服務(wù)器要?jiǎng)?chuàng)建https連接,這一步稱之為?client hello。客戶端告知服務(wù)器要?jiǎng)?chuàng)建一個(gè)怎么樣的https協(xié)議,并且發(fā)出一個(gè)client的隨機(jī)數(shù)。
?
然后是服務(wù)器響應(yīng)客戶端一個(gè)ack(服務(wù)器說(shuō)我收到啦^_^)
接下來(lái)服務(wù)器向客戶端發(fā)出server hello。服務(wù)器與客戶端確認(rèn)https具體什么協(xié)議(TLS V1.0? V2.0?等),而且發(fā)出一個(gè)server端的隨機(jī)數(shù)。
客戶端沒(méi)有ack~,服務(wù)器告知客戶端證書。里面有一個(gè)證書,通過(guò)diffie-hellman算法來(lái)加解密。
客戶端說(shuō)我收到啦,有一次ack。
客戶端一次diffie-hellman參數(shù)校驗(yàn)。
最后,server端響應(yīng)session-ticket,用于全程加解密。
?
連接就創(chuàng)建完了。以后就是全程加密的傳輸啦。
?
簡(jiǎn)述創(chuàng)建https的過(guò)程:
- tcp三次握手
- 客戶端發(fā)送hello client
- 服務(wù)器發(fā)送hello server
- 服務(wù)器發(fā)送證書、diffie-hellman參數(shù)
- 客戶端響應(yīng)diffie-hellman參數(shù)
- 服務(wù)器響應(yīng)sessionTicket
傳輸
全程加密, 沒(méi)啥。。。
?
斷開(kāi)
在傳統(tǒng)的四次揮手中, 多了一個(gè) Alert Message: Encrypted Alert。 沒(méi)什么的。
?
參考
http://blog.csdn.net/fw0124/article/details/40875629
http://blog.csdn.net/fw0124/article/details/40983787
?
轉(zhuǎn)載于:https://www.cnblogs.com/ELMND/p/5152125.html
總結(jié)
以上是生活随笔為你收集整理的浅谈https(创建、传输、断开)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 女人梦到活捉蝎子什么征兆
- 下一篇: Servlet读取文件的最好的方式