本文主要講解http與https的區別,以及https是怎樣加密來保證安全的。
首先講這倆個協議的簡單區別:
http:超文字傳輸協議。
https:安全套接字層超文字傳輸協議http+ssl
http:客戶端和伺服器端傳遞的是明文的訊息。
https:將明文進行加密後再在客戶端和伺服器之前進行傳遞。
http採用80埠,而https採用443埠。
https需要申請證書。
https採用非對稱加密和對稱加密兩種加密方式來保證傳輸資訊的安全性:
非對稱加密:用公鑰和私鑰來加解密(有同學這裡不懂的話可以看看資料)。
對稱加密:加密解密都用同一套秘鑰。
注:非對稱加密更加安全,對稱加密速度更快。
https的請求流程:
客戶端(瀏覽器)向伺服器請求https連線。
伺服器返回證書(公鑰)到客戶端。
客戶端隨機的秘鑰a(用於對稱加密)。
客戶端用公鑰對a進行加密。
客戶端將加密a後的密文傳送給伺服器。
伺服器通過私鑰對密文進行解密得到對稱加密的秘鑰。
客戶端與伺服器通過對稱秘鑰加密的密文通訊。
上述過程中第2步驟中是存在風險的,因為公鑰是暴露出來的,當公鑰被中間人非法截獲時,同時將公鑰替換成中間人自己的公鑰傳送給客戶端,從而得到對稱加密的秘鑰,進而偽裝與客戶端通訊。
為了解決這種問題,就引入了數字證書與數字簽名
所以在第2步驟時,伺服器傳送了乙個ssl證書給客戶端,ssl證書中包含了具體的內容有證書的頒發機構、有效期、公鑰、證書持有者、簽名,通過第三方的校驗保證身份的合法。
一、首先客戶端會讀取證書所有者、有效期等資訊進行校驗。
二、客戶端(瀏覽器)開始查詢作業系統中已內建的受信任的證書發布機構ca,與伺服器發過來的證書的頒發ca比對,用於驗證證書是否為合法機構頒發。
三、如果找不到,瀏覽器就會報錯。
四、如果找到了,就會取出其中的公鑰,對證書內的簽名進行解密。
五、使用相同的hash演算法對簽名進行去摘要並與伺服器發來的摘要進行對比。
六、如果對比一致,則合法,這樣就得到公鑰了。
http協議之面試題
q1 什麼是http socket tcp udp?http 全稱是超文字傳輸協議,是乙個應用層的協議。用於客戶端和服務端之間進行通訊。tcp udp 都是傳輸層協議。tcp是可靠的,我們常說的三次握手連線,四次握手斷開都說 的是tcp,而udp是不可靠的。socket 則是從傳輸層抽象出來的介面層...
http協議get 大廠面試必備之http詳解
協議是指計算機通訊網路中兩台計算機之間進行通訊所必須共同遵守的規定或規則,超文字傳輸協議 http 是一種通訊協議,它允許將超文字標記語言 html 文件從web伺服器傳送到客戶端的瀏覽器 目前我們使用的是http 1.1 版本 當我們開啟瀏覽器,在位址列中輸入url,然後我們就看到了網頁。原理是怎...
面試題 HTTP和HTTPS
https是以安全為目標的通道,是http的安全版。https的安全基礎是tls tls前身是ssl ssl。ssl協議位於tcp ip協議與各種應用層協議之間,為資料通訊提供安全支援。https協議需要到ca申請證書。http是明文傳輸,https是具有安全性的ssl加密傳輸協議。http使用80...