Psiphon 技術說明
2014/12/3 - 1 分鐘閱讀
更新: 2021/6/4
這是一則針對最近兩個問題的更新說明:簡單來說,什麼是 Psiphon 以及它與 VPN 服務有何不同;以及,自技術設計文件上次更新以來有哪些變更。
Psiphon 3 是一個由數千台代理伺服器所組成、採集中管理且分布於各地的網路。我們大部分的基礎設施都託管於雲端服務供應商。Psiphon 3 採用「單跳」架構,在客戶端與伺服器之間具備安全的連線加密。我們為最受歡迎的平台提供客戶端:Windows、Android 與 iOS(Alpha 測試中)。
Psiphon 在幾個關鍵方面與標準 VPN 服務不同:
- 我們採用將部分伺服器子集分配給使用者的策略,旨在為每位使用者提供少數幾台可連線的伺服器,同時不向單一使用者洩露整個網路。為了實現此目標,我們網路的規模——尤其是我們網路位址的多樣性——不僅僅取決於流量負載。
- 我們使用協定混淆來繞過 DPI 封鎖。
Psiphon 的技術 設計文件 已過期,以下是自專案於 2011 年推出以來我們實施的重大技術變更的極簡摘要。
- 我們新增了 混淆 SSH 協定,以減輕 DPI 指紋辨識。這個外觀完全隨機的協定在每台 Psiphon 伺服器上都部署了專屬的混淆金鑰。
- 我們在協定中新增了選用的 HTTP 前綴,以緩解基於 DPI 的 HTTP 流量白名單限制。這個簡單的前綴足以讓基於正規表達式的 DPI(nDPI 與 l7-filter)將 Psiphon 流量歸類為 HTTP;且在我們部署時足以擊敗實際的審查對手。
- 我們新增了遠端伺服器列表,以擴充內建伺服器與探索伺服器的概念。雖然探索僅在連線到現有伺服器時才會進行,但即使所有伺服器都被封鎖,仍可下載遠端伺服器列表。遠端伺服器列表分發在 S3 上,並透過 https://s3.amazonaws.com 存取,URL 中沒有具識別性的儲存貯體名稱。如此一來,審查對手若不封鎖整個 S3 或實施 HTTPS 流量分析,就難以封鎖我們的遠端伺服器列表。
- 電子郵件現在是主要的客戶端傳播機制。我們設有自動回覆程式,會根據使用者寄送至的電子郵件地址,回傳客製化贊助商/頻道的 Psiphon 客戶端連結與附件。
- 我們在 2012 年推出了 Android 客戶端。第一個版本包含基於 Android 的 WebView 內建瀏覽器。在 2012/2013 年,我們新增了全裝置通道模式支援,將所有 Android 應用程式透過 Psiphon 建立通道。我們提供了 iptables 全裝置模式(適用於已取得 root 權限的 Android 2.2+ 裝置);以及使用 Android 的 VpnService 搭配 tun2socks 的全裝置模式(適用於任何 Android 4+ 裝置)。其他新增的功能包括出口地區選擇以及代理鏈接。
- 我們目前有一款處於 Alpha 測試階段的 iOS 客戶端。此應用程式具有內建瀏覽器。
- 我們的應用程式內意見反應機制會傳送使用者的訊息和選用的診斷資訊給我們。此系統已協助我們針對許多平台問題與封鎖問題進行偵錯。
- 探索演算法的變更:作為網路持續最佳化過程的一部分,我們的探索演算法不斷演進。重大變更包括跨傳播管道共用探索伺服器;以及將一天中的時間列為一個維度。
- 連線演算法最佳化:我們的客戶端在連線時現在會同時向多台伺服器發起連線,並保留「最佳」連線。這有助於負載平衡,並減少使用者等待時間,因為個別被封鎖的伺服器不會拖延連線程序。
- 客戶端自動升級經過增強,改採增量下載並使用頻外下載網站(透過數位簽章進行驗證)。這些變更提高了在面臨封鎖時成功分發新客戶端的可能性。