初窥万花筒,浅析Lantern背后的Kaleidoscope设计

chinese-lantern-festival-2012-0111

image via theatlantic

近日一款叫做Lantern的P2P网络封锁突破工具进入了中国用户的视线,以其“通过信任圈子”传播服务信息的特色作为主要卖点,对抗见洞插针(probing)的防火墙系统。若要明白这款服务高调挑战防火墙背后的理由,还得先从它的核心技术Kaleidoscope说起。

Kaleidoscope简介

Kaleidoscope是一个P2P中继系统,主要用途是让被封锁网络域内的用户能访问到被封锁的内容。换而言之,Kaleidoscope的主要目的就是突破网络内容封锁,而非匿名或传输安全性。后者分别是Tor与VPN的主要特性。

在应用需求上的转换使得Kaleidoscope的设计理念也与Tor和VPN大相径庭。作者意识到这个系统最迫切需要解决的问题是来自网络封锁组织的“主动入侵”(伪装成普通用户与伪装成友好中继),因此采取了“有限度服务发现”的策略,以确保在高入侵率与低可用中继数量的情况下,依旧保持较高的网络服务质量。

Kaleidoscope系统的假设

Kaleidoscope的设计遵循“最大化可用性”的理念,即便它不得不牺牲一定的匿名性。用怪叔叔能理解的话说就是——Kaleidoscope会尽可能帮助你看到页面,但如果页面上是违法的儿童色情,它不会像Tor一样保护你不被抓进去捡肥皂。

所以Kaleidoscope的第一个假设就是——大部分被封锁的内容都不是因为非法而被封锁的,而是因为它和敏感信息很像(例如恰好在同一网址或服务器上),而被误杀。这意味着该系统假设“看这些信息大概是合法的”(灰色地带),如果观看敏感信息在这个国家属于明确的违法行为,则用户需要额外使用匿名与加密工具来保护自己的人身安全。

与此同时,为了对抗来自网络封锁方的检测与入侵,Kaleidoscope需要非封锁域内有足够的中继出口,否则网络封锁方可能使用流量检测发现并封堵这些中继。但中继出口毕竟是可遇不可求的东西(就像没被封的Tor Bridge一样),因此Kaleidoscope尝试利用现实中的人际关系与有限服务发现技术来平衡“发现”与“隐蔽”的跷跷板。

Kaleidoscope的第二个假设是——网络内的有足够多的可信中继,无论是否为出口。这非常重要,因为在这个系统里,入侵者需要获得相当的占比才能取得流量检测上的优势(以有效封锁中继出口)。简单而言,假如安全入侵率为1%,则在1000人的网络里入侵者需要拥有10个伪装节点,而在10万人的网络里它需要1000个节点。这也解释了为什么Lantern作为一个分布式网络,比Tor更擅长利用、更依赖与人多势众的力量以达到自我保护的目的。

有趣的是,Kaleidoscope的最后一个假设,是最贴近GFW属性的中国特色。作者认识到网络封锁方掌控着网络架构的最终控制权。也就是说,假如封锁方来狠的,直接拔网线,禁止加密链接或使用白名单,则任何基于这些网络架构的工具都将失败。

因此Kaleidoscope系统假设与网络封锁方周旋的上策不是和它对扛加密与匿名技术,而是如何将自己与普通流量混淆起来,增加封锁方的经济成本——让封锁方不得不冒增大误封概率的险,并增加封锁需要的人力与硬件成本。这个系统促使封锁方权衡入侵网络的价值与成本,期望达到“知难而退、网开一面”的效果。

Kaleidoscope的基本实现

说了这么多假设,我们再来简单聊聊Kaleidoscope的实际方式。

Kaleidoscope系统针对以下几种不利的网络情景设计——

  • 网络封锁方控制着整个封锁域的网络架构。
  • 网络封锁方使用基于IP表,DNS与DPI的干扰技术。
  • 网络封锁方使用流量分析,积极寻找主要的中继出口。
  • 网络封锁方会伪装成普通用户与友好中继,发掘隐藏中继与监控网络数据。

