本页使用了标题或全文手工转换

Shadowsocks

维基百科,自由的百科全书
跳转至: 导航搜索
Shadowsocks
Shadowsocks logo.png
原作者 Clowwindy
開發者 Shadowsocks贡献者
初始版本 2012年4月20日,​6年前​(2012-04-20[1][2]
穩定版本
穩定版本 4.0.8(2018年2月15日,​3個月前​(2018-02-15[3][±]
操作系统 跨平台(基于客户端和远程服务器)
语言 多種,視具體實作
类型 SOCKS代理
许可协议 多種,視具體實作
網站 shadowsocks.org

Shadowsocks可以指:一種基於Socks5代理方式的加密傳輸協定,也可以指實作這個協定的各種傳輸套件。目前套件使用PythonCC++C#Go语言等程式語言开发,大部分主要實作(iOS平台的除外)採用Apache许可证GPLMIT許可證等多種自由軟體許可協定開放原始碼。Shadowsocks分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并建立本地代理。

在中国大陆,本工具也被广泛用于突破防火长城(GFW),以浏览被封锁、遮蔽或干扰的内容。2015年8月22日,Shadowsocks原作者Clowwindy稱受到了中国政府的压力,宣布停止维护此计划(项目)并移除其个人页面所存储的源代码[4][5]。因为移除之前就有大量的复制副本,所以事實上并未停止维护,而是轉由其他贡献者們持續维护中。[6]

运行原理[编辑]

Shadowsocks的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。

在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口,使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地Socks5代理。浏览网络时,网络流量会被分到本地socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。

特点[编辑]

  • Shadowsocks使用自行设计的协议进行加密通信。[7]加密算法有AESBlowfishIDEARC4等,除建立TCP连接外无需握手,每次请求只转发一个连接,無需保持「一直連線」的狀態,因此在移动设备上相對较爲省电。
  • 所有的流量都经过算法加密,允许自行选择算法。
  • Shadowsocks通过异步I/O和事件驱动程序运行,响应速度快。
  • 客户端覆盖多个主流操作系统和平台,包括WindowsOS XAndroidLinuxiOS系统和路由器(OpenWrt)等[8]

安全性[编辑]

然而Shadowsocks自行设计的加密协议对双方的身份验证仅限于预共享密钥英语Pre-shared key,亦无完全前向保密,也未曾有安全专家公开分析或评估协议及其实现。

Shadowsocks不能替代TLS或者VPN,本质上只是设置了密码的网络代理协议,不能用作匿名通信方案,该协议的目标不在于提供完整的通信安全机制,主要是为了协助上网用户在严苛的网络环境中突破封锁。專案貢獻者中不少建議有企業級用途需求的使用者使用VPN[來源請求]

在某些极端的环境下,通过深度包检测(DPI)也有可能识别出协议特征。为了确保安全,用户应做好额外的加密和验证措施,以免泄露信息,无论使用的服务器来源是否可靠。2017年9月21日,一篇名为《The Random Forest based Detection of Shadowsock's Traffic》的论文在IEEE发表,该论文介绍了通过随机森林算法检测Shadowsocks流量的方法,并自称可达到85%的检测精度[9],雖然該論文的有效性遭到网友质疑[10],但机器学习配合GFW已經實現的深度封包檢測來識別網路流量特徵的做法是實際可行的,而且還適用於任何網路代理協定而不僅僅侷限於Shadowsocks。[11]

實作[编辑]

目前Shadowsocks有多個實作支援,以自由軟體形式發佈的主要有原始Shadowsocks(以Python語言編寫)、Shadowsocks-libev(分支專案openwrt-Shadowsocks)、Shadowsocks-rust、Shadowsocks-go/go-Shadowsocks2、libQtShadowsocks、Shadowsocks-qt5(僅作爲客户端)、Shadowsocks-android(僅作爲客户端)、Shadowsocks-windows(僅作爲客户端)、ShadowsocksX-NG(僅作爲客户端)、Outline[12]、V2Ray等等,還有爲數甚多的免費軟體及專有軟體(多數是iOS上執行的,如shadowrocket、Surge等)。

项目转手[编辑]

2015年8月22日,其作者Clowwindy在GitHub上稱,警察在兩日前要求他停止開發Shadowsocks專案並刪除其所有代碼。[13]之後,作者停止維護Shadowsocks,其GitHub專案頁面已被清空。[14][15]消息传出后,许多中国和外国开发商,以及Shadowsocks用户,在GitHub中对作者表示了致谢,对已清空原始碼的项目頁面加星标,因此在当时Shadowsocks成为了GitHub上的热门项目(Trending)。[16]但另有消息,原作者曾作出的据称「透露中國社會現狀」的發言可能遭到某些中國政府支持者的檢舉,從而為後來被要求撤下專案原始碼的事件埋下伏筆,而類似的因個人網路發言不當而被檢舉的事件在中國大陸也「時有發生」。[17]

8月25日,另一个用于突破网络审查的GoAgent项目也被作者自行删除。删除后几小时之内,GitHub即遭到了来自中国的DDoS攻击,據報这次攻击与中国政府有关,因為當局此前曾要求Github移除兩個反對網絡審查的項目但沒有被接受。[18]

2015年8月28日,电子前哨基金会针对Shadowsocks和GoAgent被删除一事发表评论,对中国政府针对翻墙软件作者的打击表示“强烈谴责”。[5]

儘管如此,Git倉庫的日誌顯示該項目被移除以前就有大量的復刻副本,不少副本仍然有用戶維護。Shadowsocks專案頁本身也陸續恢復了內容,並交由多人維護,各大Linux套件的軟體倉庫均有各式Shadowsocks的實作的套件仍持續更新可用。

主要项目分支[编辑]

ShadowsocksR[编辑]

ShadowsocksR是breakwa11發起的Shadowsocks分支,在Shadowsocks的基础上增加了一些資料混淆方式,称修复了部分安全问题并可以提高QoS优先级。[19]后来貢獻者Librehat也为Shadowsocks补上了一些此类特性,[20]甚至增加了类似Tor的可插拔传输层功能。[21]

ShadowsocksR開始時曾有过违反GPL、发放二进制时不发放源码的争议,[22]不过后来ShadowsocksR项目由breakwa11转为了與Shadowsocks相同的GPL、Apache許可證、MIT許可證等多重自由軟體許可协议。

2017年7月19日,ShadowsocksR作者breakwa11在Telegram频道ShadowsocksR news裡转发了深圳市启用SS协议检测并被大量用户转发,引发恐慌[23]。7月24日,breakwa11发布了闭源的SS被动检测程序,引发争议[24]。 2017年7月27日,breakwa11遭到自称 "ESU.TV" 的不明身份人士人身攻击,对方宣称如果不停止开发并阻止用户讨论此事件将发布更多包含个人隐私的资料[25],随后breakwa11表示遭到对方人肉搜索并公开个人资料的是无关人士,为了防止对方继续伤害无关人士将删除GitHub上的所有代码、解散相关交流群组,停止ShadowsocksR项目。但项目已被多人fork。并有人在其基础上继续发布新的版本。

參考資料[编辑]

  1. ^ 发一个自用了一年多的翻墙工具 Shadowsocks. web.archive.org. [2016-12-15]. (原始内容存档于2012-04-22). 
  2. ^ Shadowsocks 的前世后生. GFW BLOG. [2016-12-15]. 
  3. ^ shadowsocks-windows. [2018-02-27]. 
  4. ^ 开源翻墙软件Shadowsocks作者宣布停止项目更新 - | IT-eNews. 2015-08-20 [2016-02-03]. 
  5. ^ 5.0 5.1 O'Brien, Danny. Speech that Enables Speech: China Takes Aim at Its Coders. 电子前哨基金会. [2016-05-28] (英语). 中文翻译
  6. ^ shadowsocks · GitHub. github.com. [2017-02-27] (英语). 
  7. ^ Shadowsocks - spec. (原始内容存档于2015-12-04) (英语). 
  8. ^ Shadowsocks - Clients. [2015-09-05] (英语). 
  9. ^ Deng, Z.; Liu, Z.; Chen, Z.; Guo, Y. The Random Forest Based Detection of Shadowsock's Traffic. 2017 9th International Conference on Intelligent Human-Machine Systems and Cybernetics (IHMSC). August 2017, 2: 75–78. doi:10.1109/IHMSC.2017.132. 
  10. ^ 如何评价 2017 年 IHMSC 上发表的探测流量的论文? - 知乎. www.zhihu.com. [2018-02-05] (中文). 
  11. ^ VV, 特約撰稿人. 道高一尺,牆高一丈:互聯網封鎖是如何升級的|端傳媒 Initium Media. 端傳媒 Initium Media (中文(香港)‎). 
  12. ^ Outline - Making it safer to break the news. getoutline.org (英语). 
  13. ^ clowwindy. Adopting iOS 9 network extension points · Issue #124 · shadowsocks/shadowsocks-iOS. GitHub. [2015-08-22]. (原始内容存档于2015-08-22) (英语). Two days ago the police came to me and wanted me to stop working on this. Today they asked me to delete all the code from GitHub. I have no choice but to obey. 
  14. ^ clowwindy. remove · shadowsocks/shadowsocks@938bba3. GitHub. 2015-08-22 [2015-08-22]. 
  15. ^ clowwindy. shadowsocks/shadowsocks. GitHub. 2015-08-22 [2015-08-22] (英语). 
  16. ^ percy. 中国开发者被警察要求删除软件. 2015-08-26 (中文). 
  17. ^ Vergil. 翻墙=犯法?从许东翻墙第一案说起. pao-pao.net. (中文)
  18. ^ Catalin Cimpanu. Recent GitHub DDOS Linked to Chinese Government and Two GitHub Projects. Softpedia. 2015-08-29 (英语). 
  19. ^ ShadowsocksR. breakwa11.github.io. [2017-03-24]. (原始内容存档于2017-02-07). 
  20. ^ Librehat. 关于ShadowsocksR和Shadowsocks的安全性 – Librehat的部落格. [2017-03-24]. 
  21. ^ Shadowsocks Plugin Spec. shadowsocks.org. [2017-03-24] (英语). 
  22. ^ 奇文共赏,关于ShadowsocksR事件 – Xiaodu Blog. t.du9l.com. [2017-03-24] (中文(中国大陆)‎). 
  23. ^ KPCN. From Weibo, not veri. yet:"Confirmed Shenzhen has begun using Shadowsocks protocol inspection tool. SS users wb cut off broadband cntn". Riddit. [2017-08-17]. 
  24. ^ breakwa11. SS被动检测1.0版 #868. GitHub. [2017-06-24]. (原始内容存档于2017-07-25). 
  25. ^ Tweets with replies by 破娃酱 (@breakwa11) | Twitter. twitter.com. [2017-08-16] (英语). 

外部链接[编辑]

Wikibooks-logo.svg
您可以在維基教科書中查找此百科条目的相關電子教程: