Nemo的轨迹

work hard, be persistent, and good luck

0%

安全技能树简版:好奇心-- 翻墙的历史

停下来看历史

这一篇文章,虽然归类在安全技能树下面,但却不在 知道创宇 思维导图的体系之内.

这一篇的主题,让作者我来说的话, 我是想讨论: “好奇心”.缺乏好奇心的,他不会想到去了解它日常使用的翻墙软件,(不是不去了解,太习以为常导致没这个意识),也不会想着去了解当下发生了什么事情,所以他也应该也不在乎我接下来的内容了.

这篇文章 2018/02/28开始动笔,停停删删,本来集中精力讲Shadowsocks 过去的历史,但过程中我越来越没有把握确保我收集的信息能还原整个事件.
在2月之后国内国外其实发生很多事情, 我也在想, 历史对现在的我们到底意味着什么呢?

我的答案是,** 过去发生事情的模式其实会在未来重复.** .我想了很久,现在能解释这一现象的原因是:个人的进化速度跟不上科技发展,导致我们面对类似事物的时候总是应激性用我们的本能来面对.

这篇文章基本就是我个人对Shadowsock 的好奇心写成的.

当你可以使用一台境外的机器,也就是 vps, 通过 ShadowsocksR 翻墙,达到科学上网的目的的时候.这时候,我建议停下来,问一些问题,例如

  • 事物是发展变化的,也就是说,一开始肯定是有其他的翻墙方法,它们是什么? 为什么它们会逐渐失效?(历史是怎么样的)

  • Shadowsocks 到底是一个怎么样的软件? 怎么有那么多人使用,权力本身肯定也知道它的存在,为什么禁不掉?(现在是怎么样的?)

  • 要是有一天,Shadowsocks 也失效了,我们就没办法了吗? (未来呢?)

有意思的是,我所说的”翻墙历史”,从2011年开始, 不过是这7年的时间,而整个中国互联网,不过二三十年.时间在互联网这个行业是超速的.

翻墙的思路

  • 互联网本质是计算机之间资源的传递

  • 当两台计算机 A,B 被阻隔无法正常交换资源时,可行的方案就是找一个第三方.(也就是使用代理).现在我们接触的翻墙都是基于这个思路.

原理强烈推荐这一篇科学上网原理

Latern :

ssh tunnel:

shadowsocks:

VPN:

上面代理服务其实我们都要回答这几个问题:

  1. 我们的代理服务器是谁提供的?

  2. 代理人是否有能力偷窥我们的数据?

  3. 我是 ZF, 如何封杀?

说明一下,借助这个代理翻墙,它至少是知道你的目的网站的.这里关心的是传输数据内容

代理服务器提供方 是否有能力偷窥 封杀方式
Latern 类型 P2P 共享,形成相互信任节点间有一个能访问外网,服务器靠Latern发现 有.传输过程和服务器都能获取. Latern 本质重在是节点之间交流,顺便把墙翻了.匿名性不是它的第一位 HTTP类型代理,所以机器提供方理论上是能看到你访问的网站以及数据明文 Latern在形成信任节点群之前目前需要依赖一个中央服务器,所以, ZF 往这个服务器动手即可
ssh tunnel ssh 远程登录协议,协议本身自带加密功能,需要有人提供服务器 有. 传输过程由协议保障,但数据到达服务器,服务器可以解密 ssh tunnel数据不可知,但整体的流量特征太明显了,现在这个方法基本不可用
shadowsocks 分为本地客户端和远程服务端,请求的流量经过本地客户端,由客户端转发到服务端.回来如此. 有 同 ssh tunnel 目前还没有,得益于客户端和服务端之间可变可约定的加解密数据方式(流量特征不明显) ssr 可以认为提供更强的加密能力
VPN 需要有人提供服务器 对使用 VPN 服务来说,外部的人最多看到你的流量进去了,但内容是什么完全不可知,这是相对安全但使用起来也很不方便的方式 VPN 现在都是由第三方服务商提供,技术上很难封杀, ZF 做的就是封杀这些服务商