这意味着Kaleidoscope系统必须满足以下条件——

  • 必须是分布式,否则中枢会被封锁。
  • 必须使用点对点加密,否则链接会因为DPI被重置。
  • 必须使用混淆通信包,否则包本身容易被指纹检测发现。
  • 必须使用远程DNS解析,因为本地的DNS查询结果不可靠。
  • 必须允许多点传递,否则中继出口很容易通过流量分析发现。
  • 必须限制节点发现,否则完整网络很容易被封锁方用大量伪装的用户发掘。
  • 必须合理分配流量,否则封锁方可能伪装成友好中继(甚至中继出口),捕获大量网络信息。

值得一提,所谓“限制节点发现”并不是什么特别神奇的算法。Kaleidoscope系统明确指出,当封锁方入侵网络时,总有一部分中继会被封掉——这时不能允许受影响的用户获得新中继,因为假如这些用户能获得新中继,入侵节点也能,这样整个网络很快就会被入侵节点遍历。

事实上不论用户的机器是否能访问被封锁资源,Kaleidoscope系统只要求他们与现实朋友建立可信链接,此外的事情都由系统通过节点发现与多点传递算法解决。

Kaleidoscope节点剩下的工作是通过中继传播自己,这里的传播包含不少艺术——包括控制一个节点能知道与能自我宣传的数量、允许的最大节点转跳上限等等。主要用于防止入侵者设立虚假的节点关系来套取网络信息与流量(例如设置一个伪装的中继出口,再将设立许多中继传播这个出口到可信网络里)。Kaleidoscope系统的论文花了很大段文字解释选择每个参数的理由与最优数值估计,这里就不逐一详述了。

在具体实现上,Kaleidoscope通过UDP传播自己的信息,数据则通过SSL/TLS完成。Lantern客户端使用了证书固定(certificate pinning),避免证书替换导致的中间人攻击;同时确保SSL符合“正向加密”(PFS)要求,避免大规模的数据保存与延迟破解。

Kaleidoscope的测试结果

论文里的测试使用了两套方案,一是利用现有社交网络的人际关系圈的数据作为原型进行评估,二是作者们寻找几十位朋友参与项目测试。光说数字恐怕会让各位睡着,这里大概总结下结果好了——

  • 在社交网络(可信链接)的测试上,Kaleidoscope系统对可信链接数量较多的网络支持更好。Facebook和LiveJournal就比Flickr要更能面对“高入侵率与低可用中继”的环境。
  • 只要还有30%的中继在线,即便入侵者占据了2%的网络节点,出口只占整个网络的0.5%,Kaleidoscope依旧确保用户在3次节点传递以内访问到被封锁的内容(假设网络流量足够)。10%的用户可以直接连上中继出口,而50%的用户可以通过一次转跳连上中继出口。
  • 在实际应用中,作者们发现,除了使用Kaleidoscope系统翻越本国防火墙,还有不少人用它绕过服务器IP限制。

小结

Kaleidoscope(万花筒)作为一个新的分布式中继系统,在“有限度服务发现”与“确保服务高可用性”上有很好的设计理念——这是Tor乃至VPN都没有的特性,完全符合中国特色的上网环境。

但我们也能预测到Kaleidoscope(以及实现它的Lantern)接下来可能遇到的问题。例如说它们一再强调的“信任链接”假设是否能保持下去,还是会被用户的懒惰与知识匮乏所破坏?以及Kaleidoscope系统里需要用到的动态DNS(需要兼容动态IP,否则网络的拓扑变动太大)会带来什么后遗症?这些都是未知之数。

无论如何,我们还是欢迎新一代工具诞生,希望它们战斗下去。

后注

如果你为防火墙服务,又不懂英文,或着懒得读英文,无意中来到这里——请允许我鼓励你考虑下自己生命的价值。在我看来,你比活在监狱中的贪官奸商更让人恶心。他们好歹接受了贿赂拉动了经济。而你,则是在用纳税人的钱,阻碍一个国家的经济与科技发展。

