1. 程式人生 > 實用技巧 >網路嗅探與防範實驗

網路嗅探與防範實驗

實驗工具與環境配置

  • 伺服器作業系統:macOS Catalina 10.15.2
  • 客戶端作業系統:macOS High Sierra 10.13.6
  • FTP 伺服器:QuickFTP Server 1.0.4
  • FTP 客戶端:ForkLift 2.6.6
  • 瀏覽器:Chrome 83.0.4103.61
  • Sniffer 工具:Wireshark 3.2.3

郵箱登入嗅探

我們知道,現在絕大多數網頁訪問都是基於安全的 HTTPS 協議,本實驗選擇的 QQ 郵箱也不例外。不同於 HTTP 協議,HTTPS 使用的是 443 埠。因此,為了更方便地分析報文,我們直接過濾 443 埠。

具體實驗步驟為:

  1. 開啟 Wireshark,選擇本地連線;
  2. 設定過濾規則:tcp.port == 443
  3. 開始監聽;
  4. 在 Chrome 瀏覽器中訪問 QQ 郵箱,輸入賬號密碼完成登入;
  5. 停止監聽。

截獲的報文如下圖所示:

可以看到,通過網頁登陸郵箱的過程中,涉及到的網路協議主要是 TCP 和 SSL/TLS,而 HTTPS 正是基於此二者的應用層協議。

HTTPS 協議是 HTTP 協議的安全版,利用 SSL 層對會話進行加密,使得即使他人嗅探到了資料報,也會因為資料是密文形式而無法得知其中的內容。此外,HTTPS 還提供身份認證和訊息認證等安全服務,保證資訊在儲存和傳輸過程中不被非法篡改、破壞、增刪,能夠真實無誤地到達目的地。接收方也可以對收到的訊息進行驗證,證明訊息是可信的,即確實來自聲稱的傳送方,並且沒有被修改過。

FTP 登入嗅探

實驗使用兩臺電腦,分別作為伺服器和客戶端,在同一個區域網中建立 FTP 連線。

在伺服器上,執行 QuickFTP Server 軟體,設定埠為 21,啟動 FTP 伺服器。

在客戶端,先開啟 Wireshark,開始監聽。執行 ForkLift 軟體,選擇 FTP 協議,輸入伺服器、使用者名稱和密碼,同樣設定埠為 21。點選 Connect,連線到伺服器。

連線成功後,停止 Wireshark 監聽,過濾 FTP 報文,找到如下兩條含有重要資訊的報文:

顯然,Wireshark 成功嗅探到了 FTP 登入過程中需要的使用者名稱和密碼,可見 FTP 協議不能保證傳輸資料的安全性。

為了對區域網嗅探器進行防範,我們選擇使用 SFTP 協議再次進行實驗。SFTP 是 Secure File Transfer Protocol 的縮寫,即安全檔案傳送協議,可以為傳輸檔案提供一種安全的加密方法。SFTP 為 SSH 的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實在 SSH 軟體包中,已經包含了一個叫作 SFTP 的安全檔案資訊傳輸子系統。SFTP 使用加密傳輸認證資訊和傳輸的資料,因此使用 SFTP 是非常安全的。然而,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多。

我們在伺服器上啟動 macOS 系統自帶的遠端登入服務,允許其他電腦上的使用者使用 SFTP 訪問這臺電腦。

在客戶端依然使用 ForkLift 軟體建立連線,但這次選擇 SFTP 協議,且將埠號設定為 22。

在 Wireshark 中,設定過濾規則為 ip.addr == 10.30.4.61(即伺服器的 IP 地址),截獲的報文如下圖所示:

可以發現,這次沒有截獲到 FTP 報文,取而代之的是 TCP 和 SSH 報文。在建立 TCP 連線之後,客戶端與伺服器先進行握手協議,完成加密演算法的協商和會話金鑰的傳遞,然後進行安全資料傳輸。此時報文中的資料均已是密文形式,無法再從中嗅探出使用者名稱和密碼等重要資訊,從而實現了對網路嗅探的防範。