HTTP協議與HTTPS協議
一、http與https的區別:
1、默認埠不同:http是80埠,https443埠;
2、安全系數不同:http采用的明文傳輸,無安全性可言,
https采用ssl/tls加密傳輸,保證了很大程度的安全性;
3、連接方式不同:
A)、http連接簡單,是無狀態連接,即同一客戶端發送的請求,在服務器端是沒有背景關系關系的,
因為標準的http協議指的是不包括cookies, session等機制的,
PS: cookies, session等機制是在無狀態化的程序中,加入狀態化的資訊,向狀態化過渡的一個手段,
B)、https是由http+SSL組成的,可進行加密傳輸,身份認證的網路協議,
4、https協議需要CA證書(證書授權中心的),免費的證書較少,因此成本更多,
而且CA機構頒發的SSL證書是有有效期的,網站所有者必須按時更新證書,
5、HTTPS協議因增加了握手、記錄、警報機制,會更耗資源,
二、HTTPS中的SSL加密協議的個人總結:
1)、加密方式的理解:
SSL采取了非對稱密鑰與對稱密鑰的混合加密方式,保證資料傳輸的安全性,
SSL的握手階段: 使用的是非對稱加密,可以理解為加密與解密用的密碼不同,如客戶端用的公共密碼,
而服務器用的是私有密碼(客戶端與服務器是多對一的關系)
SSL的傳輸階段: 使用的是對稱加密,可以理解為加密與解密用的密碼一樣,
在SSL協議中,使用的是通過加密演算法,根據(客戶端的亂數C1+服務端的亂數S+客戶端的亂數C2)生成的一個密鑰,
2)、握手階段簡述:

1)客戶端將它支持的演算法串列+用于密鑰產生程序的亂數C1,發送給服務器;
2)服務器從客戶端的演算法串列中,確認一種加密演算法+帶有公用密鑰的證書+服務器的亂數S,發回給客戶端;
3)客戶端對服務器的證書進行驗證后,取出公鑰,同時產生客戶端的第二個亂數C2(官方叫pre_master_secret),
這個C2會在采用公鑰加密后,發給服務器;
4)服務器根據自己的私鑰,提取到了C2這個亂數,此時,客戶端與服務器都已經交換知道了三個亂數(C1+S+C2),
都可以通過第2步約定的演算法,得到一個對稱密鑰,后續傳輸資料都可以采用這個對稱密鑰加密傳輸,
至此,握手階段基本完成,此時客戶端與服務器,已經可以愉快安全的用對稱密鑰加密資料,進行傳輸了,
但是,有些書籍或者論壇上,但還需補充后面2步:
5)客戶端將所有握手資訊的MAC值發送給服務器;
6)客戶端將所有握手資訊的MAC值發送給服務器;
MAC的使用可以防止握手本身被攻擊,保證資訊的完整性,保證訊息在發送以后和接收以前沒有被篡改,
PS: MAC=HASH(shared-key,serial-num,data),使用HASH散列演算法,生成MAC值
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282572.html
標籤:其他
上一篇:Resource interpreted as Stylesheet but transferred with MIME type text/html
