這是一種用于分布式、協作式和超媒體信息系統的應用層協議。 簡單來說就是一種發布和接收 HTML 頁面的方法,被用于在 Web 浏覽器和網站服務器之間傳遞信息。默認協議端口為80,用戶訪問網站 http:// 打頭的都是标準 HTTP 服務。
HTTP 協議以明文方式發送内容,不提供任何方式的數據加密,如果攻擊者截取了Web浏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協議不适合傳輸一些敏感信息,比如:信用卡号、密碼等支付信息。
這是一種透過計算機網絡進行安全通信的傳輸協議。HTTPS 經由 HTTP 進行通信,但利用 SSL/TLS 來加密數據包。HTTPS 開發的主要目的,是提供對網站服務器的身份認證,保護交換數據的隐私與完整性。
HTTPS 默認協議端口為443,它的工作流程如下:
1、TCP 三次握手;
2、客戶端驗證服務器數字證書;
3、DH 算法協商對稱加密算法的密鑰、hash 算法的密鑰;
4、ssl 安全加密隧道協商完成;
5、客戶端與服務端之間以加密的方式傳輸,用協商的對稱加密算法和密鑰加密,保證數據機密性;用協商的hash算法進行數據完整性保護,保證數據不被篡改。
TCP三次握手在TCP/IP協議中,TCP協議通過三次握手建立一個可靠的連接
1、第一次握手:客戶端嘗試連接服務器,向服務器發送 SYN 包(同步序列編号Synchronize Sequence Numbers),syn=j,客戶端進入 SYN_SEND 狀态等待服務器确認;
2、第二次握手:服務器接收客戶端syn包并确認(ack=j 1),同時向客戶端發送一個 SYN包(syn=k),即 SYN ACK 包,此時服務器進入 SYN_RECV 狀态;
3、第三次握手:第三次握手:客戶端收到服務器的SYN ACK包,向服務器發送确認包ACK(ack=k 1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀态,完成三次握手。
簡化:
我們都知道 HTTPS 能夠加密信息,以免敏感信息被第三方獲取,所以很多銀行網站或電子郵箱等等安全級别較高的服務都會采用 HTTPS 協議。
大緻的工作原理如下:
1、客戶端發起 HTTPS 請求
這個沒什麼好說的,就是用戶在浏覽器裡輸入一個 https 網址,然後連接到 server 的 443 端口。
2、服務端的配置
采用 HTTPS 協議的服務器必須要有一套數字證書,可以自己制作,也可以向組織申請,區别就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl 就是個不錯的選擇,有 1 年的免費服務)。
這套證書其實就是一對公鑰和私鑰,如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖頭,隻是全世界隻有你一個人有這把鑰匙,你可以把鎖頭給别人,别人可以用這個鎖把重要的東西鎖起來,然後發給你,因為隻有你一個人有這把鑰匙,所以隻有你才能看到被這把鎖鎖起來的東西。
3、傳送證書
這個證書其實就是公鑰,隻是包含了很多信息,如證書的頒發機構,過期時間等等。
4、客戶端解析證書
這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出一個警告框,提示證書存在問題。
如果證書沒有問題,那麼就生成一個随機值,然後用證書對該随機值進行加密,就好像上面說的,把随機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的内容。
5、傳送加密信息
這部分傳送的是用證書加密後的随機值,目的就是讓服務端得到這個随機值,以後客戶端和服務端的通信就可以通過這個随機值來進行加密解密了。
6、服務端解密信息
服務端用私鑰解密後,得到了客戶端傳過來的随機值(私鑰),然後把内容通過該值進行對稱加密,所謂對稱加密就是,将信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取内容,而正好客戶端和服務端都知道這個私鑰,所以隻要加密算法夠彪悍,私鑰夠複雜,數據就夠安全。
7、傳輸加密後的信息
這部分信息是服務端用私鑰加密後的信息,可以在客戶端被還原。
8、客戶端解密信息
客戶端用之前生成的私鑰解密服務端傳過來的信息,于是獲取了解密後的内容,整個過程第三方即使監聽到了數據,也束手無策。
總結今天的分享就到這裡啦,大家要是覺得有幫助的話,記得點贊 關注哦!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!