这不是爱国,这是叛国。

参考文献——

  1. Unblocking the Internet: Social networks foil censorsYair Sovran, Jinyang Li, Lakshminarayanan Subramanian
  2. Censorship Circumvention via KaleidoscopeJinyang Li
  3. Lantern Q&A for Developers Team Lantern
  4. Lantern – Kaleidoscope系统的一种实现

Author: 店长

The Master of BitInn

49 thoughts on “初窥万花筒,浅析Lantern背后的Kaleidoscope设计”

  1. 我能想到的设计Lantern都实现了。现在让人担心的是GFW为了对抗Lantern也许会不惜以降低整个互联网出口的通信质量为代价。其后果不仅是Lantern,连现在很多用私有协议小规模在翻墙的人都可能会遭受池鱼之殃。

  2. 要么沉默下去要么玩儿大的

    更希望防火墙能够在未来自行关闭
    改变需要很多年,但我也愿意等着

  3. 这是在用(中国)纳税人的钱,阻碍一个国家(美国)的经济与科技发展。如果真要谈经济的话,控言损害美国媒体业的利益,封网损害美国互联网业的利益,保护本国企业的发展。损害了个人自由是事实,但这无法等同于损害了国家利益。

      1. 现实很丑陋但这是最合理的选项。封网封掉了知识的传播吗?恐怕没有。封掉的是可以方便使用的服务。使用方便的服务意味着财政支出或者接受控制。进口知识、发展自主技术符合中国的利益,进口服务、让中国的互联网产业由美国企业控制不符合中国的利益。

        中国互联网产业落后本质是实体经济落后、人均收入低,无法支持西方的高利润高消费的发展方式,而暂时采取务实而朴实无华的方式。但当下的落后并不说明就应放弃本国产业,全盘引进外国产业。

        1. 这不是一场辩论,我不需要说服你,你也没能力说服我。

          要这真是场辩论,我读完这句话就不会再说什么了。

          “这是在用(中国)纳税人的钱,阻碍一个国家(美国)的经济与科技发展。”

          1. 我当然不是在跟你辩论。我们在对不同的事情产生不满,人的观点受到情势所迫体验不同是正常的。我完全理解你的立场从哪里来,在反对墙这个问题上相信我不比你缺少发言权。我为谷歌献过花,给校长起过底,发表过墙的漏洞,被局子钓过鱼。只有跨过墙之后才发现面对的是另一道高一百倍的墙。你要问我墙是否邪恶,那是肯定的,但也是无关紧要的。

            校长说:“我关上了一些门,但也留下了几扇窗。”这句话是真的。你知道有几个翻墙的屋中象?在我看来,墙无论是在技术上还是在政策上都只是一个duct tape一样的设计,用来抵挡那个一百倍的宏大设计。以前有人对我说同样的话,我曾当作锡箔帽不以为然。现在觉得道德审判的童真已经结束了。

          2. 我在本文哪里提到了任何类似的话题?没有。

            我说的是,GFW是在用纳税人的钱阻碍中国的经济与科技发展。假如这句话踩到了你的底线,你应该反省自己,不是让别人去学习你的中庸觉悟。

            错误的事情,不管有多少政府在做,还是错误的。

            PS: 假如你认为发布过GFW指纹检测就算是有发言权的话,让我效仿GFW给你一个审判——mcv已经成为垃圾留言关键字。Enjoy the censorship, will you?

    1. 封网破坏了自由竞争,让国人被迫用国内劣质不安全的国内IT企业的产品,国外优秀的产品国人用不了,损害到了国民利益,自然也算损害国家利益。

  4. 肉身翻墙的人路过…… 在我看来,封闭网络,阻挡知识和思想的流入,不改变业界规则,只会让国内的科技产业和科研体系一再腐败发酵,产生各种奇葩和业界毒瘤。不用说各位肯定已经切身体验过了吧?

  5. 至少,在五年内GFW都是更高层面的硬性需求。
    互联网产业比石化和电力都要危险,更何况自太祖以来都是由政治化的战略家掌权,GFW这个东西,就像方校长一样应该得到理解而不是唾弃。

    1. 老鼠一样的东西,拿着百姓的钱试图奴役百姓,还自以为正义,你父母知道你干的这些恶心事吗?你怎么没跟方滨兴一样被你自身的老鼠细胞反噬呢让你也体验体验你自己这样的玩意有多恶心。

  6. GFW 并不局限于封杀自由那么单纯的战略意义,没有它的话,国家政权很可能会被颠覆,到头来对谁都没好处,除了真正的汉奸。所以总体上来看恐怕利大于弊,当然对于懂得明辨是非,会权衡合理利益的极少数平民来说,就是弊大于利了。

    GFW 从长远来看迟早会倒塌,但需要一个很关键的前提:本国国民不会轻易地依附欧美主导的价值观。那就是很久很久以后的事情了。

    1. 当然对于懂得明辨是非,会权衡合理利益的极少数平民来说,就是弊大于利了。
      中国人低劣论?支那人必须被管制圈养才能为既得利益者,所谓国家创造财富?

      本国国民不会轻易地依附欧美主导的价值观。那就是很久很久以后的事情了。
      这到是个好提议,其实清朝也有过类似的历史,那就是留头不留发,结果就是筛选下来的人都是奴才,为什么,因为留发的人都死了,只有奴才才有繁衍后代的权利,就好像大自然的进化一样,把不符合环境的物种都给淘汰了,而中国人就在这样的环境里进化了,进化成了奴才。这倒是不依附欧美主导的价值观了,可惜大好江山后来还是被美国人孙文给搞残了。

        1. 那是反讽的用法吧。他认为你是中国人低劣论,所以故意用‘支那’来称呼,意思是你在把中国人看做是支那人。

    2. 这就是传说中的五毛吧?
      政权被颠覆,对你们共产党没好处而已,别绑架我,人家国家政权每四五年被颠覆一次,也没见毛少了一根,反倒是你们,为了能世代骑在老百姓头上喝血,不惜一切代价维持腐朽统治,还假装代表了民意,我呸,真他妈恶心

      1. 曼德拉去世时,奥巴马发表演讲:『很多领导人声称自己认同曼德拉对自由的不舍追求,却没有几个能容忍自己国家内的意见份子。』

        初一看该发言似乎很美好,于是美国追求民主自由的神圣大国形象冉冉升起,GFW 的建造者就该遗臭万年!

        这么快就忘掉斯登诺了?《Time》年代人物都没选他,

        说穿了,奥巴马的演讲也不过是个谎言,美国确确实实也是个笑里藏刀的家伙,当然中国当权者也向来不好到哪里去。但是若没有 GFW 的话,那么就会有更糟糕的情况发生:两大谎言的冲突,于是更为惨烈的流血、动乱则是必然。在下言过毕竟不会分辨是非的人太多了。

        就拿阁下的发言来说,一上来就质疑在下是『网络评论员』,您压根就不会点击在下 ID 的超链接来查明在下的身份吗?网上到处都是在下的足迹,太好判断了。可您恐怕从来没有产生过如此简单的思考吧,就只会一下子被原始情绪驱动,以口号化的语言暴力代替理性思考,『人身攻击』、『树稻草人』、『偷梁换柱』、『转移话题』,什么肮脏的推理谬误都统统用上了,与宣传机构相比有过之而无不及。

        所以说路途漫漫、任重道远啊。

        1. 你基于自己的感觉判断没有GFW,必然会产生大范围的价值混乱导致社会动荡,说到底也是个人的经验判断。这个经验想必也是建立在非常小的圈子和非常短的世间上的(因为御宅你还是个年轻人嘛,没记错的话)。
          究竟你的感觉和事实有多少差距,这个我也不好说,因为我的样本也不大,而且就算是同样的样本,也存在看待角度的区别。
          但是我认为现在GFW绝对不简单是你以为的只是消除价值观干扰的目的。因为如果仅仅如此的话,很多与价值观无关的东西不需要被屏蔽。有很多国内的企业利益包含在其中。至少从这一点来说,它给国民带来的影响是极其恶劣和不必要的。

        2. Ps,仅就价值观问题来说。
          ZF应该做的也不是依靠GFW封堵的办法来过一天算一天。
          古人都知道治水靠疏不靠堵。担心国民的辨别能力不高,应该在孩童和青年教育上鼓励国民独立思考。而不是想着如何去持续愚民。
          你所说的网络暴民,不也是以意识灌输为目的的中国教育的产物么?虽说每个国家的教育都有意识灌输,但程度还是区别很大的。不能说大家都有倾向,就认为都一样了。这跟说全世界都是朝鲜一样荒谬。我现在美国生活,还是感觉到国民普遍的素质不同以及思想自由化的程度不同。
          世界上人们过的不如意的国家很多,但是有GFW的国家并不多。GFW愚民政策所谓的稳定效益是非常值得怀疑的。

  7. 民主和民粹都分不清楚的愤青就别闹了,人家也没歌颂GFW啊,你却一副要弄死人家的样子,中国现在很多愤青就是这样,民主是你能讲话,你的不同异见者也可以平等的跟你在同一位置讲话。但是瞧瞧国内这些所谓“公知”愤青们,见到跟自己意见相左的先给对方扣上五毛的帽子,然后一副恨不得拔其皮食其肉的样子。真正把江山交给这些人手里难道真的比现在会好吗?

    另外,关于GFW,我也不是赞同者,但是就GFW屏蔽的内容而言,真正跟技术,知识搭钩的我真认为不多,屏蔽最多的应属色情网站,其次政治,问题是大部分翻墙的人用的最多的无非三个网站:youtube,twitter,facebook。

    我也坚信,GFW的倒下不用几年,但是一定要把这件事扯到政权上,我也表示我无话可讲,因为我也讲不来,总之古人说得好:“兴,百姓苦。亡,百姓苦。”

    至于文章,的确写的不错,非常易懂的解释了lantern的原理。我自己也试用了,就翻墙效果而言,可能还比不上goagent. 而且相比goagent 20M内存的占用,lantern 近140M内存占用还是相形见绌。

    1. “屏蔽最多的应属色情网站,其次政治”

      说明你并不了解GFW,不要再出去害无知群众了。

    2. “就GFW屏蔽的内容而言,真正跟技术,知识搭钩的我真认为不多”<—-LAUGH!!
      本科硕士在国内,博士在国外。
      深感不能用wiki和google的国内学术界太可怜了!发不出好文章,文章发得慢简直是应该的。

  8. 不上色情网站,所以我也不知道GFW对色情网站的屏蔽情况
    我只知道我利用Google搜索英文的编程资料的时候频繁被墙给我带来不便

  9. 不谈政治,只谈技术。我的工作经常要寻找大量的人文环境服饰资料,而很不巧,在这方面外文资料比中文资料的丰富度与详尽度多出不是一个等级。如果无法翻墙,那我面前就只有一大堆打不开的页面。这是不是妨碍国家利益我不知道,但我绝对知道那是在妨碍我个人合法正当的营生。

  10. 作为启明星辰的一名前员工,我只想说,那份工作是我人生的污点。北信源,深信服,启明的员工,如果有机会的话,还是离开这些恶心的企业吧。

  11. 关于GFW的态度,觉得作者点到即止就够了,剩下的留给大家自行判断就行,感谢作者的文章。

  12. gd就是在骗人,很多事情你拔高了看没必要,也说不清楚。单单养老,医疗。这都是说了很多年的事,结果呢?你是人,我也是人….对不对。lantern这个项目是对的,让大家对这个国家和当权者有一个自己的认识,还有就是也要让他们看看别人是怎么活的。关键的关键是让他们看到自己的力量以及不能再去重复的错误。我不太说“错误”这个词,没有”错误”–因为认知。也就是说我起码要知道,可结果呢….你能知道吗?

Comments are closed.