標籤:sdn 機構 base64 hello 版本 連接埠號碼 三次 prepare md5加密
閱讀目錄
- 準備工作(對應圖中prepare1234)
- 發起連結
- 最後
關於網路安全加密的介紹可以看之前文章:
1. 網路安全——資料的加密與簽名,RSA介紹
2. Base64編碼、MD5、SHA1-SHA512、HMAC(SHA1-SHA512)
3. When I see you again(DES、AES、RSA、Base64、MD5加密原理介紹,代碼實現)
HTTPS建立過程相當複雜,為,可以有整體認識,一般我們編程知道這些已足夠。
如果你想仿照HTTPS實作類別似加密,可以閱讀下具體過程,作為參照
準備工作(對應圖中prepare1234)
可以看到,在用戶端向伺服器發起請求前,還有一些準備工作要做,或者說是有一些工作已經做好了。
- 從CA憑證授權單位,擷取數位憑證。
- 伺服器:產生一對公私密金鑰S.pub,S.pri,私密金鑰自己保留,用於解密和簽名,不能外泄。將公開金鑰S.pub,身份資訊,傳給CA(Certificate Authority)機構;
- CA機構:也有公私密金鑰C.pub,C.pri;由S.pub,身份資訊另外附加CA簽名產生數位憑證(簽名使用C.pri進行簽名)
- 將數位憑證頒發給申請者(伺服器)
- 用戶端(比如我們經常使用的瀏覽器),為了安全性,會內建一份CA根憑證,它包含C.pri,用於對數位憑證驗證
發起連結
https使用的是443連接埠,而http使用的是80連接埠
TCP連接埠號碼是一個2位元組的整型,處於TCP報文段的前四個位元組(2位元組源連接埠號碼,2位元組目的連接埠號碼)。
很明顯範圍是0~65535。其中0~1023具有特殊意義,已經被綁定,比如上面說的443,80,還有ftp的21連接埠。從1024~49151也具有特殊含義,但是還沒有被用完,比如8080連接埠重新導向。剩下的我們就可以隨便使用,自訂了。
其實之前在嵌入式開發中,沒有串連外網,也沒有使用瀏覽器等等這些。所以連接埠完全自訂隨便用,不用擔心衝突:)。
下面的過程為具體詳細一點的過程,如果不想看,可以完全只看即可,對我們平時開發用處並不大。或者你在用wireshark類似的抓包工具時看的抓狂不認識,可以看看(反正我用Charles抓包):
1 用戶端發起請求(對應圖中1)
同樣需要三向交握,建立TCP串連(毫無疑問HTTPS也是基於TCP的)
2 用戶端發送Client Hello包(對應圖中2)
裡面有1970年1月1日到現在的秒數,後面還有一個用戶端發來的隨機數Client.random
如果用戶端與伺服器費盡周折建立了一個HTTPS連結,剛建完就斷了,也太可惜,所以用Session ID將其儲存,如果下次再來可以直接使用之前的連結進行對話(對稱金鑰)。
告訴伺服器,自己支援的密碼編譯演算法種類
3 Server Hello(對應圖中2)
- 隨機數:對應伺服器時間,伺服器sever.random
- Seesion ID,如果用戶端發給伺服器的session ID在服務端有緩衝,服務端會嘗試使用這個session;否則伺服器會啟用新的並返回給用戶端;
- 伺服器挑選一個密文族
4 Certificate(對應圖中2)
伺服器終於發來我們想要的數位憑證,包含了:簽發機構、到期時間、主題名稱、公用密鑰資訊、指紋資訊等等
5 Server Hello Done(對應圖中2)
伺服器發送結束
6 用戶端驗證(對應圖中3)
用戶端從內建的CA根憑證擷取C.pub,對伺服器發送來的數位憑證進行驗簽,如果一致,說明認證是CA頒發的(前提是C.pub是真實的,確實是CA機構的公開金鑰)。然後看看認證是否到期,網域名稱是否匹配
7 產生對稱金鑰(對應圖中4、5、6)
用戶端根據之前的:Client.random + sever.random + pre-master產生對稱金鑰
經過S.pub加密發送給伺服器,之後即可通過對稱金鑰進行通訊。(就是之前我們熟悉的http)
最後
在整個過程中,一共涉及2對公私金鑰組,一對由伺服器產生,主要用於加密,一對由CA產生,主要用於簽名。
為什麼要多一個CA呢?
假設沒有CA,那麼如果伺服器返回的包含公開金鑰的包被hack截取,然後hack也產生一對公私密金鑰,他將自己的公開金鑰發給用戶端。hack得到用戶端資料後,解密,然後再通過伺服器的公開金鑰加密發給伺服器,這樣資料就被hack擷取。
有了CA後,用戶端根據內建的CA根憑證,很容易識別出hack的公開金鑰不合法,或者說hack的認證不合法。
http://www.cnblogs.com/mddblog/p/6948980.html
標題中的新版指:版本 56.0.2924.87 (64-bit)
原來的版本可以點擊綠色的小鎖進入查看頁面,新版的已經改了
新版的進入方式為F12-->Security選項卡(找不到的點右箭頭>>),然後點擊View certificate
圖解HTTPS建立過程