HTTPS連線建立過程 單向 雙向

2022-03-19 10:28:54 字數 3107 閱讀 2008

ssl(secure sockets layer 安全套接字協議),及其繼任者傳輸層安全(transport layer security,tls)是為網路通訊提供安全及資料完整性的一種安全協議。tls與ssl在傳輸層(如tcp)與應用層(如http)之間對網路連線進行加密。

https (全稱:hyper text transfer protocol over securesocket layer),是以安全為目標的 http 通道,在http的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性 。https 在http 的基礎下加入ssl 層

https的重點如下

客戶端及伺服器的有效性及真實性,確保沒有第三方監聽,通過ca機構及非對稱加密保證

tls握手及金鑰協商過程使用非對稱加密,加強身份驗證及防監聽

由於非對稱加密的效能極差,所以僅在握手階段使用非對稱加密

後續訊息通過協商的金鑰進行加密,防篡改和防監聽

身份認證

client hello 傳送客戶端支援的加密協議 及tls版本 客戶端隨機數

sever hello 傳送伺服器選擇的加密協議及選擇的tls版本,伺服器隨機數

certificate 伺服器傳送自己的證書

金鑰協商

server key exchange 伺服器傳送協商對稱金鑰過程中的必要引數

server hello done

client key exchange 客戶端傳送協商金鑰過程中的必要引數(使用服務端證書中的公鑰加密)

client change cipher spec

encrypted handshake message

new session ticket

server change cipher spec

encrypted handshake message

https雙向認證指除了客戶端需要驗證伺服器之外,伺服器也需要驗證客戶端

ssl_certificate      /etc/nginx/cert2/server.crt; #伺服器證書位置

ssl_certificate_key /etc/nginx/cert2/server.private;#伺服器證書私鑰檔案位置

ssl_client_certificate /etc/nginx/cert2/ca.crt;#用於客戶端證書校驗的證書檔案位置,意為客戶端證書必須由此證書對應的ca機構簽發

ssl_verify_client on;#是否開啟客戶端校驗

ssl_verify_depth 2;#客戶端校驗深度,如果為1的話,代表客戶端證書必須由頂級ca簽發

演算法組合

金鑰交換

身份認證

是否會遭遇中間人攻擊

是否具備前向保密

ssl 2.0

ssl 3.0

tls 1.0

tls 1.1

tls 1.2

tls 1.3(草案)

rsarsa

rsa否否是

是是是是

否dh-rsa

dhrsa否否

否是是是

是否dh-dsa

dhdsa否否

否是是是

是否dhe-rsa

dhersa否是

否是是是

是是dhe-dsa

dhedsa否是

否是是是

是是ecdh-rsa

ecdh

rsa否否否

否是是是

否ecdh-ecdsa

ecdh

ecdsa否否

否否是是

是否ecdhe-rsa

dhersa否是

否否是是

是是ecdhe-ecdsa

dheecdsa否是

否否是是

是是pskpsk

psk否否否

否是是是

?psk-rsa

pskrsa否否

否否是是

是?dhe-psk

dhepsk否是

否否是是

是?ecdhe-psk

dhepsk否是

否否是是

是?srpsrp

srp否否否

否是是是

?srp-rsa

srprsa否否

否否是是

是?srp-dsa

srpdsa否否

否否是是

是?dh-anondh無

是否否是

是是是否

ecdh-anon

ecdh無是

否否否是是是否

https建立連線過程

既然要公升級為https協議,那就很有必要知道https的原理是什麼,https是怎麼保證資訊只有通訊雙方能解析而不被第三方截獲導致資訊被竊取 篡改。2.1 原理圖 下面是一張https建立連線的原理圖,下面會對每一步進行說明。https建立連線 2.2 https建立連線過程 2.2.1 客戶端訪...

Https單向認證和雙向認證

原文url 公鑰加密 加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的金鑰 服務端給客戶端返回ssl協議版本號 加密演算法種類 隨機數等資訊,同時也返回伺服器端的證書,即公鑰證書 客戶端使用服務端返回的資訊驗證伺服器的合法性,包括 驗證通過後,將繼續進行通訊,否則,終止通訊 客戶端向服務...

Https單向認證和雙向認證

公鑰加密 加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的金鑰 服務端給客戶端返回ssl協議版本號 加密演算法種類 隨機數等資訊,同時也返回伺服器端的證書,即公鑰證書 客戶端使用服務端返回的資訊驗證伺服器的合法性,包括 驗證通過後,將繼續進行通訊,否則,終止通訊 客戶端向服務端傳送自己所...