HTTPS加密傳輸過程

2022-01-10 13:34:51 字數 3047 閱讀 6525

https全稱hyper text transfer protocol over securesocket layer,是以安全為目標的http通道,在http的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。httpshttp的基礎下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl

http是應用層協議,預設執行在80埠,是一種不安全的傳輸協議,經其傳輸的資料都是未加密的明文資料,可以被中間人攻擊,獲取到你的網路傳輸資料,這也就是盡量不要使用公共場所wifi的原因。

https是應用層協議,預設執行在443埠,是一種安全的傳輸協議,通過在http層與運輸層的tcp直接加入乙個加密/身份驗證層來保證安全傳輸。

ssl安全套接層secure sockets layer,位於tcp/ip協議與各種應用層協議之間,為資料通訊提供安全支援。ssl協議可分為兩層:

ssl記錄協議ssl record protocol:它建立在可靠的傳輸協議如tcp之上,為高層協議提供資料封裝、壓縮、加密等基本功能的支援。

ssl握手協議ssl handshake protocol:它建立在ssl記錄協議之上,用於在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密金鑰等。

tls傳輸層安全性協議transport layer security用於在兩個通訊應用程式之間提供保密性和資料完整性,其由tls記錄協議和tls握手協議組成。tls1.0即為ssl3.0的標準化版本,ssl最初由網景netscape提出研發,在ssl3.0時由國際網際網路工程任務組ietf進行了標準化並新增了少量機制,並更名為tls1.0

簡單來說對稱加密的加密金鑰和解密金鑰是相同的,對稱加密的效率要比非對稱加密高。

簡單來說非對稱加密的加密金鑰與解密金鑰是不同的,需要一把公鑰與一把私鑰,私鑰不能被其他任何人知道,公鑰則可以隨意公開。公鑰加密,私鑰解密;私鑰數字簽名,公鑰驗證。

由於公鑰是放在伺服器的,在建立連線的過程中將公鑰傳輸到使用者,但是如何避免中間人攻擊,即在傳輸公鑰的過程中避免劫持,於是引入第三方認證權威機構ca,大多數作業系統的ca證書是預設安裝的,ca也擁有乙個公鑰和私鑰。任何人都可以得到ca的證書,其包含公鑰,用以驗證它所簽發的證書。ca為服務申請者頒發證書,在ca判明申請者的身份後,便為他分配乙個公鑰,並且ca將該公鑰與申請者的身份資訊綁在一起,並為之簽字後,便形成證書發給申請者。如果乙個使用者想鑑別乙個證書的真偽,他就用ca的公鑰對那個證書上的簽字進行驗證,一旦驗證通過,該證書就被認為是有效的。證書實際是由證書簽證機關ca簽發的對使用者的公鑰的認證。

首先tcp三次握手建立鏈結,這是資料傳輸基礎,在此之上開始ssl

客戶端首先傳送client hello開始ssl通訊,報文中包含客戶端支援的ssl版本、隨機值random1、加密演算法以及金鑰長度等。

伺服器傳送server hello,和客戶端一樣,在報文中包含ssl版本、隨機值random2以及加密元件,此後服務端將證書也傳送到客戶端。

此時客戶端需要對服務端傳送的證書進行驗證,通過作業系統內建的ca證書,將伺服器傳送的證書的數字簽名進行解密,並將證書的公鑰進行相同演算法的hash與解密的數字簽名解密的內容進行對比,驗證證書是否合法有效,是否被劫持更換。

客戶端驗證證書合法,然後生成乙個隨機值random3,用公鑰對random3進行加密,生成pre-master key,客戶端以client key exchange報文將pre-master key傳送到服務端,此後傳送change cipher spec報文表示此後資料傳輸進行加密傳輸。

服務端將pre-master key用自己的私鑰解密為random3,服務端傳送change cipher spec報文表示此後資料傳輸進行加密傳輸。

此時客戶端與服務端都擁有三個隨機字串,且random3是密文傳輸的,是安全狀態的,此時則可以使用這三個字串進行對稱加密傳輸。由於非對稱加密慢,不能每次傳輸資料都進行非對稱加密,所以使用非對稱加密將金鑰協商好然後使用對稱加密進行資料傳輸。

此時便正常進行http資料傳輸,但是由於ssl加密的作用,此時的http傳輸便是安全的,此為https的傳輸過程,其中2356也被稱為ssl四次握手。

https加密傳輸詳解

https採用對稱加密與非對稱加密的混合加密方式 混合加密方式原理 1.服務端將非對稱加密的公鑰傳送給客戶端 2.客戶端拿著服務端發來的公鑰,對對稱加密的key做加密並發給服務端 3.服務端拿著自己的私鑰對發來的密文解密,從來獲取到對稱加密的key 4.二者利用對稱加密的key對需要傳輸的訊息做加解...

https進行加密傳輸

ssl握手協議的過程 握手階段分成以下五步 第一步,客戶端給出協議版本號 乙個客戶端生成的隨機數 client random 以及客戶端支援的加密方法。第二步,伺服器確認雙方使用的加密方法,並給出數字證書 以及乙個伺服器生成的隨機數 server random 第三步,客戶端確認數字證書有效,然後生...

https 協議傳輸過程學習

服務端儲存一對公鑰與私鑰。是用來進行非對稱加密使用的。私鑰不能將其洩漏,公鑰可以傳輸給任何人。瀏覽器向伺服器發起https請求,向伺服器的443埠鏈結。伺服器將公鑰傳送給瀏覽器!瀏覽器收到公鑰後,將驗證公鑰合法性。如果公鑰不合法,將無法發起https傳輸。換言之,驗證https數字證書。證書合法,瀏...