小水一篇SS的实现
代理服务器的实现
梯子的实现对我而言一直像迷一样可望不可及,直到有一天去看了一下Shadowsocks
协议的实现,如果不使用AEAD
的话,你会发现真的很简单:
首先,Shadowsocks 是一个 Socks 加密协议代理软件,工作原理如下:
- 开一个 Socks 服务端,接受外部请求。
- 将 Socks 协议使用协商好的加密算法加密,准备发送到远端。
- 如果是第一个数据包,那么先发送一个向量(固定长度),然后发送数据。
- 因为选用的加密类型为流加密,所以并不存在数据帧的概念,每一个字符都可以拿来解密。
- 远端服务器解密后,使用 Socks 的协议的方式转发请求。
如果我们不是为了混淆的话,那么一点点的加密实际上已经绕开 GFW,访问我们想要访问的数据了。
当然,这是一场猫抓老鼠的游戏,GFW在最近加大了它的审查力度,于是很多时候,我们需要把自己伪装的更好,我们只是为了访问下 Google,获取自己想要的资料而已。
具体的协议可以查看 https://shadowsocks.org
最近在研究代理客户端的实现,有机会在放出来。
本文由 Gemini Wen 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 5, 2017 at 11:10 pm