首先,我們來說一下http協議的缺點。
主要有一下三條:
1、通訊使用明文,內容可能會被竊聽。
2、通訊方身份無法確認。
3、收到的報文可能已經被修改。
所以我們來採用https來解決以上問題。
http+加密+認證+完整性保護=https
tcp/ip協議族分為四層:應用層,傳輸層,網路層,鏈路層。
首先我們要知道,http是應用層的協議,而https並非應用層的新協議。而是http的通訊介面部分用ssl和tls協議代替。也就是說ssl協議是夾在應用層和傳輸層之間的協議。
接下來講一下ssl協議的機制
加密 我們先來了解一下加密方式:①公開金鑰加密,也叫非對稱加密,採用公開的金鑰進行加密,然後用私有金鑰進行解密。②共享金鑰加密,也叫對稱加密,加密和解密都採用一把金鑰。
https採用了混合加密的機制。
①首先客戶端會生成乙個被稱為pre-master secret的隨機密碼串,將該密碼串用公鑰加密後傳送給服務端,並提示伺服器之後的報文都會用該密碼串生成的共享金鑰進行加密。
②然後伺服器端會用私鑰來解密回來的報文,獲得該隨機密碼串。
③之後的伺服器和客戶端的通訊都採用該密碼串生成的共享金鑰來加密報文,也就是對稱加密。
認證 那麼如何確認客戶端收到的公開金鑰是伺服器指派的那個金鑰呢。
①伺服器會把自己的公開金鑰登入至數字證書認證機構。
②數字證書認證機構用自己的私有金鑰想伺服器的公開密碼部署數字簽名,並頒布公鑰證書。
③客戶端拿到伺服器的公開證書後(包括公開金鑰和數字簽名),向數字證書機構認證,確認數字簽名的正確來確定公開金鑰的真實性。
接著就回到了上面加密的步驟。
完整性
在以上流程中,應用層傳送資料會附帶一種叫mac的報文摘要,mac能查知報文是否被篡改,來確認報文的完整性。
①伺服器會把自己的公開金鑰登入至數字證書認證機構。
②數字證書認證機構用自己的私有金鑰想伺服器的公開密碼部署數字簽名,並頒布公鑰證書。
③客戶端拿到伺服器的公開證書後(包括公開金鑰和數字簽名),向數字證書機構認證,確認數字簽名的正確來確定公開金鑰的真實性。
④首先客戶端會生成乙個被稱為pre-master secret的隨機密碼串,將該密碼串用公鑰加密後傳送給服務端,並提示伺服器之後的報文都會用該密碼串生成的共享金鑰進行加密。
⑤然後伺服器端會用私鑰來解密回來的報文,獲得該隨機密碼串。
⑥之後的伺服器和客戶端的通訊都採用該密碼串生成的共享金鑰來加密報文。
深入理解HTTPS協議
最好對http協議有所了解,不需要太透徹,但是基本概念要知道。如果能懂一些tcp ip 方面的東西就更好了。還不知道tcp三次握手的同學,可以先自行搜尋一下相關知識。這裡為什麼要複習tcp三次握手,因為http鏈結是在這之上的,任何乙個http鏈結,都需要tcp的三次握手的過程,https下面的加密...
深入理解HTTPS通訊原理
一 https簡介 二 https與http的區別 1 https的伺服器需要到ca申請證書,以證明自己伺服器的用途 2 http資訊是明文傳輸,https資訊是密文傳輸 3 http與https的埠不同,乙個是80埠,乙個是443埠 可以說http與https是完全不同的連線方式,https集合了...
介面測試之深入理解HTTPS
首先,在理解https之前需要了解http。http hyper text transfer protocol 是超文字傳輸協議,是在網際網路上廣泛使用的一種資訊傳輸方式,通常瀏覽器與伺服器進行通訊使用的都是http協議。該協議因為其使用簡單 方便,隨著網際網路的發展也同時在壯大。而http協議本身...