標籤:
HTTPS其實是有兩部分組成:HTTP + SSL / TLS,
也就是在HTTP上又加了一層處理加密資訊的模組。服務端和用戶端的資訊傳輸都會通過TLS進行加密,所以傳輸的資料都是加密後的資料
1. 用戶端發起HTTPS請求
這個沒什麼好說的,就是使用者在瀏覽器裡輸入一個https網址,然後串連到server的443連接埠。
2. 服務端的配置
採用HTTPS協議的伺服器必須要有一套數位憑證,可以自己製作,也可以向組織申請。區別就是自己頒發的認證需要用戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的認證則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費服務)。這套認證其實就是一對公開金鑰和私密金鑰。如果對公開金鑰和私密金鑰不太理解,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
3. 傳送認證
這個認證其實就是公開金鑰,只是包含了很多資訊,如認證的頒發機構,到期時間等等。
4. 用戶端解析認證
這部分工作是有用戶端的TLS來完成的,首先會驗證公開金鑰是否有效,比如頒發機構,到期時間等等,如果發現異常,則會彈出一個警告框,提示認證存在問題。如果認證沒有問題,那麼就產生一個隨即值。然後用認證對該隨機值進行加密。就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容。
5. 傳送加密資訊
這部分傳送的是用認證加密後的隨機值,目的就是讓服務端得到這個隨機值,以後用戶端和服務端的通訊就可以通過這個隨機值來進行加密解密了。
6. 服務段解密資訊
服務端用私密金鑰解密後,得到了用戶端傳過來的隨機值(私密金鑰),然後把內容通過該值進行對稱式加密。所謂對稱式加密就是,將資訊和私密金鑰通過某種演算法混合在一起,這樣除非知道私密金鑰,不然無法擷取內容,而正好用戶端和服務端都知道這個私密金鑰,所以只要密碼編譯演算法夠彪悍,私密金鑰夠複雜,資料就夠安全。
7. 傳輸加密後的資訊
這部分資訊是服務段用私密金鑰加密後的資訊,可以在用戶端被還原
8. 用戶端解密資訊
用戶端用之前產生的私密金鑰解密服務段傳過來的資訊,於是擷取瞭解密後的內容。整個過程第三方即使監聽到了資料,也束手無策。
--EOF--
來源:http://blog.csdn.net/sean_cd/article/details/6966130
https工作原理