2016 年 12 月,安全社群鍾愛的加密應用程式 Signal 達到了每個顛覆性開發者都熟知的里程碑:壓迫性政權開始封鎖它。埃及與阿聯酋在相隔數日內先後將其列入黑名單。Open Whisper Systems 於當週三以一次 Android 更新作出回應,運用一種名為網域前置(domain fronting)的技巧,在兩國恢復了不受限制的存取;iOS 版本緊隨其後。

創辦人 Moxie Marlinspike 解釋了其運作機制:像埃及這樣擁有幾家由政府控制的小型網際網路服務供應商的國家,可以封鎖對黑名單服務的任何直接請求。但在與 Google App Engine 建立的 TLS 連線內部,那個重新導向至 Signal 網域的請求是加密的,因此供應商只會看到一條連往 google.com 的連線。「現在,當埃及或阿聯酋的人發送 Signal 訊息時,它看起來會與 Google 搜尋之類的流量一模一樣,」Marlinspike 說。「如果你想封鎖 Signal,你就得封鎖 Google。」

Signal 並非獨自發明此技術:Tor、Psiphon 與 Lantern 早已使用網域前置,且它可透過 Cloudflare、Akamai 與 Amazon CloudFront 等 CDN 運作。「所有這些加起來代表了網際網路流量的一大部分,」Marlinspike 說——「最終,停用 Signal 開始變得像是停用網際網路。」全面斷網確實會發生:埃及在 2011 年阿拉伯之春抗議期間切斷了整個網際網路,巴西則在一次毒品調查期間封鎖了 WhatsApp。這兩次封鎖都為時短暫;只有少數國家願意長期全面審查網際網路。

Marlinspike 表示,反制新的封鎖是高度優先事項——五年前他曾為阿拉伯之春抗議者趕製 Signal 前身應用程式的阿拉伯語版本——並賭定在那些不願完全關閉網際網路的國家中,這項技術將能奏效:「這些國家有可能會作出回應。但最終結局是我們會贏。」

將受審查的流量繞道於一個無人敢封鎖的巨頭:在 TLS 內部主機名稱是不可見的,因此一則 Signal 訊息看起來就像一次 Google 搜尋。

TLS 會加密主機名稱,因此審查者的封鎖決定只能依據 IP 位址——而該 IP 位址屬於 Google。

借來的規模就是盾牌:前端是審查者本國人民所依賴、無法輕易失去的服務。

這項技巧可移植於 Google、Cloudflare、Akamai 與 CloudFront,因此封鎖一個前端,其餘的仍屹立不搖。

偽裝勝於裝甲:與其對抗審查者,不如讓你的流量與審查者無法承受封鎖的流量難以區分。借來的規模是一面任何黑名單都無法繞過的盾牌。

埃及與阿聯酋的 Android 使用者可以立即繞過封鎖進行更新,iOS 隨後跟進。這項技術留在了規避審查的工具箱中,而 Marlinspike 的論述框架——封鎖 Signal 或封鎖 Google——成了審查者兩難困境的經典表述。

追溯依據

參考來源

  1. Encryption App 'Signal' Fights Censorship With a Clever Workaround WIRED · wired.com ·