來源:算法
1、Http安全
HyperText Transfer Protocol,超文本傳輸協議,是互聯網上使用最普遍的一種協議,全部WWW文件必須遵循的標準。HTTP協議傳輸的數據都是未加密的,也就是明文的,所以使用HTTP協議傳輸隱私信息很是不安全。服務器
使用TCP端口爲:80加密
2、Https設計
Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本傳輸協議,網景公式設計了SSL(Secure Sockets Layer)協議用於對Http協議傳輸的數據進行加密,保證會話過程當中的安全性。3d
使用TCP端口默認爲443blog
3、SSL協議加密方式域名
SSL協議即用到了對稱加密也用到了非對稱加密(公鑰加密),在創建傳輸鏈路時,SSL首先對對稱加密的密鑰使用公鑰進行非對稱加密,鏈路創建好以後,SSL對傳輸內容使用對稱加密。class
對稱加密原理
速度高,可加密內容較大,用來加密會話過程當中的消息
公鑰加密
加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的密鑰
4、單向認證
Https在創建Socket鏈接以前,須要進行握手,具體過程以下:
一、客戶端向服務端發送SSL協議版本號、加密算法種類、隨機數等信息。
二、服務端給客戶端返回SSL協議版本號、加密算法種類、隨機數等信息,同時也返回服務器端的證書,即公鑰證書
三、客戶端使用服務端返回的信息驗證服務器的合法性,包括:
證書是否過時
髮型服務器證書的CA是否可靠
返回的公鑰是否能正確解開返回證書中的數字簽名
服務器證書上的域名是否和服務器的實際域名相匹配
驗證經過後,將繼續進行通訊,不然,終止通訊
四、客戶端向服務端發送本身所能支持的對稱加密方案,供服務器端進行選擇
五、服務器端在客戶端提供的加密方案中選擇加密程度最高的加密方式。
六、服務器將選擇好的加密方案經過明文方式返回給客戶端
七、客戶端接收到服務端返回的加密方式後,使用該加密方式生成產生隨機碼,用做通訊過程當中對稱加密的密鑰,使用服務端返回的公鑰進行加密,將加密後的隨機碼發送至服務器
八、服務器收到客戶端返回的加密信息後,使用本身的私鑰進行解密,獲取對稱加密密鑰。 在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通訊過程當中信息的安全。
5、雙向認證
雙向認證和單向認證原理基本差很少,只是除了客戶端須要認證服務端之外,增長了服務端對客戶端的認證,具體過程以下:
一、客戶端向服務端發送SSL協議版本號、加密算法種類、隨機數等信息。
二、服務端給客戶端返回SSL協議版本號、加密算法種類、隨機數等信息,同時也返回服務器端的證書,即公鑰證書
三、客戶端使用服務端返回的信息驗證服務器的合法性,包括:
證書是否過時
髮型服務器證書的CA是否可靠
返回的公鑰是否能正確解開返回證書中的數字簽名
服務器證書上的域名是否和服務器的實際域名相匹配
驗證經過後,將繼續進行通訊,不然,終止通訊
四、服務端要求客戶端發送客戶端的證書,客戶端會將本身的證書發送至服務端
五、驗證客戶端的證書,經過驗證後,會得到客戶端的公鑰
六、客戶端向服務端發送本身所能支持的對稱加密方案,供服務器端進行選擇
七、服務器端在客戶端提供的加密方案中選擇加密程度最高的加密方式
八、將加密方案經過使用以前獲取到的公鑰進行加密,返回給客戶端
九、客戶端收到服務端返回的加密方案密文後,使用本身的私鑰進行解密,獲取具體加密方式,然後,產生該加密方式的隨機碼,用做加密過程當中的密鑰,使用以前從服務端證書中獲取到的公鑰進行加密後,發送給服務端
十、服務端收到客戶端發送的消息後,使用本身的私鑰進行解密,獲取對稱加密的密鑰,在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通訊過程當中信息的安全。
-END-
不錯,轉發分享一下吧