你在一間咖啡不錯、Wi-Fi 卻可疑的咖啡廳,而你需要家裡的桌面。連線安全嗎?這完全取決於傳輸加密:端對端加密的連線,就算在城裡最可疑的網路上也是安全的;而過時的未加密通訊協定,即使在最好的網路上也不安全。以下用淺白的語言說明威脅模型、依洩漏資訊多寡排序的通訊協定,以及下次你從不受你控制的地方連線時的檢查清單。
公共 Wi-Fi 實際能看到什麼
在不受你控制的網路上,有兩方有能力觀察你的流量。第一方是營運者,也就是管理基地台與其後路由器的人,在公共 Wi-Fi 上指的是場所本身、它的網路承包商,或任何悄悄架設了一台冒用該場所名稱的基地台的人。第二方是附近的其他裝置:在沒有用戶端隔離的網路上,隔兩桌的筆電就能擷取周遭流動的流量。「觀察」指的是記錄你送出與接收的封包。整個問題就在於這些封包裡有什麼內容。
- 如果通訊協定沒有加密,封包裡就有內容。對遠端桌面來說,這就跟聽起來一樣糟:畫面影格、你送出的每個按鍵(包括在遠端機器上輸入的密碼),在最糟的舊式情況下,甚至包括連線時交換的憑證。
- 如果通訊協定有正確加密,封包裡就是密文。觀察會縮減為中繼資料:你與哪些端點交換過流量、何時、以及多少量。這足以推斷你使用過遠端桌面 App,卻無從還原連線內部發生了什麼。
我們應該以現今的現實來校準,而不是 2010 年的恐怖故事。如今筆電產生的大部分流量本來就已加密,HTTPS 讓隨意在咖啡廳嗅探封包的戲劇性不再。實際上殘留的威脅是中繼資料的觀察與惡意基地台:攻擊者廣播場所的網路名稱,讓自己處在路徑中,期望抓到任何協商得很弱的東西,例如舊的通訊協定、隨意點掉的憑證提示、會自動加入熟悉名稱的裝置。這不是害怕網路的理由,而是精確說明了該帶哪些工具去:不會協商得很弱的工具。
通訊協定,依洩漏資訊的多寡排序
在這裡,產品名稱不如設定重要:同一個軟體,依版本與設定可能沒問題,也可能令人擔憂,所以下面的排序是依設定,最糟的在前。
- 沒有 TLS 或 NLA 的純 RDP(舊式)。RDP 最初的安全層早於現代傳輸安全,而願意協商它的用戶端,可能被中間人一步步引導降級到它。目前的 Windows 版本預設使用 TLS 搭配網路層級驗證,所以這主要描述的是舊主機、舊用戶端,以及為了相容性而放寬的群組原則,但在惡意網路上,可以被降級的連線應視為可被讀取。
- 未加密的 VNC。經典的 VNC 通訊協定以明文傳送影格緩衝區,也就是你真正的畫面,而它傳統的挑戰與回應登入以現代標準來看很弱,密碼通常限制在八個字元。有些伺服器與用戶端會在上面疊加 TLS 或透過 SSH 執行;許多快速架設的環境則沒有。在共用 Wi-Fi 上使用未加密的 VNC,會讓任何記錄封包的人看到螢幕上的內容。
- 使用 TLS 與 NLA 的 RDP。現代的預設值,在線路上也站得住腳:連線從你的用戶端到主機或閘道都經過傳輸加密,NLA 還要求在建立連線之前先驗證。在公共 Wi-Fi 上,實際的弱點在人:自行簽署的憑證讓警告提示成為家常便飯,而被訓練成直接點過去的使用者,正是惡意基地台所期望的。傳輸加密也沒有說明任何關於暴露的事:把連接埠 3389 對網際網路開放,是另一個有充分文件記載的錯誤,無論你從哪裡連線。
- 現代的端對端加密 App。連線在任何網路碰到它之前,就已經在裝置之間加密了。飯店網路以及它之後的一切,看到的是連線的中繼資料:端點之間流動的密文,加上時間與流量。永遠不會是像素、按鍵、憑證,因為根本沒有通訊協定的憑證可以偷。
| 設定 | 網路上的觀察者能得到什麼 | 在公共 Wi-Fi 上的結論 |
|---|---|---|
| 純 RDP,沒有 TLS/NLA | 降級成功時可取得連線內容;憑證有風險 | 請勿使用,視為可被讀取 |
| 未加密的 VNC | 螢幕內容為明文;登入握手很弱 | 請勿使用 |
| 使用 TLS + NLA 的 RDP | 傳輸中為密文;憑證提示是弱點 | 透過通道可接受;絕不要對外開放 3389 |
| 現代端對端加密 App | 只有密文與連線中繼資料 | 正是為此而生 |
為什麼端對端加密改變了答案
傳輸加密保護的是一個躍點;端對端加密保護的是整場對話。這個區別聽起來很學術,直到你列出咖啡廳與你家桌面之間有哪些人:場所的基地台、它的 ISP、你的 ISP,還可能有廠商的中繼伺服器。有了端對端加密,金鑰由你的兩台裝置直接協議,影格在離開裝置之前就已加密。清單上的每一方,包括廠商自己的基礎設施,轉送的都是它們沒有金鑰的密文。
Remio 就是建立在這個模型上,所以它可以作為實例。信任是在你用 QR Code,或從主機畫面讀取的裝置 ID 與 PIN 配對兩台裝置時建立的,沒有帳號,所以沒有可以在咖啡廳被釣魚的密碼,任何地方也沒有可被入侵的憑證資料庫。每次連線的工作階段金鑰,都由配對的裝置之間直接協商,每個影格、按鍵、剪貼簿同步與檔案傳輸都是端對端加密的。當嚴格的網路迫使連線經過加密中繼時,中繼轉送的是它讀不了的加密影格,無論路徑是直連還是中繼,安全模型都完全相同。完整的設計在安全性頁面。
目標不是找到值得信任的 Wi-Fi,而是讓 Wi-Fi 的可信度變得無關緊要。
一個誠實的界線:端對端加密只保護傳輸中的連線,其他都不保護。如果咖啡廳裡的筆電被入侵,或家裡的主機被入侵,兩者之間最強的加密也改變不了任何事,攻擊者已在某個端點裡面,讀著你所讀的。端點的衛生、廠商的入侵歷史,以及其餘的強化措施,是另一篇文章,而我們寫了:遠端桌面安全指南。這一篇只談網路。
咖啡廳檢查清單
六個項目,依回報高低排序。
- 優先選擇端對端加密的遠端桌面 App。它從設計上解決了公共 Wi-Fi 的問題,而不是靠自律:無論你在這份清單上其他事做對了沒有,網路承載的都是密文。
- 如果你不得不用 RDP,絕不要對外開放連接埠 3389。請透過 VPN 或其他加密通道連接,而不是路由器的連接埠轉發;替代方案(包括完全不需要變更路由器的僅對外連線 App)請見我們的不需連接埠轉發的遠端桌面指南。
- 讓作業系統防火牆把這個網路視為公用。當 macOS 或 Windows 詢問你加入的是哪種網路時,公用設定檔才是正確答案,它能避免檔案共享、探索以及其他監聽服務被同一網路上的陌生人看見。
- 讓用戶端保持最新。遠端桌面用戶端要解析來自你已決定不信任的網路的複雜資料。修補程式的存在是有原因的;對於會帶著走的機器,自動更新是正確的設定。
- 確認你連的是場所真正的網路。詢問確切的網路名稱,並忽略相似的名稱,基地台可以廣播其擁有者輸入的任何名稱。離開時讓你的筆電忘記該網路,也能避免它下個月自動加入一個冒牌的網路。
- 把連線本身視為敏感的事。你正在公共空間裡操作你家或辦公室的機器:留意誰能看到你的螢幕,並在中斷連線時鎖定遠端主機,免得你身後留下一個開著的桌面。
那再加上 VPN 呢?
VPN 會加密你的裝置與 VPN 伺服器之間的一切,在不受信任的 Wi-Fi 上這確實有用:它保護 DNS 查詢、App 的背景通訊,以及任何散落的未加密流量,不被區域網路看到。如果你本來就會在機場使用 VPN,遠端桌面並沒有任何理由反對。
不過,針對遠端桌面連線本身,邏輯就比較窄,而且是雙向的。對端對端加密的連線來說,VPN 不是必要的:流量在到達通道之前就已是密文,所以 VPN 增加了一個躍點(通常還有一些延遲),卻沒有增加連線所缺少的機密性。而對未加密的連線來說,它也不夠:商用 VPN 保護的是到 VPN 出口伺服器的路徑,之後流量繼續前往主機,暴露程度與開始時一樣。印證這條規則的例外,是終止於目的地網路內部的通道,例如你家路由器上的 WireGuard 伺服器、連進辦公室的公司 VPN,它涵蓋整個路徑,也是遠端使用 RDP 的標準方式。如果你是在把 VPN 與遠端桌面 App 當作存取方式本身來權衡,那是另一個比較,也有它自己的文章:遠端桌面與 VPN。
飯店、機場、校園:讓連線失敗的網路怪癖
安全性之外,公共網路還有第二個特性:它們會以家用網路不會的方式讓連線失敗。大部分原因來自三個怪癖。
- 強制入口網頁。在你打開瀏覽器並接受條款之前,網路會把所有東西丟進黑洞,遠端桌面 App 會莫名其妙地一直失敗。請先完成入口網頁;而且如果一個整個下午都正常的連線在第三個小時中斷,請懷疑是入口網頁依計時器重新驗證。
- 用戶端隔離。飯店與校園常封鎖網路內部裝置對裝置的流量,所以你同一個房間裡的兩台自己的裝置,在區域網路上可能互相看不見。僅對外連線的 P2P App 仍然能連上,兩台裝置都向外撥接,在網際網路上會合,但路徑可能比你坐著的這個房間長得多。
- 封鎖 UDP。嚴格的訪客網路有時除了網頁連接埠上的 TCP 之外,幾乎不允許其他東西。即時通訊協定偏好 UDP,所以這是各 App 出現差異的地方:具備 TCP 與中繼備援的 App 能繼續連線,代價是一些延遲,而僅支援 UDP 的設定則會停擺。其中的機制,包括位址探索、打洞,以及何時退回何種方式,請見我們的 NAT 穿透詳解,而連線所使用的確切連接埠與通訊協定,則在防火牆與 NAT 文件中。
常見問題
在飯店 Wi-Fi 上使用遠端桌面安全嗎?
安全,只要連線是端對端加密的。使用現代的端對端加密遠端桌面 App,飯店網路只承載密文,所以營運者與其他住客都無法還原你的螢幕、按鍵或檔案。舊式設定才是有風險的情況:沒有 TLS 與 NLA 的 RDP,或未加密的 VNC,可能把連線內容與憑證暴露給網路,不該在沒有加密通道的情況下用於飯店 Wi-Fi。
同一個 Wi-Fi 上的人能看到我的遠端螢幕嗎?
如果連線是端對端加密的,就不能。同一網路上的人可以擷取你的封包,但有了端對端加密,那些封包是密文,金鑰只存在於你的兩台裝置上,所以無法從擷取的內容還原螢幕內容。同一網路的觀察者仍然可以看到的是中繼資料:連線存在、何時處於活動狀態,以及大約傳輸多少資料。
在公共 Wi-Fi 上使用 Remio,需要 VPN 嗎?
不需要。Remio 的連線本來就是端對端加密的,每次連線的金鑰都由你的裝置之間直接協商,所以連線不依賴網路是否值得信任。VPN 仍然能為你其餘的流量(例如 DNS 查詢與其他 App)增加隱私,透過它執行 Remio 也沒問題。那是關於你其他流量的選擇,而不是連線的必要條件。
在公共 Wi-Fi 上使用 RDP 安全嗎?
有了 TLS 與網路層級驗證(現代 Windows 的預設值),連線是經過傳輸加密的,所以咖啡廳網路上的竊聽者看到的是密文。長期不變的規則是關於暴露而非場所:絕不要把連接埠 3389 直接對網際網路開放;請透過 VPN 或其他加密通道連接 RDP。可以被協商降級成沒有 TLS 的舊式 RDP 安全性的舊設定,在任何不受信任的網路上都應視為不安全。
Wi-Fi 營運者還能得知什麼?
連線中繼資料。即使連線完全端對端加密,網路營運者仍能觀察時間、流量,以及你與哪些端點交換封包,足以推斷發生過遠端桌面連線,以及持續了多久。它無法還原的是內容:沒有畫面影格、沒有按鍵、沒有檔案、沒有剪貼簿。
貫穿這一切的主線是:決定你的連線是否安全的,不是場所,而是加密。如果你想要完全不需要檢查清單的版本,請在兩台機器上安裝 Remio,用 QR Code 或裝置 ID 與 PIN 配對,然後在當天遇到的任何網路上連線;無論如何,連線都是端對端加密的。運作方式頁面說明了底層發生什麼事。