使用HTTPS防止流量劫持

2021-07-11 05:59:51 字數 1415 閱讀 8064

前不久小公尺等六家網際網路公司發表聯合宣告,呼籲運營商打擊流量劫持。流量劫持最直觀的表現,就是網頁上被插入了一些亂七八糟的廣告/彈窗之類的內容。比如下面這種:

頁面的右下角被插入了廣告。

流量劫持總體來說屬於中間人攻擊(man-in-the-middle attack,mitm)的一種,本質上攻擊者在通訊兩端之間對通訊內容進行嗅探和篡改,以達到插入資料和獲取關鍵資訊的目的。目前網際網路上發生的流量劫持基本是兩種手段來實現的:

能夠實施流量劫持的根本原因,是http協議沒有辦法對通訊對方的身份進行校驗以及對資料完整性進行校驗。如果能解決這個問題,則流量劫持將無法輕易發生。

關於流量劫持的更多危害案例,可以參考:如何看待小公尺等聯合宣告:呼籲運營商嚴格打擊流量劫持?

https,是http over ssl的意思,提到https就不得不先簡單描述一下ssl/tls協議。ssl協議是netscape在2023年首次提出的用於解決傳輸層安全問題的網路協議,其核心是基於公鑰密碼學理論實現了對伺服器身份認證、資料的私密性保護以及對資料完整性的校驗等功能。2023年ietf將ssl 3.0標準化,是為tls 1.0版本,目前tls協議的最新版本是1.2版本,tls 1.3標準正在制定中。為了方便,下文將ssl/tls協議都簡稱為ssl協議。

ssl協議在http請求開始之前增加了握手的階段,其粗略流程如下圖所示:

由此可見,因為ssl協議提供了對伺服器的身份認證,所以dns劫持導致連線錯誤伺服器的情況將會被發現進而終止連線,最終導致dns挾持攻擊無法實現。此外ssl協議還提供資料的加密和完整性校驗,這就解決了關鍵資訊被嗅探以及資料內容被修改的可能。

要將**進行https支援以達到防劫持的效果,首先需要的是為**的網域名稱搞一張證書。這個證書必須是由知名ca所簽發的,這是因為知名ca的根證書廣泛的存在於大多數瀏覽器和作業系統中,因此可以被客戶端用來校驗**證書是否合法。

傳統ca的證書簽發流程大體相同,基本上都是根據證書認證的級別,進行一系列不同流程的認證,然後認證通過後申請者繳納相應的費用就可以或得到證書。這個流程相對比較繁瑣,尤其是對於個人和小型**管理者來說搞起來也確實麻煩。這裡推薦一種新型的方法——使用let's encrypt的自動化服務獲取免費的證書。

let's encrypt專案是由isrg提供的免費ca服務,其主要目的是減少證書獲取的難度,將證書的簽發/續簽/作廢等操作進行自動化處理。let's encrypt的使用方法非常簡單,按照文件中步驟操作即可。如需進一步了解如何使用let's encrypt自動獲取免費證書,可以參考:用let』s encrypt獲取免費證書

在獲得到證書(以及對應的私鑰)之後,主要有如下幾種方法來使用:

直接在web伺服器上部署證書和私鑰,相關apache或nginx都有大量的文件說明,在此就不贅述了

在伺服器集群的接入層/反向**處部署證書和私鑰,例如阿里雲的cdn, slb和高防ip等產品均提供https支援,可以直接上傳證書和私鑰就可以實現**的https改造。

什麼是流量劫持,如何防止流量劫持?

流量劫持,是利用各種惡意軟體修改瀏覽器 鎖定主頁或不停彈出新視窗,強制使用者訪問某些 從而造成使用者流量損失的情形。流量劫持是一種古老的攻擊方式,比如早已見慣的廣告彈窗 如下圖 等,很多人已經對此麻木,並認為流量劫持不會造成什麼損失。而事實上,流量劫持可以通過多種你無法覺察的方式竊取資訊 http協...

bc劫持流量 seo流量劫持

seo流量劫持為您提供免費seo診斷諮詢 獨家seo優化建議。如需合作右側聯絡客服,承接各類合作。seo流量劫持優化服務介紹 1.行業及競爭對手研究 3.現狀詳細診斷 4.seo優化診斷報告 5.外部鏈結及反鏈建設 6.優化seo執行 7.日常seo優化諮詢 8.公司網路營銷及seo培訓 seo流量...

DNS劫持 流量劫持,HTTP HTTPS劫持

dns劫持 dns劫持就是通過劫持了dns伺服器,通過某些手段取得某網域名稱的解析記錄控制權,進而修改此網域名稱的解析結果,導致對該網域名稱的訪問由原ip位址轉入到修改後的指定ip,其結果就是對特定的 不能訪問或訪問的是假 從而實現竊取資料或者破壞原有正常服務的目的。dns劫持通過篡改dns伺服器上...