TLS握手協議竟然能教你追女神?

TLS握手協議是TLS協議裏面的重要組成部分,沒有它的話TLS也不可能建立起來。就如同你要擺脫單身的話,怎麼樣也得懂得一點追女孩的技巧和步驟吧。其實在TLS握手協議裏面是隱含着追女神的幾個關鍵過程和技巧。什麼?TLS握手協議竟然能教我追女神?是的,趕緊來一邊學TLS握手協議,一邊學怎麼追女神吧!

一,Client Hello

客戶端:“Hello,我支持的密碼套件有RSA/3DES、DSS/AES,我們要用那種進行通訊呢?”。並附上了客戶端可用的版本號,當前時間,客戶端的隨機數,會話ID,支持的密碼套件清單,支持的壓縮方式清單這些信息。這時服務端就能根據客戶端請求中的信息進行相應的處理,並返回響應。

這一步與追女神的第一步相似,就是你如何認識她並取得與她的聯繫方式。接觸到女神的場景有很多,搭訕、聚會、工作、派對等等。不過無論是在什麼場景,重要的是你要鼓起勇氣過去跟她說話啊。

例如是搭訕的話,你就需要表達好“你是誰”、“你是做什麼的”、“你想幹嘛”這幾個關鍵點來打消女神的警覺性。而最重要的,是你得拿到她的聯繫方式。

二,Server Hello

只要服務端有正確受到客戶端的請求,經過處理後,這時會返回“Hello,我們用RSA/3DES進行通訊吧”。也就會將本次握手所採用的密碼套件、壓縮方式等等返回給客戶端。

這一步與追女神的第二步相似,其實也是等待女神的迴應。

如果你能成功引起她的注意並打消她的疑慮的話,她可能會給你她的聯繫方式。這一步成功了,你們纔能有後續的發展。

三,Server提供Certificate

在非匿名通訊,服務端會給客戶端發送證書。這裏的證書清單是一組X509v3證書序列。客戶端受到證書後,會對其進行驗證。如果是匿名通訊的話,不需要發送Certificate。

四,Server Key Exchange(當證書信息不足時)

如果證書方面的信息不足夠時,會無法對通訊進行加密。這時就需要服務端和客戶端互相提供一些信息進行密鑰的交換。例如在使用RSA的話,服務端會發送公鑰密碼參數以及散列值等給客戶端。如果是使用Diffie-Hellman密鑰交換的話,則需要提供P,G,服務器的Y以及散列值。關於Diffie-Hellman算法大家可以自行查找相關資料學習,這裏就不展開討論。

五,Certificate Request(當需要客戶端認證的時候)

某些服務是隻提供給指定的客戶端,這種情況下需要驗證客戶端的身份,我們稱之爲“客戶端認證”。Certificate Request消息就是服務器向客戶端請求證書。服務器會向客戶端發送的Certificate Request消息會包含證書類型清單和認證機構名稱清單等信息。

六,Server Hello Done

服務端發送Server Hello Done消息客戶端後,表示服務端從Server Hello開始後的一連串消息結束。

 

七,Certificate(客戶端到服務端)

如果在第五步中服務器有發送Certificate Request的話,客戶端就要發送Certificate的消息給服務器。Certificate消息會包含客戶端自己的證書,服務端收到客戶端的證書後會對證書進行驗證。

八,Client Key Exchange

此階段中,客戶端會向服務端發送Client Key Exchange消息,如果採用的是Rsa的話,其中會包含“經過加密的預備主密碼”。如果是Diffe-Hellman,則包含的是Diffe-Hellman的公開值。所謂預備主密碼,其實就是客戶端生成的隨機數,這個隨機數在之後會被用於生成主密碼的種子。客戶端和服務端使用相同預備主密碼能計算出相同的主密碼。有主密碼就能對應地生成對稱密碼的密鑰、消息認證碼的密鑰以及採用CBC模式的對稱密碼所使用的出事向量。預備主密碼在傳輸前會使用服務器的公鑰(回想一下服務器的公鑰是在哪一步中獲得的?)進行加密。

這裏會對應追女神裏面的兩步:你主動跟她聊天,她有迴應。當然這會有很多來回的。這裏面就需要你充分展示自己的個人魅力、良好的生活習慣、正確的三觀等等。如果你覺得自己沒有魅力或者生活習慣不良的話,那就馬上改善哦。

九,Certificate Verify

如果服務器有發送Certificate Request,則客戶端就需要返送Certificate Verify消息給服務端。這一步中客戶端先計算“主密碼”和“握手協議中傳送的消息”的散列值,然後會用客戶端證書的私鑰對其進行簽名,服務端在受到簽名後會使用客戶端證書的公鑰對其進行驗籤。這一步是客戶端爲了證明自己確確實實是擁有客戶端證書的私鑰的。擁有證書的私鑰才能證明你是擁有該證書的。

十,Change Cipher Spec(客戶端到服務端)

此時客戶端與服務端之間已經交換過各種建立加密通訊所需的信息,在Change Cipher Spec消息之後,雙方就會使用商定的密碼通訊方式進行通訊。Change Cipher Spec其實並不是握手協議的消息,而是密碼規格變更協議的消息。

如果一起順利的話,追女神來到這一步的話,就是你要表白了。不過表白其實並不是確定戀愛關係開始的標誌,戀愛關係其實會在你們此前的良好交流互動中逐漸形成,而表白是讓戀愛關係在你們之間明確的一個儀式。

十一,Finished(客戶端到服務端)

Finished消息是在密碼切換後發送的,所以Finished消息是加密發送的。由於Finished消息的內容時固定的,所以服務端受到後能夠對其進行解密並驗證受到的Finished消息是否正確。Finished也是用戶確認整個握手協議和密碼切換是否都已經正常結束。

十二,Change Cipher Spec(服務端到客戶端)

這一步的Change Cipher Spec消息與第十步中的一樣,只是輪到服務端發送而已。

如果你不太差勁的話,女神當然是會答應你啦,哈哈哈。

十三,Finished(服務端到客戶端)

與第十一步一樣,這一步的Finished消息也是在密碼切換後發送的。

十四,切換到應用數據協議

至此,客戶端和服務端會使用加密的方式來傳送應用數據。

追女神如果走到這一步,其實不用多說,恭喜你!

總結

TLS握手協議在整個TLS協議中是最複雜的,它負責了客戶端和服務端證書的交換以及共享密鑰的生成。TLS握手協議是在沒有加密的情況下進行的,所以你會看到整個過程中會使用到公鑰密碼。握手協議完成後,客戶端和服務端之間的應用數據就能通過加密的方式傳送,這時所有的數據就能確保安全。

最後附上TLS握手協議全過程以及追女神全過程。

整個TLS握手協議的過程如下:

整個追女神的過程如下:

 

by 皇子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章