上面说到,一个代理服务器怎么样都会你的目的网站,要是我对隐蔽性极高怎么办呢? 这时候可以了解一下Tor. Tor 实际上是增加了代理人的数量(默认3个),第一个代理人知道流量是从你这台机器请求的,但它只知道下一个代理人的目的地址,并不知道你的目的网站.而最后一个代理人,知道你的目的网站,但不知道这些流量来自于你(它只知道流量来自上一个代理人). 默认3个代理人隐蔽性会更强,付出的是增加访问时间的代价. ( Tor 这种方式也不是绝对安全,蜜罐了解一下,所谓蜜罐,就是你每一个代理服务器都被劫持或者都是为了监视而存在,这时候就相当于只有一个代理服务器,隐蔽性全无)

更多底层技术索引

提一下,自己找资料(我也讲不来),留意加粗字段

Latern 走的是 ** HTTP代理 ** ; ssh tunnel和shadowsocks 走的是 SOCKS代理 .

OSI模型 中, SOCKS 比 HTTP 更接近底层,理论上更安全.

OSI模型 中, VPN是在 IP 层, 比SOCKS 还要底层.

ssh tunnel :客户端的 app 走SOCKS代理,这里可以认为只是把流量通过 ssh 协议原封不动转到远程服务器

shadowsocks: 客户端的 app 走SOCKS代理,流量经过shadowsocks 客户端,客户端进行数据处理(加密), 然后shadowsocks客户端把数据转发到shadowsocks服务端.

HTTP 传输数据明文可见,还有中间人攻击风险. 市场上接近方案是** HTTPS**.

所谓 HTTPS , 等于 http+ssl/tls .

ssl 是更底层的通信协议, ssh 也是基于 ssl 的

*标准化的 ssl 就是 TLS(Transport Layer Security) *

ssh 协议的实现方式很多,市面绝大部分使用的是开源的 openssh. 在我毕业那一年(2015),爆出 Heartbleed bug 事件.

ssh tunnel 底层使用的是 RSA加密,传输的数据内容我们可以认为无法破解的.内容没有特征,但ssh 本身的流量特征 是明显的.按照这样的思路,GFW 就可以对这种方式进行封杀.

这时候, 有人想到了说,既然 ssh 是可以被识别的,那我做一个类似的隧道,但不基于 ssh 可行不? 放开来想,我要是可以支持多种加密方式,或者说,连加密方式都是可以选的,可以配置的,那 GFW使用流量特征 来屏蔽不就更难了? 这样的思路下,shadowsocks 出现了, 实现的这个人就是clowwindy

本质上 ssh tunnel 和 shadowsocks 是在** TCP 层** 进行的. 而 VPN 则是在 IP 层 .可以这样认为,越是往底层走,还原数据的可能性越低.Socks协议是在传输层,HTTP协议属于应用层,(http是使用明文传输, https 加入了第三方证书做担保,但实际上,中心化的第三方证书机构也是会出现漏洞的)

vpn 是在 ip 层.这要怎么理解呢? 那shadowsocks为例,shadowsocks client 端只知道手里的数据最终要到达 shadowsocks server . 这期间数据要怎么到达是由路由决定的.可能就是通过了好几台服务器最后才到达.(放心,这个过程经过的服务器是看不到实际数据内容). vpn 不一样,他明确的指出,我的下一站通讯的机器就是我远端的服务器.我们只要保证通讯过程的安全即可(通信协议)

阅读思考

科学上网原理

科学上网(1)–shadowsocks解读

TLS,SSL,HTTPS with Python

为什么不应该用 SSL 翻墙

SSH隧道翻墙的原理和实现 :

Shadowsocks与SSH两种socks5代理方式的比较

SSH和VPN凸墙的区别与联系分析

用VPN就像上网时带上安全套

暗网?不,是”蜜罐”

