一、HTTP存在的問題
1.1 可能被竊聽
- HTTP 本身不具備加密的功能,HTTP 報文使用明文方式發(fā)送
- 由于互聯(lián)網(wǎng)是由聯(lián)通世界各個地方的網(wǎng)絡(luò)設(shè)施組成,所有發(fā)送和接收經(jīng)過某些設(shè)備的數(shù)據(jù)都可能被截獲或窺視。(例如大家都熟悉的抓包工具:charles)
1.2 認(rèn)證問題
- 無法確認(rèn)你發(fā)送到的服務(wù)器就是真正的目標(biāo)服務(wù)器(可能服務(wù)器是偽裝的)
- 無法確定返回的客戶端是否是按照真實(shí)意圖接收的客戶端(可能是偽裝的客戶端)
- 無法確定正在通信的對方是否具備訪問權(quán)限,Web 服務(wù)器上某些重要的信息,只想發(fā)給特定用戶即使是無意義的請求也會照單全收。無法阻止海量請求下的 DoS 攻擊(Denial of Service,拒絕服務(wù)攻擊)。
1.3 可能被篡改
1.請求或響應(yīng)在傳輸途中,遭攻擊者攔截并篡改內(nèi)容的攻擊被稱為中間人攻擊(Man-in-the-Middle attack,MITM)。
二、HTTPS介紹
2.1 什么是HTTPS
超文本傳輸安全協(xié)議(英語:Hypertext Transfer Protocol Secure,縮寫:HTTPS,常稱為HTTP over TLS,HTTP over SSL或HTTP Secure)是一種通過計算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議。HTTPS經(jīng)由HTTP進(jìn)行通信,但利用SSL/TLS來加密數(shù)據(jù)包。HTTPS開發(fā)的主要目的,是提供對網(wǎng)站服務(wù)器的身份認(rèn)證,保護(hù)交換數(shù)據(jù)的隱私與完整性。
2.2 HTTPS怎么解決上述問題
HTTPS是在通信接口部分用 TLS(Transport Layer Security 傳輸層安全性協(xié)議),TLS協(xié)議采用主從式架構(gòu)模型,用于在兩個應(yīng)用程序間通過網(wǎng)絡(luò)創(chuàng)建起安全的連接,防止在交換數(shù)據(jù)時受到竊聽及篡改。
2.3 SSL和TLS的關(guān)系
- 傳輸層安全性協(xié)議(英語:Transport Layer Security,縮寫作 TLS),及其前身安全套接層(Secure Sockets Layer,縮寫作 SSL)是一種安全協(xié)議,目的是為互聯(lián)網(wǎng)通信,提供安全及數(shù)據(jù)完整性保障。
- 網(wǎng)景公司(Netscape)在1994年推出首版網(wǎng)頁瀏覽器,網(wǎng)景導(dǎo)航者時,推出HTTPS協(xié)議,以SSL進(jìn)行加密,這是SSL的起源。
- IETF將SSL進(jìn)行標(biāo)準(zhǔn)化,1999年公布第一版TLS標(biāo)準(zhǔn)文件。隨后又公布RFC 5246 (2008年8月)與 RFC 6176 (2011年3月)。在瀏覽器、電子郵件、即時通信、VoIP、網(wǎng)絡(luò)傳真等應(yīng)用程序中,廣泛支持這個協(xié)議。
2.4 TLS/SSL 協(xié)議
HTTPS 協(xié)議的主要功能基本都依賴于 TLS/SSL 協(xié)議,TLS/SSL 的功能實(shí)現(xiàn)主要依賴于三類基本算法:散列函數(shù) 、對稱加密和非對稱加密,其利用非對稱加密實(shí)現(xiàn)身份認(rèn)證和密鑰協(xié)商,對稱加密算法采用協(xié)商的密鑰對數(shù)據(jù)加密,基于散列函數(shù)驗(yàn)證信息的完整性。
參考原文鏈接:https://juejin.im/post/5ad6ad575188255c272273c4






