《轉》SSL和Https協議

2021-09-02 07:04:38 字數 1923 閱讀 1405

把這幾天學習到的關於ssl和https協議的內容在這裡分享一下,適合一些像我一樣的網路協議初學者。

ssl協議的起源和歷史我就不再多說了,就是那個netscape 網景公司開發的,它的作用主要是提供了一種安全傳輸方式,我們知道網上有很多的時候需要我們去輸入使用者名稱和密碼,那麼假設我們自己的電腦防病毒還可以,但是使用者名稱和密碼肯定還是要通過網際網路來傳到伺服器那裡,這個步驟就要經過很多的路由等,如果明文傳輸,就可以在你的區域網內或者通過的路由中監聽,竊取你的使用者名稱密碼。

ssl協議位於tcp/ip協議與各種應用層協議之間。當我們開啟乙個https的網頁時,步驟如下:

1. 客戶端通過ssl協議把伺服器需要的客戶端的ssl版本資訊,加密演算法設定,會話資料,傳送給伺服器。

2. 伺服器通過ssl協議把自己的ssl的版本資訊,加密演算法設定,會話資料和其他通訊需要的資訊發給客戶端。伺服器也把伺服器的證書發給客戶端,另外如果客戶端請求伺服器資源需要客戶端認證,伺服器端就會請求客戶端的證書。

3. 客戶端使用這些伺服器發來的資訊認證伺服器。如果伺服器不能被認證,那麼客戶將被提示乙個警告,並且通知客戶不能建立加密和認證連線。如果伺服器被成功認證,客戶端將進入第四步。

4. 使用到目前為止的所有資料生成握手過程。客戶端(和伺服器合作之下)為會話建立乙個pre-master secret(乙個用在對稱加密金鑰生成中的 46 位元組的隨機數字)。使用伺服器的公共金鑰加密(在第二步的伺服器的證書中獲得公共金鑰),然後把這個加了密的pre-master secret傳送給伺服器。

5. 如果伺服器請求客戶端認證(在握手過程是可選項),客戶端也需要標記乙個特殊的資料報,客戶端和伺服器都知道的。在這個過程中,客戶端傳送乙個通過pre-master secret加密過的標記的資料報和客戶端自己的證書給伺服器。

6. 如果伺服器請求了客戶端的認證,那麼伺服器就要嘗試去認證客戶端。(具體的看客戶端認證細節)如果客戶端認證不通過,會話將被終止。如果客戶端被認證通過,伺服器將使用私有金鑰解密pre-master secret,然後執行一系列步驟生成master secret

7. 客戶端和伺服器端使用master secret去生成會話金鑰。會話密碼是在ssl 會話的時候對稱金鑰被用來加密,解密資訊校驗資訊完整性的金鑰。(檢查會話過程中任何資料改變)

8. 客戶端傳送乙個資訊給伺服器端,通知伺服器端未來的資訊將被會話密碼加密,然後客戶端傳送乙個單獨(加密)資訊指示客戶端部分的握手會話已經完成。

9. 伺服器傳送乙個資訊通知客戶端未來的會話資訊將被會話密碼加密,然後伺服器傳送乙個單獨(加密)資訊指示伺服器部分的握手部分已經完成

10. ssl握手結束,開始正式會話。客戶端和伺服器端使用對稱會話金鑰加密解密資料並且互相傳送校驗完整性。

11. 這是乙個正常的操作過程和加密隧道。在任何時候,當內部或者外部觸發條件(不是自動就是使用者手動),任何一端就要從新協商會話,所有的流程將從新開始。

有幾個問題我在學過之後一直在考慮:

1. 如果中間的路由從雙方傳送證書的時候就開始監聽的話呢,是否就可以竊取內容了?

答:否,伺服器那邊有乙個非對稱金鑰加密系統,首先他將公開金鑰傳送給客戶端,客戶端接收之後為會話建立乙個pre-master secret(乙個用在對稱加密金鑰生成中的 46 位元組的隨機數字),然後用伺服器傳送過來的公開金鑰加密,然後將加密後的內容傳送給伺服器,這兩個階段,如果有人監聽,即使竊取到也沒辦法,首先公開金鑰對所有人其實都是公開的,用公開金鑰加密後的內容是非常非常難解密的,只有用伺服器自己有的私有金鑰解密才可以。伺服器獲取到46位元組的隨機數字之後,通過這個來對將來要傳送的加密內容加密,而這個解密方法之後對應的那個客戶端才知道,鑰匙是通過公開金鑰加密的,其他人都不知道,所有就保證了內容的安全性。

3. 用ssl協議之後,我們輸入使用者名稱密碼就絕對安全了嗎?

答:否,ssl協議只能保證server和client傳輸之間的安全,如果你的電腦有木馬病毒,例如監聽鍵盤,瀏覽器惡意外掛程式等,ssl可管不了這些。。。還有如果server收到攻擊,它的資訊流失丟掉,這也不能保證的。

SSL協議 HTTPS協議

ssl secure socket layer安全套接層 tls transport layer security傳輸層安全,是被標準化的ssl pki 公鑰基礎設施 pki提供電子簽名證書,伺服器購買證書 網路伺服器通過證書被認證,客戶端則不需要認證。tls的三個階段 1.協商金鑰演算法 2.通過...

HTTPS中SSL協議總結

ssl全稱secure socket layer,安全套接字層。ssl用來保證web瀏覽器與web伺服器交換資訊的安全性,保證傳輸過程中訊息的加密性。雜湊演算法驗證資料完整性 傳送的資料中包含經過雜湊演算法的到的雜湊值。當接收到資料時,可以通過相應的雜湊演算法再次對資料進行計算,將計算得到的雜湊值與...

https協議 ssl協議以及證書生成

一 https協議 https是一安全為目標的httpt通道,簡單講師http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。http和https的區別 超文字傳輸協議http協議被用於在瀏覽器和 伺服器之間傳遞資訊。http協議以明文方式傳送內容,...