转 Shadowsocks服务原理
017年9月21日,一篇名为《The Random Forest based Detection of Shadowsock’s Traffic》的论文在IEEE发表,该论文介绍了通过随机森林算法检测Shadowsocks流量的方法,并自称可达到85%的检测精度,虽然该论文的有效性遭到网友质疑,但机器学习配合GFW已经实现的深度数据包检测来识别网络流量特征的做法是实际可行的,而且还适用于任何网络代理协议而不仅仅局限于shadowsocks。
------这要是真的能行,就全部不能用了 20200425
本文链接:https://www.debuginn.cn/312.html|网络安全法
本文采用:CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接
Shadowsocks运行原理
Shadowsocks可以指:一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种传输包。目前包使用Python、C、C++、C#、Go语言等编程语言开发,大部分主要实现(iOS平台的除外)采用Apache许可证、GPL、MIT许可证等多种自由软件许可协议开放源代码。shadowsocks分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。
Shadowsocks的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。
在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口,使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地Socks5代理。浏览网络时,网络流量会被分到本地socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。
Shadowsocks特点
- Shadowsocks使用自行设计的协议进行加密通信。加密算法有AES、Blowfish、IDEA、RC4等,除创建TCP连接外无需握手,每次请求只转发一个连接,无需保持“一直连接”的状态,因此在移动设备上相对较为省电。
- 所有的流量都经过算法加密,允许自行选择算法。
- Shadowsocks通过异步I/O和事件驱动程序运行,响应速度快。
- 客户端覆盖多个主流操作系统和平台,包括Windows、OS X、Android、Linux和iOS系统和路由器(OpenWrt)等。
安全性
然而Shadowsocks自行设计的加密协议对双方的身份验证仅限于预共享密钥,亦无完全前向保密,也未曾有安全专家公开分析或评估协议及其实现。...