淺談HTTPS協(xié)議

安全套接字(Secure Socket Layer,SSL)協(xié)議是Web瀏覽器與Web服務(wù)器之間安全交換信息的協(xié)議。
** SSL協(xié)議的三個特性:**
? 保密:在握手協(xié)議中定義了會話密鑰后,所有的消息都被加密。
? 鑒別:可選的客戶端認(rèn)證,和強制的服務(wù)器端認(rèn)證。
? 完整性:傳送的消息包括消息完整性檢查(使用MAC)。

Paste_Image.png

HTTPS基于SSL的HTTP協(xié)議。
HTTPS使用與HTTP不同的端口(,一個加密、身份驗證層(HTTP與TCP之間))。
提供了身份驗證與加密通信方法,被廣泛用于互聯(lián)網(wǎng)上安全敏感的通信。

說一說http以及與https的區(qū)別

HTTP是一個屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。它于1990年提出,經(jīng)過幾年的使用與發(fā)展,得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規(guī)范化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經(jīng)提出。
HTTP協(xié)議的主要特點可概括如下:
1.支持客戶/服務(wù)器模式。
2.簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。
3.靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。
5.無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時它的應(yīng)答就較快。
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。 它是一個URI scheme(抽象標(biāo)識符體系),句法類同http:體系。用于安全的HTTP數(shù)據(jù)傳輸。https:// URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默認(rèn)端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統(tǒng)的最初研發(fā)由網(wǎng)景公司(Netscape)進行,并內(nèi)置于其瀏覽器Netscape Navigator中,提供了身份驗證與加密通訊方法?,F(xiàn)在它被廣泛用于萬維網(wǎng)上安全敏感的通訊,例如交易支付方面。

區(qū)別就是一個安全,一個效率高:

HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的,因此使用HTTP協(xié)議傳輸隱私信息非常不安全,為了保證這些隱私數(shù)據(jù)能加密傳輸,于是網(wǎng)景公司設(shè)計了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進行加密,從而就誕生了HTTPS。
HTTPS加密、加密、及驗證過程,如下圖所示:

Paste_Image.png

簡單來說,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全。
HTTPS和HTTP的區(qū)別主要如下:
1、https協(xié)議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
HTTPS交互過程:

  1. 客戶端請求建立SSL連接,并將自己支持的一套加密規(guī)則發(fā)送給網(wǎng)站。
  2. 網(wǎng)站從中選出一組加密算法與HASH算法,并將自己的身份信息以證書的形式發(fā)回給瀏覽器。證書里面包含了網(wǎng)站地址,加密公鑰,以及證書的頒發(fā)機構(gòu)等信息
  3. 獲得網(wǎng)站證書之后瀏覽器要做以下工作:
    ? 驗證證書的合法性
    ? 如果證書受信任,瀏覽器會生成一串隨機數(shù)的密碼,并用證書中提供的公鑰加密。
    ? 使用約定好的HASH計算握手消息,
    ? 使用生成的隨機數(shù)對消息進行加密,最后將之前生成的所有信息發(fā)送給網(wǎng)站。
  4. 網(wǎng)站接收瀏覽器發(fā)來的數(shù)據(jù)之后要做以下的操作:
    ? 使用自己的私鑰將信息解密取出密碼
    ? 使用密碼解密瀏覽器發(fā)來的握手消息,并驗證HASH是否與瀏覽器發(fā)來的一致。
    ? 使用密碼加密一段握手消息,發(fā)送給瀏覽器
  5. 瀏覽器解密并計算握手消息的HASH,如果與服務(wù)端發(fā)來的HASH一致,此時握手結(jié)束。
  6. 使用隨機密碼對稱加密算法對傳輸?shù)臄?shù)據(jù)加密,傳輸。
  1. 密與HASH算法如下:
    
  1. 非對稱加密算法:RSA,DSA/DSS,用于在握手過程中加密生成的密碼。
    
  2. 對稱加密算法:AES,RC4,3DES,用于對真正傳輸?shù)臄?shù)據(jù)進行加密。
    
  3. HASH算法:MD5,SHA1,SHA256,驗證數(shù)據(jù)的完整性。
    
  1. HTTP與HTTPS的區(qū)別:
    
  1. https協(xié)議需要申請證書。
    
  2. http是超文本傳輸協(xié)議,明文傳輸;https使用的是具有安全性的SSL加密傳輸協(xié)議。
    
  3. http端口80,;https端口443。
    
  4. http連接簡單無狀態(tài);https由SSL+HTTP協(xié)議構(gòu)件的可進行加密傳輸、身份驗證的網(wǎng)絡(luò)協(xié)議。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容