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協議版本號 加密演算法種類 隨機數等資訊,同時也返回伺服器端的證書,即公鑰證書 客戶端使用服務端返回的資訊驗證伺服器的合法性,包括 驗證通過後,將繼續進行通訊,否則,終止通訊 客戶端向服務端傳送自己所...