你能相信Tor的出口节点

如何翻墙?–写在 BlogSpot 被封之后

技术之外,人的故事

下面是我了解到的答案,过去的事情全貌就是一个罗生门,所谓了解到也不过是大象的一只腿.

2010年3月: Google 退出中国

2015年8月:clowwindy 的观点

关于暂时停止更新ShadowsocksR

有人对事情的整理:

2015-09-03: clowwindy喝茶事件

2017-11-13: 最近事情有点多,关于SS(R)那点事儿

2016-07-28: 关于这次的SSR作者被人肉事件

有人对这些事情的看法:

谈网络

记念 ss,向一个伟大的创造告别
上面是我想让大家看的,有一种看事情的角度是这样的: 分清楚什么是 fact OR opinion. fact 是客观的, opinion 是主观感受.我们来谈谈三个 fact.

  • google 被封. 事实,没什么好谈的.

  • clowwindy喝茶

  • BreakWa11被人肉

下面是我对事情本身的看法:

clowwindy喝茶

我看到了两个点:

第一点: 我不知道原来开发一个软件还可以上升到国家安全层面,这是我之前不知道的地方.程序员是有杀伤力的.不仅仅是一个码农.

第二点:开源精神. clowwindy 在这个开源工具的感想,这段话真的是触动,不对,刺激到我的神经了!, 我问,难道这会是一个技术人的下场?

那是自然的咯.这边加了什么功能,它马上扒过去合并了.它那边加了什么却不会贡献出来给其他人用,久而久之,不就是它那边功能更多了吗.
一直以来我什么都没说是因为我对他还有点希望,所以得给他一点面子不是.一开始我还只是纳闷他为什么不发 pull request,过了一段时间我才明白,这个世界上也有这一类的人.不尊重 GPL 就算了,把作者名字换成自己的,还在主页上加上官方的字样.为什么我们这边反而不说官方呢?因为我希望这个项目是没有官方的,人人都是贡献者.想不到这个社会人人都围着官转,人人都巴不得当官 .
既然他没有尊重别人劳动成果的意愿,那他那些不开源的理由想必也只是借口.说因为加了一些试验性功能会不兼容所以暂不开源.他弄了一个混淆 TCP 协议头功能,在界面上标注提升安全性,吸引用户打开,然后安装他自己的不兼容服务端.然而我分析了一下之后发现这个功能的设计就是想当然,用得多了以后反而会增加特征.如果你真有什么试验性功能,不是更应该开放出来让所有人帮你分析么,大家一起讨论么?在加密算法领域,只有经过足够多人和机构的审视的算法,才能视作是安全的,闭门造出来的怎么能用..
当然啦,大部分用户才不会管这些,他们不会分析你是不是真的安全,也不会做道德判断,只要他们觉得好用就行.所以可以看到,这种环境下开源其实并没有什么优势,只不过为一些人抄袭提供了便利.这种环境下最后留下来的都是这些人.
我一直想象的那种大家一起来维护一个项目的景象始终没有出现,也没有出现的迹象.维护这个项目的过程中,遇到 @chenshaoju 这样主动分享的同学并不多.很多来汇报问题的人是以一种小白求大大解决问题,解决完就走人的方式来的,然而既不愿提供足够的信息,也不愿写一些自己尝试的过程供后人参考.互帮互助的气氛就是搞不起来.对比下国外的社区差好远.
最适合这个民族的其实是一群小白围着大大转,大大通过小白的夸奖获得自我满足,然后小白的吃喝拉撒都包给大大解决的模式.通过这个项目我感觉我已经彻底认识到这个民族的前面为什么会有一堵墙了.没有墙哪来的大大.所以到处都是什么附件回帖可见,等级多少用户组可见,一个论坛一个大大供小白跪舔,不需要政府造墙,网民也会自发造墙.这尼玛连做个翻墙软件都要造墙,真是令人叹为观止.这是一个造了几千年墙的保守的农耕民族,缺乏对别人的基本尊重,不愿意分享,喜欢遮遮掩掩,喜欢小圈子抱团,大概这些传统是改不掉了吧.
现在维护这些项目已经越来越让我感到无趣.我还是努力工作,好好养家,早日肉翻吧.

