TERM - daniel-qa/Information-Security GitHub Wiki

TERM

WebRTC Leak

什麼是 WebRTC?

WebRTC(Web Real-Time Communication)是現代瀏覽器內建的一項功能,主要用來實現瀏覽器之間的點對點語音通話、視訊會議或檔案傳輸,不需要中介伺服器

常見支援 WebRTC 的瀏覽器有:

Chrome

Firefox

Microsoft Edge

Opera

Safari(部分支援)

⚠️ 什麼是 WebRTC 洩漏(WebRTC Leak)?

即使你使用 VPN 保護隱私,WebRTC 的機制仍可能讓你的真實 IP 位址(特別是公眾 IP)被網站發現。

這是因為 WebRTC 會透過瀏覽器直接向 STUN 伺服器查詢你的 IP,並回傳結果

這個過程不會被 VPN 阻止,導致:

網站可以藉由 JavaScript 查出你的原始 IP

隱私遭到洩漏,特別是在地理位置或匿名瀏覽時

🧪 怎麼檢查自己有沒有 WebRTC 洩漏?

你可以透過以下網站進行測試:

https://browserleaks.com/webrtc

https://ipleak.net/

這些網站會顯示你目前的 IP 和是否有 WebRTC 洩漏的風險。

🛡️ 如何防止 WebRTC 洩漏?

  1. 停用瀏覽器的 WebRTC 功能:

Firefox:

在網址列輸入 about:config

搜尋 media.peerconnection.enabled

將值設為 false

Chrome / Edge(無法直接停用,只能透過擴充功能):

安裝擴充套件如:

WebRTC Network Limiter

uBlock Origin(部分功能)

ScriptSafe

Brave 瀏覽器:

進入「設定」>「隱私與安全」>「安全性」> 關閉 WebRTC 傳輸非代理 IP

2. 使用具備 WebRTC 保護的 VPN

某些 VPN(如 NordVPN、ExpressVPN)內建 WebRTC 防洩漏機制,可以加強保護。

STUN

STUN 在 WebRTC 中的角色

WebRTC 要讓兩個瀏覽器直接溝通,就必須知道彼此的 IP。因為多數使用者在 NAT 後面,無法直接看到彼此的公眾 IP。

STUN 就是 WebRTC 中的一部分,用來解決這個問題:

幫助取得自己的公眾 IP

判斷 NAT 是否支援 P2P 連線

這個查詢會繞過 VPN 保護,造成 WebRTC 洩漏

⚠ STUN 如何造成隱私問題?

STUN 查詢是在本機瀏覽器執行的 JavaScript 中發出的,VPN 無法攔截或改寫這個請求。

網站只要用一小段 JavaScript,就能讓你的瀏覽器查出自己的真實 IP 並回傳給它。

這就是所謂的 WebRTC 洩漏。

項目 STUN TURN
功能 查出公眾 IP、協助 P2P 建立 轉送媒體資料(當無法 P2P)
效率 高(直接 P2P) 低(需經過伺服器)
伺服器負載
是否洩漏 IP 是(會顯示真實 IP) 通常不會

VPN

VPN 是「Virtual Private Network」(虛擬私人網路)的縮寫,是一種透過加密技術,在公共網路(如 Internet)上建立安全連線的方法

以下是對 VPN 的簡單解釋:

VPN 的基本概念:

當你使用 VPN 時,它會:

加密你的資料傳輸:你的資料在從電腦傳送到網站之前,會先被加密,防止被駭客或第三方攔截。

隱藏你的 IP 位址:VPN 會讓網站看到 VPN 伺服器的 IP,而不是你真實的 IP,達到匿名瀏覽的效果。

建立安全通道:你與 VPN 伺服器之間會建立一條安全的「隧道」,保護你的網路流量不被監看或竄改。

VPN 的用途:

保護隱私:在公共 Wi-Fi(如咖啡店、機場)上使用時,避免個人資料被竊取。

繞過地區限制:有些網站或影音平台會根據地區限制內容(如 Netflix、YouTube),透過 VPN 可以切換到其他地區的 IP。

安全存取公司內部網路:很多公司會用 VPN 讓員工在家或出差時安全連線進入內部系統。

簡單的例子:

假設你人在台灣,透過 VPN 連上美國的伺服器,然後訪問 Google:

你的電腦先將請求加密後送到 VPN 伺服器(在美國)。

VPN 伺服器解密請求並代表你去訪問 Google。

Google 的伺服器回應資料給 VPN 伺服器。

VPN 再將資料加密後傳回你在台灣的電腦。

Google 會以為你是在美國連線的,這樣就可以看到美國地區的內容。

常見的 VPN 協議: OpenVPN:開放原始碼,安全性高,速度適中。

WireGuard:現代化、高效能的 VPN 協議。

IPSec/L2TP、IKEv2:適用於行動設備和企業環境。 VPN + WebRTC Leak 防護插件 才能真正隱藏你的真實 IP。

Windows 11 家用版設定 VPN 步驟

  • 1 . 開啟「設定」

按下 Win + I 打開「設定」視窗

或者點擊「開始」選單,然後選「設定」

  • 2 . 進入「網路和網際網路」

在左側選單點選 「網路和網際網路」

  • 3 . 選擇「VPN」

在「網路和網際網路」頁面中,點擊右邊的 「VPN」

  • 4 . 新增 VPN 連線

點擊 「新增 VPN」按鈕(通常在頁面最上方)

  • 5 . 填寫 VPN 連線資訊

VPN 提供者:選擇「Windows (內建)」

連線名稱:給這個 VPN 連線取個名字(例如:公司 VPN 或 MyVPN)

伺服器名稱或位址:輸入你的 VPN 伺服器位址(通常是 IP 或域名)

VPN 類型:選擇 VPN 協議(常用的有 PPTP、L2TP/IPsec、SSTP 或 IKEv2),如果不確定,通常可選「自動」或「L2TP/IPsec」

登入資訊類型:選擇登入方式(一般是使用者名稱和密碼)

使用者名稱和密碼:輸入 VPN 帳號和密碼(可勾選「記住我的登入資訊」方便下次使用)

  • 6 . 儲存並連線

按 「儲存」

在 VPN 清單中,找到你剛新增的 VPN,點擊它然後按 「連線」

補充說明

連線成功後,你會看到狀態顯示「已連線」

若 VPN 伺服器需要額外的設定(例如憑證或預共享金鑰),需要在「VPN 類型」選擇 L2TP/IPsec 並輸入金鑰(通常由管理員提供)

如果你使用的是第三方 VPN 服務,也可以安裝他們提供的專用 App,設定會更簡單


Disable non-proxied UDP (force proxy)

解释: 这个选项是最严格的。WebRTC通常使用UDP进行P2P连接,而UDP有时会绕过VPN/代理,直接暴露您的真实IP。选择这个选项会强制所有WebRTC流量通过您的代理或VPN,从而大大降低IP泄露的风险。


WebRTC Network Limiter是 Google 官方擴充程式,它修補 WebRTC 設定以阻止任何 IP 外洩,同時又不會完全封鎖它的功能。而由於 WebRTC Network Limiter 並不會完全封鎖 WebRTC,因此使用WebRTC的服務仍然可以在您的瀏覽器上運作。


不用 VPN 就這樣也可以

目前你沒有 VPN,但:

WebRTC 沒有洩漏(✔️ 沒問題)

DNS 查詢不是走 ISP,而是 Cloudflare(✔️ 更隱私)

沒有顯示任何額外的本地 IP、IPv6(✔️)

所以你沒有安全問題或洩漏問題,只是屬於「未加遮蔽的原始上網狀態」