本篇文章給大家分享的是有關(guān)如何理解HTTPS以及SSL單向驗證和雙向驗證,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供城區(qū)網(wǎng)站建設(shè)、城區(qū)做網(wǎng)站、城區(qū)網(wǎng)站設(shè)計、城區(qū)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、城區(qū)企業(yè)網(wǎng)站模板建站服務(wù),十年城區(qū)做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
主要介紹HTTPS以及SSL單向驗證和雙向驗證。
HTTPS介紹
HTTPS是一種通過計算機網(wǎng)絡(luò)進行安全通信的傳輸協(xié)議,經(jīng)由HTTP進行通信,利用SSL/TLS建立安全信道,加密數(shù)據(jù)包。HTTPS使用的主要目的是提供對網(wǎng)站服務(wù)器的身份認(rèn)證,同時保護交換數(shù)據(jù)的安全性與完整性。
HTTP介紹
HTTP是超文本傳輸協(xié)議,是一個基于請求與響應(yīng)、無狀態(tài)的、應(yīng)用層的協(xié)議,?;赥CP/IP協(xié)議傳輸數(shù)據(jù),互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,所有的WWW文件都必須遵守這個標(biāo)準(zhǔn)。
SSL/TLS介紹
TLS在傳輸層對網(wǎng)絡(luò)連接進行加密,前身是SSL協(xié)議,由網(wǎng)景公司1995年發(fā)布,用以保障數(shù)據(jù)在Internet上安全地進行傳輸,利用數(shù)據(jù)加密(Encryption)技術(shù),確保數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中不會被截取或竊聽。
數(shù)據(jù)加密用到了對稱加密和非對稱加密,TCP協(xié)議建立傳輸連接時,SSL首先對對稱加密的密鑰使用非對稱加密的公鑰進行非對稱加密,連接建立好之后,SSL對傳輸內(nèi)容使用對稱加密。
對稱加密,速度高,可加密內(nèi)容較大,用來加密會話過程中的消息。
非對稱加密,加密速度較慢,但能提供更好的身份認(rèn)證技術(shù),用來加密對稱加密的密鑰。
OSI模型
HTTPS和HTTP協(xié)議位于應(yīng)用層,SSL\TLS協(xié)議位于傳輸層與應(yīng)用層之間,TCP協(xié)議位于傳輸層,IP協(xié)議位于網(wǎng)絡(luò)層。如下圖所示:
圖 1 協(xié)議模型
SSL單向驗證
客戶端執(zhí)行HTTPS請求時,需要由TCP協(xié)議建立和釋放連接。這就涉及TCP協(xié)議的三次握手和四次揮手。想要了解一文讀懂TCP三次握手工作原理及面試常見問題匯總和一文讀懂TCP四次揮手工作原理及面試常見問題匯總的同學(xué),請點擊鏈接查看。
TCP連接建立好后,對于HTTP而言,服務(wù)器就可以發(fā)送數(shù)據(jù)給客戶端。但是對于HTTPS,它還要運行SSL/TLS協(xié)議,SSL/TLS協(xié)議分兩層,第一層是記錄協(xié)議,主要用于傳輸數(shù)據(jù)的加密壓縮;第二層是握手協(xié)議,它建立在第一層協(xié)議之上,主要用于數(shù)據(jù)傳輸前的雙方身份認(rèn)證、協(xié)商加密算法、交換密鑰。
SSL單向驗證流程:
圖 2 SSL單向驗證流程
SSL單向驗證總共有四步
1) 第一步,客戶端向服務(wù)器端發(fā)起Client Hello,請求內(nèi)容包括:
a. 客戶端支持的SSL/TLS協(xié)議版本列表;
b. 客戶端支持的對稱加密算法列表;
c. 客戶端生成的隨機數(shù)A;
2) 第二步,服務(wù)器端回應(yīng)客戶端Server Hello,回應(yīng)內(nèi)容包括:
a. 雙方都支持的SSL/TLS協(xié)議版本;
b. 雙方都支持的對稱加密算法;
c. 服務(wù)器密鑰庫中的證書;
d. 服務(wù)器端生成的隨機數(shù)B;
3) 第三步,客戶端收到服務(wù)器端回應(yīng),客戶端檢查服務(wù)器端證書是否合法,驗證內(nèi)容如下:
a. 服務(wù)器端證書是否過期;
b. 服務(wù)器端證書是否被吊銷;
c. 服務(wù)器端證書是否可信;
d. 服務(wù)器端證書域名和客戶端請求域名是否一致。
驗證通過后,客戶端回應(yīng)服務(wù)器端,回應(yīng)內(nèi)容包括:
a. 客戶端生成一個"隨機數(shù)C","隨機數(shù)C"也被稱為"pre-master-key",然后使用服務(wù)器端證書中的公鑰加密"隨機數(shù)C",將加密后的"隨機數(shù)C"發(fā)送給服務(wù)器端;
4) 第四步,服務(wù)器端使用密鑰庫中的私鑰解密加密后的"隨機數(shù)C"得到"隨機數(shù)C",此時客戶端和服務(wù)器端都拿到了隨機數(shù)A、隨機數(shù)B、隨機數(shù)C,雙發(fā)通過這3個隨機數(shù)使用相同的密鑰交換算法計算得到相同的對稱加密密鑰,這個對稱加密密鑰就作為客戶端和服務(wù)器端數(shù)據(jù)傳輸時對稱加密使用的密鑰。
服務(wù)器端和客戶端,握手結(jié)束,之后就可以用對稱加密傳輸數(shù)據(jù)了。
SSL雙向驗證
SSL單向驗證過程中,客戶端會驗證自己訪問的服務(wù)器端,服務(wù)器端對客戶端不做驗證。如果服務(wù)器端驗證客戶端,則需要開啟服務(wù)器端驗證,這就是雙向驗證。
SSL雙向驗證和單向驗證的不同之處在于:
a. 第二步中服務(wù)器端第一次回應(yīng)客戶端的Server Hello消息中,會要求客戶端提供客戶端證書;
b. 第三步中客戶端驗證完服務(wù)器端證書后,回應(yīng)的內(nèi)容中,會增加兩個信息:
a) 客戶端證書;
b) 客戶端證書驗證消息(CertificateVerify message):客戶端將之前所有收到的和發(fā)送的消息組合起來,并用hash算法得到一個hash值,然后用客戶端密鑰庫的私鑰對這個hash進行簽名,這個簽名就是CertificateVerify message;
c. 服務(wù)器端收到客戶端證書后,會做如下處理:
a) 確認(rèn)客戶端發(fā)送的證書是有效合法的;
b) 用客戶端證書中的公鑰驗證收到信息中的簽名,以確定這個證書是客戶端發(fā)出的;
服務(wù)器端和客戶端,握手結(jié)束,之后就可以用對稱加密傳輸數(shù)據(jù)了。
以上就是如何理解HTTPS以及SSL單向驗證和雙向驗證,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:如何理解HTTPS以及SSL單向驗證和雙向驗證
文章鏈接:http://jinyejixie.com/article48/jjhghp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計、商城網(wǎng)站、軟件開發(fā)、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)