BreakWa11被人肉

恶心至极

之后在2017年7月的时候, ssr 作者,破娃遭到人肉. 之前 ss 和 ssr 之间我觉得就是正常的交战,你不能说谁对谁错,起码战争是针对工具本身.随着时间的流逝,产品是能够向上发展的. 直到发生了人肉,这是一种极其恶心的做法.对一个产品不用害怕衍生出很多分支,也不怕不同分支之间的战争,最怕的是没有人敢接着维护,人人自危,最后产品死亡.这才是最坏的结果.人肉这件事,我感觉就是在走向这样的结果.所以我用了”恶心”这个词.

幕后的人如果不是三岁孩童,一定很清楚公布出这些资料究竟意味着什么 – 完全毁掉一个人所拥有的平静生活

一群青蛙都要被开水煮熟了还不忘相互攻讦. 一群猪看着屠夫磨刀霍霍还不忘先内斗一番

SS 和 SSR 的争论凿怎么看

Steve 曾经说过他喜欢互联网的一个原因就是,用户要是喜欢你的产品,他们就会购买.他们口袋的钱就是一张表决票.这是一件很简单的事情.2C的产品逻辑很简单.2B 是决策者经常 confuse, 不知道他们要的什么.

ss 和 ssr 现在受众非常广,大家都喜欢.重要的是,大家都可以在他们的源代码上提出”意见”,是在不爽自己写一套,真牛逼大家都回来用你.时间的问题. 能暴露出来的问题实在不是问题,怕的就是你看不到的东西.

然后有人说阴谋, 我这里给你一个脑洞最大的阴谋. 要让一个好用开源的翻墙软件失效,我是 ZF 我会怎么做? 当然不会直接断你的网.我会从内部分解.我会让有技术的人打进这个开源的软件,先贡献一番,然后在关键时刻捅别人一刀.甚至再大一点,整个项目其实就是一个棱镜计划,但仔细想想的人会觉得不可能,源码之下,没有秘密.

开源软件拿去商业道德么?

正如我的文章,你想转载,我会很开心,最好附带我的源地址.没有也没有关系,能用我的文章让你赚到钱是你的本事,这并不是我一开始写博客的目的.

要是我真的足够牛逼,要是你不只是想赚点小钱,你就应该考虑可持续发展.你盗取只能是一时,别人也可以做到,既然这样,为什么不找我合作把事情干得更好.

我会觉得 恶心的摘录是: 不管上下文,只摘取只言片语导致片面.

两则寓言故事

巴别塔: 上帝怕人类直达真理,于是使用不同的语言把人类隔绝开来.

猴子与香蕉: 笼子的猴子一靠近旁边的香蕉,就会被人用水柱冲洗.这样重复到没一只猴子敢打香蕉主义.新进来的猴子一靠近香蕉就会被其他猴子围殴,等到笼子里的猴子都换了个遍,它们都不知道水柱的存在,新进来的猴子一靠近香蕉还是会被围殴.它们只是太习惯这样了.

一个是权威与凡人的故事. 一个是凡人之间的故事

好奇心在前,历史在后,现在在发生什么?

这篇文章,从2月份动笔到现在,现实世界发生的事情:

  • 国内头条(字节跳动)快手短视频被约谈,向用户推送的视频不符合价值观.这里我关注的是一个快播提出的一个观点:技术中立

  • 字节跳动旗下的糗事被封停.的确很意外.我更相信新一代的如果不是在国内跟 AT 厮杀,战场应该延伸到世界.

  • 中兴事件(厉害了我的国 所有影院同时下线)

  • 中美贸易战

  • 叙利亚被炸

  • 朝鲜宣布无核化,朝韩和解.

  • 5月8号,中美针对贸易战商谈,结果怎么样官方都没有一个反馈.但可以观察接下来发生的: 总理去日本,大大跟三胖会晤.美方退出无核化协议.

  • 5月10号滴滴顺风车事件

