GoAgent
GoAgent是使用跨平台語言Python開發、基於GPL自由軟件協定的代理軟件。它利用Google App Engine(GAE)的伺服器充當代理。該軟件在中國大陸被廣泛用於突破大陸官方建立的防火長城(GFW),以瀏覽被封鎖的內容。
開發者 | phus.lu, HewigOvens |
---|---|
最終版本 |
|
原始碼庫 | |
作業系統 | 跨平台(基於Python) |
類型 | 代理伺服器 |
許可協定 | GNU GPL v2 |
網站 | goagent |
GoAgent分為兩個部分,一部分是需要部署到GAE上的伺服器端軟件,另一部分是用戶電腦上執行的客戶端軟件。用戶需要將伺服器端軟件上載到GAE中[a],然後通過客戶端軟件與其連接,取得被封鎖的內容。為方便用戶使用,GoAgent也提供了自動部署工具。
從2015年8月以後,GoAgent已停止維護,並被開發者刪除。GoAgent作者 phuslu 於2015年3月開始開發另一個翻牆軟件GoProxy,現已刪除。
特性
由於使用Python開發,GoAgent支援多種操作系統,例如Microsoft Windows、OS X、iOS、Linux(包括基於Linux開發的流動作業系統、路由器韌體,如Android和OpenWrt)[1]。
GoAgent的其他特性如下:
運行原理
GoAgent的運行原理與其他代理工具基本相同,使用特定的中轉伺服器完成數據傳輸。它使用Google App Engine的伺服器作爲中傳,將數據封包後傳送至Google伺服器,再由Google伺服器轉發至目的伺服器,接收數據時方法也類似[2] 。由於伺服器端軟件基本相同,該中轉伺服器既可以是用戶自行架設的伺服器,也可以是由其他人架設的開放伺服器。
因為中國大陸的防火長城難以完全封鎖,或出於其他考慮不能完全封鎖此Google服務,到目前為止幾經更新的GoAgent仍舊可以正常使用,儘管在2014年5月底開始,Google又一次遭到中國政府防火長城的大規模封鎖,Google首頁至今仍不能從中國大陸正常存取。[3][4]
GoAgent可以通過HTTP和HTTPS兩種方式連接Google伺服器,用戶可以根據自己的網絡情況酌情選擇。
由於防火長城的封鎖策略調整,Google IP被悉數封鎖,因而該工具的破網效率已大不如前。但是由於Google採用了任播技術,只要用戶能夠自行找到可用的Google IP(例如使用GoGoTester),那麼GoAgent就可以通過用戶找到的IP直接與Google連接,從而提高連接成功率和連接速度[5]。
缺陷
身份暴露風險
GoAgent依賴Google App Engine伺服器,在傳送請求、取得網頁內容的時候,請求報頭中的User Agent會帶有唯一的AppID[6],存在暴露身份資訊的風險[7]。
證書風險
- GoAgent 在啟動時會嘗試自動往系統的可信根證書中匯入一個名為「GoAgent CA」的證書。由於這個證書的私鑰是公開的,導致任何人都可以利用這個私鑰來偽造任意網站的證書進行 HTTPS 中間人攻擊。即使在不開啟 GoAgent 時,這種攻擊的風險仍然存在。換而言之,一旦這個證書被匯入,攻擊者可以用此繞過幾乎所有網站的 HTTPS 保護。
- 在GoAgent 3.2.1版本之後這個漏洞得以修復。
- GoAgent 本身對 TLS 證書的認證存在問題,而且預設時不對證書進行檢查,這導致在使用 GoAgent 時存在 HTTPS 中間人攻擊的風險。[8]
注意事項
由於GoAgent所使用的Google App Engine被認為可以作為開放式代理,因此其使用的美國加利福尼亞州山景城Google數據中心的出口IP地址段會受到部分網站的封鎖或限制(如對維基百科只能瀏覽而不能編輯),以防止惡意攻擊。
衍生專案
GoAgent發佈以後,民間的開發者又發起了眾多的衍生專案,以方便用戶使用GoAgent,像是XX-Net和GreatAgent和GoAgent+。
XX-Net
XX-Net是一個免費的桌面應用程式,是基於GoAgent的一個GUI圖形介面程式,使用起來簡單方便,減少了GoAgent繁瑣的設置步驟,為被審查區域的用戶提供快速、可靠和安全的開放互聯網訪問。它使用GAE代理伺服器通過防火牆。可以自動掃描IP。XX-Net是github上的一個專案。安卓系統則有衍生專案Xndroid。
GreatAgent
此項目旨在提供公共而開放的伺服器端供普通用戶使用,有GreatAgent-ga與GreatAgent-wp兩個版本,分別對應GoAgent與WallProxy這兩個常用的代理程式;除此之外,還提供組態好的Firefox,免去了用戶自行組態、除錯的麻煩。
目前,GreatAgent已部署830個適用於GoAgent的AppID和1210個適用於WallProxy的AppID,兩者在功能上有所不同。GreatAgent-ga版本僅支援Google的搜尋和YouTube的在線視像,並且不支援中國大陸國內網站的訪問;而GreatAgent-wp則沒有上述限制,被稱為「電影 AppID」,意指其連線速率較快,但是抗干擾能力不佳。[1]
GoAgent GUI
GoAgent GUI是一個GoAgent圖形化版本。
GoAgent+
Smartladder是一個內建4947個AppID的GoAgent的打包版本集,包括單獨的GoAgent打包以及作者提供的帶該工具的瀏覽器便捷版。
AppID列表
由於GAE有流量限制和應用數量限制,所以有志願者收集和維護了開放的AppID的列表供大家使用,這樣,用戶便可以在不花錢的情況下,通過類似負載均衡的機制繞過流量限制。
瀏覽器
有些民間志願者將GoAgent組態好,並將其與Chromium等開源的瀏覽器整合,製作成整合包,從而做到一鍵啟動,例如天行瀏覽器(Xskywalker)、暢遊無限瀏覽器等。
楓葉香蕉
楓葉香蕉是一個用Delphi語言編寫的,基於GoAgent、WallProxy等代理工具的代理客戶端。
2014年11月4日,北京警方以「涉嫌尋釁滋事」為由抓捕了其主要維護者許東(OnionHacker)。據報道許東被抓捕和其推特發佈支援佔中言論有關,以及其推特發佈的追求自由言論是其身陷囹圄的重要因素。之後,網絡著名維權人士「超級低俗屠夫」在其推特發起募款行動,為其籌集律師費用。在民間維權力量積極活動和施壓下,許東於2015年1月30日離開北京第一看守所,恢復自由,總共被關押89天.[9]。
在許東被捕後,GoAgent 的主要貢獻者之一phus.lu 在其Twitter中發表聲明,稱其「從未在 GoAgent 獲得直接或間接的經濟利益,也未接受過任何境外和境內組織的捐助;從未提供基於 GoAgent 的公共服務和政治看法」。phus.lu 解釋到,在許東被捕後發表聲明,是為了「以防萬一」[10]。
停止維護
2015年8月25日,在Shadowsocks作者迫於警方壓力刪除其專案之後,GoAgent的開發者也刪除了該專案。[11]
GoAgent專案刪除不久,GitHub即遭到了來自中國的DDoS攻擊。開發者普遍認為此次攻擊與中國政府有關。[12]2015年8月28日,電子前哨基金會針對Shadowsocks和GoAgent被刪除一事發表評論,對中國政府針對翻牆軟件作者的打擊表示了強烈的譴責。[13]
註釋
- ^ 也可以選擇使用已經由其他人部署的GoAgent伺服器,此情況下則不需要上載也不需要註冊帳號。
參考資料
- ^ 1.0 1.1 GoAgent FAQ. [2013-07-24]. (原始內容存檔於2014-09-25) (中文(中國大陸)).
- ^ GoAgent Wiki. [2012-08-24] (中文(中國大陸)).[失效連結]
- ^ Dan Levin. 谷歌服务在中国遭遇大规模干扰. 紐約時報中文網. 2014-06-03 [2014-09-24]. (原始內容存檔於2015-08-05) (中文).
- ^ Keith Bradsher,Paul Mozur. 中国强化网络监管,谷歌的生意不好做. 紐約時報中文網. 2014-09-23 [2014-09-24]. (原始內容存檔於2020-08-10) (中文).
- ^ Tiank. 让GoAgent通过IPV6科学上网. FreeBuf. [2016-01-06]. (原始內容存檔於2015-10-29).
- ^ URL Fetch Python API Overview. [2016-01-06]. (原始內容存檔於2016-04-27).(英文)
- ^ 用goagent干坏事的同志小心暴露你身份. [2013-05-05]. (原始內容存檔於2013-05-07).(簡體中文)
- ^ 翻墙软件 GoAgent 的安全风险. [2016-01-06]. (原始內容存檔於2020-06-17).
- ^ 馬平. 许东在推特支持香港占中 被以“涉嫌寻衅滋事罪”带走. 自由亞洲電台. 2014-11-11 [2014-11-13]. (原始內容存檔於2020-05-02).
- ^ GoAgent 作者 Phus Lu 发布澄清声明. 開源中國. 2014-11-13 [2014-11-13]. (原始內容存檔於2014-11-13).
- ^ GoAgent开发者删除项目,GitHub再次受到DDoS攻击. Solidot奇客. (原始內容存檔於2016-03-06).
- ^ Catalin Cimpanu. Recent GitHub DDOS Linked to Chinese Government and Two GitHub Projects. Softpedia. 2015-08-29 [2016-01-07]. (原始內容存檔於2016-05-06).(英文)
- ^ O'Brien, Danny. Speech that Enables Speech: China Takes Aim at Its Coders. 電子前哨基金會. [2016-05-28]. (原始內容存檔於2016-06-24) (英語).(中文翻譯)
外部連結
- GoAgent在GitHub的首頁(已刪除)
- GoAgent在GitHub的代碼庫(已刪除)
- goproxy(已刪除)
- XXNet在Github上的首頁 (頁面存檔備份,存於互聯網檔案館)
- Xndroid在Github上的首頁 (頁面存檔備份,存於互聯網檔案館)