回顧一下 http 協議,http 協議基於 tcp/ip 進行通訊,明文傳輸,安全性方面沒有那麼高。
我們一般看到銀行級的 web 站點全是使用採用 https 方式,目的很簡單就是為了確保安全,下面來總結一下自己對 https 的理解。
https 的誕生最大化的完善了 http 協議傳輸的安全性問題,我們知道瀏覽器最初由網景(netspcape)公司研發推出的,
推出後各種 web 開發的安全性問題不斷爆發,緊接著網景公司推出了採用 ssl/tls 層對 http 明文傳輸的內容進行加密。
那麼如何加密?
首先任何一台基於 https 的 web 伺服器,都需要乙個 w3c 認證的數字證書ca(網際網路證書頒發機構購買而來)
證書伺服器版包含了兩個金鑰(公鑰、私鑰)
公鑰:web 瀏覽器首次請求時,給到瀏覽器,後面的請求全部採用公鑰進行加密;
私鑰:在 web 伺服器上對瀏覽器請求的密文,進行私鑰解密(解析)
/*
如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和乙個鎖頭,只是全世界只有你乙個人有這把鑰匙,你可以把鎖頭給別人,
別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你乙個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
*/
學習 https 的通訊原理機制,先必須了解 http 的通訊機制
---->
#與 ip 目標伺服器建立連線
tcp/ip(三次握手)響應我收到了資訊
#連線成功,組合 http 請求包
請求頭:... w3c 標準請求內容
#請求瀏覽器收到請求解析標準請求包,處理資料響應
#獲取 web 伺服器響應的資料,開始渲染瀏覽器 gui 資訊
https,則是
#region
ssl協議通訊過程
(1) 瀏覽器傳送乙個連線請求給伺服器;伺服器將自己的證書(包含伺服器公鑰s_pukey)、對稱加密演算法種類及其他相關資訊返回客戶端;
(2) 客戶端瀏覽器檢查伺服器傳送到ca證書是否由自己信賴的ca中心簽發。若是,執行4步;否則,給客戶乙個警告資訊:詢問是否繼續訪問。
(3) 客戶端瀏覽器比較證書裡的資訊,如證書有效期、伺服器網域名稱和公鑰s_pk,與伺服器傳回的資訊是否一致,如果一致,則瀏覽器完成對伺服器的身份認證。
(4) 伺服器要求客戶端傳送客戶端證書(包含客戶端公鑰c_pukey)、支援的對稱加密方案及其他相關資訊。收到後,伺服器進行相同的身份認證,若沒有通過驗證,則拒絕連線;
(5) 伺服器根據客戶端瀏覽器傳送到密碼種類,選擇一種加密程度最高的方案,用客戶端公鑰c_pukey加密後通知到瀏覽器;
(6) 客戶端通過私鑰c_prkey解密後,得知伺服器選擇的加密方案,並選擇乙個通話金鑰key,接著用伺服器公鑰s_pukey加密後傳送給伺服器;
(7) 伺服器接收到的瀏覽器傳送到訊息,用私鑰s_prkey解密,獲得通話金鑰key。
(8) 接下來的資料傳輸都使用該對稱金鑰key進行加密。
上面所述的是雙向認證 ssl 協議的具體通訊過程,伺服器和使用者雙方必須都有證書。由此可見,ssl協議是通過非對稱金鑰機制保證雙方身份認證,並完成建立連線,在實際資料通訊時通過對稱金鑰機制保障資料安全性
關於VC MFC的學習心得
通過學習呂鑫的書,對利用mfc編寫 有了一點認識。其實 的最終目的是資料互動與資料操作,其實是與記憶體裡的資料打交道。我們在利用vc 編寫 的時候,需要對資料進行操作。c 語法通常情況下對資料的操作是針對個體的,但是vc 是基於乙個記憶體模組的,這個模組實際上就是乙個類,而模組中儲存的具體的例項資料...
學習心得 我的學習心得
我是乙個已經步入中年的70後,離開校園已經20年了,因為當年的政策因素而未能圓我的大學夢,在20年的工作過程中總是因為缺少一張大學文憑而失去了很多機會,曾經也考慮過自考,但是乙個人去面對的時候總感覺心有餘而力不足。2018年3月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...
學習心得 python學習心得
自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...