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
這些網站會顯示你目前的 IP 和是否有 WebRTC 洩漏的風險。
🛡️ 如何防止 WebRTC 洩漏?
- 停用瀏覽器的 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(✔️)
所以你沒有安全問題或洩漏問題,只是屬於「未加遮蔽的原始上網狀態」