Telex

Telex是一款用於突破網路審查的軟體。使用者通過使用Telex客戶端軟體瀏覽網際網路上被審查的內容。該項目由美國密西根大學電腦科學與工程系和加拿大滑鐵盧大學Cheriton電腦科學學院贊助。2018年，Telex項目演變為折射網絡。

## 概述

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）來幫助使用者突破網路審查。

## 局限

Telex由於利用了公開密鑰加密以及網際網路的基本結構特徵屬性在網路層次進行代理，所以極難被封鎖。政府應對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被廣泛應用以後實現。

## 目前狀況

Telex目前只在一台示範性路由器上運行。已有北京居民成功使用Telex服務觀看YouTube影片。2013年7月Telex機構已經開始與一家網際網路提供商合作進行一次大規模的實驗。

## 未來

Telex機構希望西方大型的網際網路提供商和電信公司會在未來陸續的加入到Telex計劃中，把Telex協議部署到它們的路由器中。最終Telex協議的大規模部署以及把骨幹路由器升級成支持Telex協議的工作則需要在西方國家政府的支持下才能完成。

## 知名度

Telex軟體在著名電腦科技網站Ars Technica上有被報導。並且在第二十屆USENIX安全座談會上獲得二等獎。

## 基本資料

- 開發者：J. Alex Halderman, Ian Goldberg, Eric Wustrow, Scott Wolchok
- 作業系統：跨平台
- 類型：路由