一位评价十分到位: 滴滴把它当成了社交产品在做.

大家都垂涎着社交这口肥肉,但不是谁都适合.上一年支付 bao 事件估计让他们明白了他们做社交是让自己变 low, 我也相信这让他们明白了自己的优势是在哪里,所以有了18年在支付上的收复失地.

  • 5月11号,二更食堂 无下限的推文.消费死者. 这是一个什么样的时代? 大家想流量想疯了? 这是我的第一感觉. 我现在看到的这些傻逼, 我期望的是,以后这些错我不能犯!

还有一个大家可能忽视:大家声讨犯罪者,我看到的是他的样貌,身份证家人资料全部在网上被曝光, 这跟上面破娃被人肉其实是一样的.一个法制社会,真正有罪是让法院决定的,在这之前,他都应该假定是无罪的.声讨的群众其实就是在变相的暴力.

有人问,难道法律放过坏人,要是受害者是你的亲人你就不会这样说了.我的回答是:我坚守让法律来裁决正义,但我没说当我不认可这个结果的时候我不会采取行动.两码事!

  • 5月12号: 网络中立法废除

  • 5月17号,谭秦东对鸿茅药酒道歉,鸿茅药酒撤诉( What??? 原配变小三)

  • 5月18号, 暴走系列下线,辱先烈( 承认有些东西不该被消遣,但看看上下文可好? 头条也是够速度的 )

  • 7月19 疫苗事件,类似的事情16年已经有过.年前的红绿蓝幼儿园事件到被淡忘到现在新的事件,这是怎么了?!

  • 7月23 公益负责人雷某以及站出来发声的女生.龙泉市Metoo事件.打着公益慈善的旗号做坏事,比赤裸裸的恶恶心多了. 改革,经济上去了,其他都没有.

  • 7月29日 我一直体检的机构美年大健康爆出的问题.好像很遥远的事件有一天终于也来到你的身边一样.

  • 7月31日 江西抢棺材.大地之下,荒诞的事情不少见.
    …..

  • 8月23号: 三个月不到, 滴滴顺风车又出事了, 是一位20多岁女受害者.

  • 8月24号: 山东寿光,被隐藏的是后面发生的原因,众说纷纭,但在天朝估计是看不到真相了.

我其实挺想写一篇文章的,题目是 当我们在谈论数据的时候, 我们实际在谈论什么? 我们谈论的是一个个人,一个像你像我一样有着鲜活生命的人,而不是一堆数字. 同样的,我们在谈论别人的不幸时,我们到底在讨论什么?

世界事情还在发生,这是我们生活的世界,实实在在还在发生各种各样事情的世界,即便这样,你还要继续装作看不见?

(补充: 我已经不想补充事件了,这一篇就这样.一个声音告诉我事情不会变的更好,悲观了点,即使现在我像以前那样不闻不问,虽然现在舒服了,但我迟早要面对一个问题:我怎么教育我的下一代,要是 ta 们存在的话.另一个声音告诉我 cheer up ,至少我还能选择接下来我是什么样的,有美好有丑陋,我他妈其实还有 fucking choice.)

(0827 无所谓悲观乐观, 看着就好,真实记录就好)

结束

这篇文章,以一个视角希望让读者知道过去发生了啥,然后现在在发生啥.
这篇文章,我承认是很具备”情绪”的,改版多次,因为实在太难写了.我到底想向读者传递什么,这是我一直在思考的.

wiki 对价值观的解释

一种深藏于内心的准绳,在面临抉择时的一项依据.

如何看待汉娜·阿伦特提出的平庸之恶(The Banality of Evil)

电影: 朗读者 The Reader

书籍 :为什么常识会撒谎