HTTPS 協議
關於HTTPS協議的優點和版本發展可以參閱以下兩篇文章:
(1).HTTPS 優點和缺點一章節。
(2).SSL和TLS區別一章節。
HTTP協議沒有加密機制,但可以通過和SSL(Secure Socket Layer,安全套接層)或TLS(Transport Layer Security,安全層傳輸協議)的組合使用,以此加密 HTTP 的通訊內容,屬於通訊加密,即在整個通訊線路中加密。
[HTML] 純文字檢視 複製程式碼HTTP+ 加密 + 認證 + 完整性保護 =HTTPS(HTTP Secure )
SSL/TSL:
(1).SSL(Secure Sockets Layer 安全套接層)。
(2).TLS:(Transport Layer Security,傳輸層安全協議)。
圖示如下:
HTTPS 採用共享金鑰加密(對稱)和公開金鑰加密(非對稱)兩者並用的混合加密機制。
若金鑰能夠實現安全交換,那麼有可能會考慮僅使用公開金鑰加密 來通訊。
但是公開金鑰加密與共享金鑰加密相比,其處理速度要慢。
所以應充分利用兩者各自的優勢,將多種方法組合起來用於通訊。
在交換金鑰環節使用公開金鑰加密方式,之後的建立通訊交換報文階段 則使用共享金鑰加密方式。
圖示如下:
HTTPS握手過程的簡單描述如下:
1.瀏覽器將自己支援的一套加密規則傳送給網站:
[HTML] 純文字檢視 複製程式碼伺服器獲得瀏覽器公鑰
2.網站從中選出一組加密演算法與HASH演算法,並將自己的身份資訊以證書的形式發回給瀏覽器。
證書裡面包含了網站地址,加密公鑰,以及證書的頒發機構等資訊。
[HTML] 純文字檢視 複製程式碼瀏覽器獲得伺服器公鑰
3.獲得網站證書之後瀏覽器要做以下工作:
(1).驗證證書的合法性(頒發證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄裡面會顯示一個小鎖頭,否則會給出證書不受信的提示。
(2).如果證書受信任,或者是使用者接受了不受信的證書,瀏覽器會生成一串隨機數的密碼(接下來通訊的金鑰),並用證書中提供的公鑰加密(共享金鑰加密)。
(3).使用約定好的HASH計算握手訊息,並使用生成的隨機數對訊息進行加密,最後將之前生成的所有資訊傳送給網站。
[HTML] 純文字檢視 複製程式碼瀏覽器驗證->隨機密碼,並用伺服器的公鑰加密->生成HASH握手,用密碼加密
4.網站接收瀏覽器發來的資料之後要做以下的操作:
(1).使用自己的私鑰將資訊解密取出密碼,使用密碼解密瀏覽器發來的握手訊息,並驗證HASH是否與瀏覽器發來的一致。
(2).使用密碼加密一段握手訊息,傳送給瀏覽器。
[HTML] 純文字檢視 複製程式碼執行程式碼伺服器用自己的金鑰解出隨機密碼->用密碼解密握手訊息(共享金鑰通訊)->驗證HASH與瀏覽器是否一致(驗證瀏覽器)
5.瀏覽器解密並計算握手訊息的HASH,如果與服務端發來的HASH一致,此時握手過程結束,之後所有的通訊資料將由之前瀏覽器生成的隨機密碼並利用對稱加密演算法進行加密。
相關文章
- 什麼是HTTPS協議?為什麼要用HTTPS協議?HTTP協議
- https協議的理解HTTP協議
- Http與Https協議HTTP協議
- HTTPS協議詳解HTTP協議
- HTTP和HTTPS協議HTTP協議
- HTTP協議和HTTPS協議的異同點?HTTP協議
- WebSphere配置https協議訪問WebHTTP協議
- nginx配置https協議訪問NginxHTTP協議
- 大型網站的HTTPS實踐(一)——HTTPS協議和原理網站HTTP協議
- Go語言實現HTTPS加密協議GoHTTP加密協議
- tomcat8配置https協議訪問TomcatHTTP協議
- HTTPS的SSL協議速度慢嗎❓HTTP協議
- HTTPS協議的優缺點有哪些?HTTP協議
- HTTP 協議知識點總結(二)HTTPSHTTP協議
- 計算機網路之十三:HTTPS協議計算機網路HTTP協議
- mac+charles抓國外的https協議MacHTTP協議
- ios網路協議從http變成httpsiOS協議HTTP
- 真正“搞”懂HTTPS協議17之TLS握手HTTP協議TLS
- 網路協議 - TCP/IP、HTTP、HTTPS、HTTP2.0協議TCPHTTP
- 簡述HTTP和HTTPS協議的不同之處HTTP協議
- HTTPS協議詳解(四):TLS/SSL握手過程HTTP協議TLS
- 怎麼解決Centos下nginx支援https協議CentOSNginxHTTP協議
- 詳解HTTP&HTTPS協議及面試題HTTP協議面試題
- https與TLS/SSL 握手協議、record protocol簡介HTTPTLS協議Protocol
- [譯]通過HTTPS協議執行你的Flask程式HTTP協議Flask
- svn透過https協議訪問的搭建過程HTTP協議
- 深圳Java學習:小白速懂Https協議-千鋒JavaHTTP協議
- HTTP協議圖文簡述--HTTP/HTTPS/HTTP2HTTP協議
- 真正“搞”懂HTTPS協議15之安全的定義HTTP協議
- 真正“搞”懂HTTPS協議16之安全的實現HTTP協議
- https加密協議成功解析,技術大突破,喜訊共享HTTP加密協議
- 黑帽大會:HTTPS和SSL協議存在安全漏洞HTTP協議
- 基於TCP/UDP的Socket程式設計,HTTP/HTTPS協議TCPUDP程式設計HTTP協議
- 如何應用HTTPDNS及全站HTTPS協議避免域名被劫持?httpdDNS協議
- Http與Https的區別(精簡版包含協議說明)HTTP協議
- 將網站應用從 HTTP 協議免費升級到 HTTPS網站HTTP協議
- Raft協議和ZAB協議Raft協議
- Gossip協議也叫Epidemic協議(流行病協議)Go協議IDE