HTTPS是在原h(huán)ttp的基礎(chǔ)上加上一層用于數(shù)據(jù)加密领追、解密、身份認(rèn)證的安全層TLS/SSL响逢;
通訊數(shù)據(jù)明文傳輸绒窑,速度快,不安全舔亭;
通訊數(shù)據(jù)加密傳輸些膨,但是速度可能會(huì)稍微慢一點(diǎn)。
對(duì)稱加密速度快钦铺,加密時(shí)CPU資源消耗少订雾;
非對(duì)稱加密對(duì)待加密的數(shù)據(jù)的不能太長(zhǎng),傳輸比對(duì)稱加密慢矛洞;
因此HTTPS選擇了對(duì)稱加密進(jìn)行數(shù)據(jù)傳輸洼哎。
image.png
TLS加密有三對(duì)秘鑰對(duì):
- CA證書(shū)(非對(duì)稱加密秘鑰對(duì)),公鑰存在于各大瀏覽器和OS中
- 服務(wù)端生成的非對(duì)稱加密秘鑰對(duì)
- 客戶端生成的對(duì)稱加密秘鑰對(duì)
加密過(guò)程
- 服務(wù)端向權(quán)威機(jī)構(gòu)買(mǎi)來(lái)CA證書(shū)(非對(duì)稱CA)。
- 客戶端向服務(wù)端申請(qǐng)非對(duì)稱加密的秘鑰的公鑰噩峦。
- 服務(wù)端生成非對(duì)稱加密的秘鑰對(duì)S
- 服務(wù)端將公鑰(S.PUB)用CA證書(shū)的私鑰(CA.PRI)進(jìn)行加密后發(fā)送給客戶端锭沟。
- 客戶端用CA證書(shū)的公鑰(CA.PUB)解密后取得服務(wù)端的公鑰(S.PUB)
- 客戶端生成對(duì)稱加密秘鑰對(duì)C
- 客戶端用服務(wù)端的公鑰(S.PUB)對(duì)對(duì)稱加密的秘鑰對(duì)(C)進(jìn)行加密
- 客戶端將密文發(fā)送給服務(wù)端
- 服務(wù)端接收到密文用S.PRI解密后得到對(duì)稱加密秘鑰對(duì)C
- 服務(wù)端和客戶端可以用C愉快的安全的通訊了
image.png