簡介
Telex是一款用於突破網路審查的軟體。用戶通過使用Telex客戶端軟體瀏覽網際網路上被審查的內容。Telex與傳統突破網路審查軟體的不同之處在於傳統突破網路審查軟體只提供“終端代理”(end-point proxying),而Telex卻能提供“終端到中間代理”(end-to-middle proxying)。Telex與傳統突破網路審查軟體之間的這種差異導致實施網路審查的政府無法封鎖Telex所提供的服務。
終端代理
傳統突破網路審查軟體(Tor 、自由門)使用的是終端代理模式。在此模式下,身處網路審查國家的用戶使用這些軟體的客戶端連線到運行這些軟體的服務端的國外伺服器上,以獲取在網路審查國家被禁止的網際網路上的信息。但是由於客戶端軟體是公開的,所以實施網路審查的國家的政府也可以下載這些軟體,運行它們,然後監視它們連線到哪些IP位址上。政府隨後把這些IP位址加入黑名單上,從而使得這些突破網路審查的軟體失效。當然,負責維護軟體的機構可以開通新的IP位址,並且公布包含這些新的IP位址的客戶端軟體的新的版本。但是這只會導致這些機構與實施網路審查的國家的政府之間的一場“貓和老鼠”的遊戲,並不能夠從根本上解決問題。
終端到中間代理
Telex使用的是終端到中間代理模式。在此模式下,身處網路審查國家的用戶首先在自己的電腦上運行Telex所提供的客戶端軟體。但是此軟體里並不包含任何國外IP位址。當用戶使用Telex客戶端登入被禁止網站的時候,用戶首先為Telex客戶端指定一個用戶喜歡的運行在國外的支持HTTPS的網站,它可以是任何支持HTTPS的網站,比如國外商業公司的網站、維基百科加密版、國外銀行的網站、國外大學的網站等。Telex客戶端軟體使用用戶所指定的網站的IP位址構造一個IP數據包,這個數據包看上去似乎像是一個普通的請求連線到用戶所指定的國外HTTPS網站的數據包,但是Telex客戶端軟體卻運用公鑰隱寫術(public-key steganography)技術對這個數據包做了一些手腳。然後Telex客戶端軟體把這個數據包提交。這個數據包由於其目的地IP位址是國外知名商業機構,大學或是銀行的IP位址,而並非用於突破網路審查的國外伺服器的IP位址,所以其目的地IP位址不可能在政府的防火牆的黑名單上出現。而公鑰隱寫術的使用又使得政府無法察覺數據包的內情。所以政府的防火牆只能為這個數據包放行。而這個數據包一旦通過了政府的防火牆到達了國外自由網際網路後,其在被中轉到目的地IP位址之前很有可能經過支持Telex的路由器(而事實上在Telex被骨幹路由器採納之後,數據包一定會經過支持Telex的路由器)。這時,支持Telex的路由器將會從數據包中讀出早前由Telex客戶端軟體運用隱寫術在數據包中埋下的隱藏信息,從而明白此數據包的真正意圖。支持Telex的路由器在獲取了用戶需要的被禁止網站的信息以後,會把這些信息加密並且偽裝成原先目的地商業機構,大學或是銀行回套用戶HTTPS連線請求的數據包送回給用戶,從而達到中間代理的效果。而實施網路審查的國家的政府試圖把國外支持Telex的路由器的IP位址加入黑名單的做法將會是徒勞的,因為經過Telex客戶端加工的數據包一旦通過了國家的防火牆,其在以後的自由網際網路上被中轉的過程中通過哪些路由器並不是實施網路審查的國家所能夠控制的。而Telex的作者們也有意願在Telex獲得廣泛部署以後,隨即在網上公布一部分支持Telex的路由器的IP位址以便學者們研究如何更好的改善Telex。
技術細節
Telex客戶端中包含多個Telex機構使用的公鑰(根據Telex作者的初步估算一兆空間可以提供約二萬五千把公鑰)。Telex客戶端利用HTTPS連線初期客戶端所提供的任意數ClientHello nonce做手腳。Telex客戶端把Telex協定特徵用Telex的公匙加密後作為ClientHello nonce發出,對於沒有Telex私鑰的政府的防火牆來說這只是一個任意數。而擁有Telex機構的私鑰的Telex路由器卻能夠從這個看似任意的數中還原出Telex客戶段的請求,並且從中讀出關於原HTTPS連線的若干參數,使得此路由器變成這個HTTPS連線的“中間人”(man-in-the-middle),然後此路由器就可以把用戶所需要的被禁止網站信息注射入(inject into)用戶和表面上被連線的目的地(商業機構,維基百科,大學,銀行,等等)之間正在進行(on-going)的HTTPS會話(session)之中。而政府的防火牆卻只能看到用戶與國外商業機構,維基百科,大學,銀行,等等之間正在進行一個加密的HTTPS會話,從而無從著手封鎖。
Telex作者稱Telex為一款“以毒攻毒”或“以暴制暴”的反審查軟體。它運用了網路審查者慣用的手段,比如深度包檢測 (deep-packet inspection),中間人攻擊(man-in-the-middle attack)和國家級行為(state-level response)來幫助用戶突破網路審查。
局限
elex由於利用了公開密鑰加密以及網際網路的基本結構特徵屬性在網路層次進行代理,所以極難被封鎖。政府應對Telex的僅有的方式是禁止所有通往國外的HTTPS連線。但在現今的網際網路大環境下,這樣做無異於徹底斷網,將會給該國的經濟帶來嚴重的損失。所以不到萬不得已的時候政府是不會選擇這種做法的。而Telex作者們的基本前提也是實施網路審查的政府會允許其國民使用網際網路,而且實施網路審查的政府會允許其國民連線至少一部分處在國外的安全HTTPS網站。
其次是Telex私鑰被泄露的問題。首先由於擁有Telex私鑰的路由器都是國外受到信賴的機構所有,並且定期由Telex機構性重新評定是否繼續給予Telex私鑰,所以私鑰泄露的情況將會極為罕見。就算私鑰被泄,也有很簡單的解決方案,就是Telex路由器定期淘汰舊私鑰,更換新私鑰。由於Telex客戶端軟體包含大量公鑰,所以要過許多年才能用盡Telex客戶端軟體里包含的大量公鑰。到時Telex機構只要公布一個新版本的Telex客戶端軟體,就又可以被使用很多年。所以就算最終在加密鑰的問題上用戶和政府需要玩貓和老鼠的遊戲,這種貓和老鼠的遊戲對於用戶一方來說玩起來是毫不費力的。
特別有趣的是,由於公開密鑰加密的套用,使得實施網路審查的政府無法像Tor那樣在國內設定虛假代理站點以捕獲和截停用戶的代理訪問。Telex是開源軟體,政府可以下載它的服務端並安裝在自己的路由器上。但由於政府沒有Telex的私鑰,所以仍舊無法解密用戶用Telex的公鑰加密的Telex服務訪問請求。所以就算是帶有Telex服務訪問請求的數據包經過政府的Telex路由器,政府仍舊無法察覺到這些數據包實際上是Telex數據包。只有Telex機構授權的真正的Telex路由器才能解讀出這些數據包。
還有就是Telex並不提供Tor所提供的網上匿名交流服務。通過使用Telex連線Tor網路可以解決這個問題。
Telex對於IPv6的支持將在Telex被廣泛套用以後實現。