HTTPS 簡介
超文本傳輸安全協議( HTTPS )是一種通過計算機網絡進行安全通信的傳輸協議。HTTPS 經由 HTTP 進行通信,但利用 SSL/TLS 來加密數據包。 HTTPS 開發的主要目的,是提供對網站服務器的身份認證,保護交換數據的隱私與完整性。
HTTPS攻擊主要有兩種:中間人劫持攻擊和SSLStrip攻擊。
中間人劫持攻擊:
中間人截取客戶端發送給服務器的請求,然后偽裝成客戶端與服務器進行通信;將服務器返回給客戶端的內容發送給客戶端,偽裝成服務器與客戶端進行通信。通過這樣的手段,便可以獲取客戶端和服務器之間通信的所有內容。
使用中間人攻擊手段,必須要讓客戶端信任中間人的證書,如果客戶端不信任,則這種攻擊手段也無法發揮作用。
?
SSLStrip攻擊(SSL剝離攻擊):
1.客戶端向服務器發起HTTP連接請求
2.中間人MITM監聽客戶端與服務器的HTTP數據
3.服務器返回給客戶端的HTTP數據包被在客戶端與服務器之間的中間人截獲。中間人解析原HTTP數據包,將其中<a href="https://...">替換成<a href="http//...">,將Location:https://...替換成Location:http://..,同時記錄下所修改的URL,并保存
4.中間人將修改后的HTTP數據發送給客戶端
5.客戶端向服務器發起HTTP連接請求
6.中間人計算機解析客戶端的HTTP連接請求,并與保存文件相比較。當發現存在有已修改過的HTTP URL時,將其替換成原HTTPS URL,并發送給服務器
7.與服務器保持HTTPS連接,回到步驟3;
8.與客戶端保持HTTP連接,回到步驟4。
最后結果是服務器認為HTTPS
是安全的。對于客戶端而言,由于中間人MITM
與客戶端Client
之間是HTTP
連接,因此并不會對證書進行認證。
以下是一些防御措施:
-
安裝SSL證書:安裝SSL證書可以通過HTTPS建立安全通信。如果安裝了SSL證書,則用戶可以知道他們正在與網站通信,并且可以檢查證書是否有效。這可以防止中間人攻擊。
-
使用HSTS:使用HSTS強制瀏覽器僅通過HTTPS連接到您的網站。此外,HSTS還可以防止SSLStrip攻擊。
-
使用HTTPS Everywhere插件:HTTPS Everywhere插件可以確保您與網站建立安全的HTTPS連接。它可以檢測網站是否支持HTTPS并將您重定向到HTTPS連接。這可以防止SSLStrip攻擊。
-
監控您的網站:監控您的網站可以幫助您檢測中間人攻擊或SSLStrip攻擊。
-
避免使用公共WiFi:公共WiFi很容易受到中間人攻擊。因此,避免使用公共WiFi并使用VPN建立安全連接。