一、對稱加密
AES加密
AES加密是一種高級加密標(biāo)準(zhǔn),是一種區(qū)塊加密標(biāo)準(zhǔn)。它是一個對稱密碼,就是說加密和解密用相同的密鑰。WPA/WPA2經(jīng)常用的加密方式就是AES加密算法。
二、非對稱加密
RSA加密算法是一種非對稱加密算法,非對稱加密算法需要兩個密鑰:公共密鑰和私有密鑰。公鑰和私鑰是配對的,用公鑰加密的數(shù)據(jù)只有配對的私鑰才能解密。
RSA對加密數(shù)據(jù)的長度有限制,一般為密鑰的長度值-11,要加密較長的數(shù)據(jù),可以采用數(shù)據(jù)截取的方法,分段加密。
使用場景:
文件或數(shù)據(jù)在本地使用公鑰或私鑰加密,加密后的數(shù)據(jù)傳送到服務(wù)器,服務(wù)器使用同一套密鑰中的私鑰或者公鑰進(jìn)行解密。
一、Https是什么?
1.HTTPS概念
HTTPS并不是一個單獨的協(xié)議,而是對工作在一加密連接(SSL/TLS)上的常規(guī)HTTP協(xié)議。通過在TCP和HTTP之間加入TLS來加密。
2.SSL/TLS協(xié)議
SSL協(xié)議,是一種安全傳輸?shù)膮f(xié)議,TLS是SSL v3.0的升級版。
4.HTTPS傳輸速度
1)通信慢
2)SSL必須進(jìn)行加密處理,比HTTP消耗更多資源
二、TLS/SSL握手
1.密碼學(xué)原理
1)對稱加密
加密數(shù)據(jù)用的秘鑰和解密數(shù)據(jù)用的密鑰是一樣的。
2)不對稱加密
私有密鑰:一方保管
共有密鑰:雙方公有
RSA算法。
2.數(shù)字證書
1)就是互聯(lián)網(wǎng)通訊中標(biāo)志通訊各方身份信息的一串?dāng)?shù)字,也是一個文件。
2)為什么有數(shù)字證書?
3)數(shù)字證書的頒發(fā)過程?
3.SSL與TLS握手的過程?
使用非對稱加密,隨機(jī)數(shù)不能被隨便破解
Https雙向認(rèn)證的流程:
a.?客戶端向服務(wù)端發(fā)送SSL版本等信息
b.?服務(wù)端給客戶端返回SSL版本,同時也返回服務(wù)器端的證書
c.??客戶端使用服務(wù)的返回的信息驗證服務(wù)器的合法性,
a)?包括:證書是否過期,發(fā)型服務(wù)器證書的CA是否可靠,返回的公鑰能正確解開返回證書中的數(shù)字簽名,服務(wù)器證書上帝域名是否和服務(wù)器的實際域名想匹配
b)?驗證通過后,將進(jìn)行通信,否則終止通信
d.?客戶端將自己的證書和公鑰發(fā)送給服務(wù)端
e.?驗證客戶端的證書,通過驗證后,會獲得客戶端的公鑰
f.?客戶端向服務(wù)端發(fā)送自己可以支持的對稱加密方案給服務(wù)端,讓服務(wù)端進(jìn)行選擇
g.?服務(wù)端在客戶端提供的加密方案中選擇加密程度高的加密方式
h.?將加密方案通過使用之前獲取到的公鑰進(jìn)行加密,返回給客戶端
i.?客戶端收到服務(wù)端返回的加密方案后,使用自己的私鑰進(jìn)行解密,獲取具體的加密方式,最后,產(chǎn)生加密方式的隨機(jī)碼,用作過程中的密鑰,使用之前從客戶端證書中獲取到的公鑰進(jìn)行加密后,發(fā)送嘿服務(wù)端
j.?服務(wù)端收到客戶端發(fā)來的消息后,使用私鑰對加密信息進(jìn)行加密,獲得對稱加密的密鑰
k.?對稱加密,確保通信安全

總結(jié):https實際上就是在TCP層與http層之間加入了SSL/TLS來為上層的安全保駕護(hù)航,主要用到了對稱加密,非對稱加密,證書等技術(shù)進(jìn)行客戶端與服務(wù)器的數(shù)據(jù)加密傳輸,最終達(dá)到保證整個通信的安全性。