GoAgent
開發者 | phus.lu, HewigOvens |
---|---|
最終版本 |
|
原始碼庫 | |
作業系統 | 跨平台(基於Python) |
類型 | 代理伺服器 |
許可協定 | GNU GPL v2 |
網站 | goagent |
GoAgent是使用跨平台語言Python開發、基於GPL自由軟件協定的代理軟件。它利用Google App Engine(GAE)的伺服器充當代理。該軟件在中國大陸被廣泛用於突破大陸官方建立的防火長城(GFW),以瀏覽被封鎖的內容。
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的其他特性如下:
- 支援作為本地DNS伺服器使用。
- 支援代理自動組態(PAC)。
- 支援在數據傳送過程中採用HTTPS加密連線。
- 支援Google App Engine,PHP和PaaS三種模式。
- 自2.1.17版本起支援在通訊時加入混淆數據以避免數據封包在傳輸時受到特徵過濾 。
- 允許用戶選擇使用Google在北京、香港或台灣數據中心的IP位址,或者Google的IPv6地址(Google App Engine位於美國的數據中心在中國大陸被防火長城封鎖)。
- GoAgent自3.0.6版開始可選支援RC4加密選項。
運行原理
[編輯]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上的首頁 (頁面存檔備份,存於互聯網檔案館)