红墙穿梭机(RWS)的开发新进展(针对白名单的更新+P2P微博功能)
去年8月我们启动了命名为《红墙穿梭机》的翻墙软件项目,软件起初使用C++开发,结合诸多优秀翻墙软件的优点(软件的介绍请看附文),在公布开发计划之后立即吸引了几十名程序员的参与,软件顺利的按计划开发,并很快发布了软件原型和设计结构图。
大家集思广益,软件的设计可以说已经很是完善地,但当时我们忽视了一个人为的因素,即:如何能够在墙外推广,吸引大批的墙外网民,特别是外国人主动参与进来,义务为我们提供翻墙代理?P2P的架构,如果没有人用,再完美也没有用武之地。
今年初,我们对红墙穿梭机进行了重新设计(转用JAVA编程),以吸引各国自由网民的参与: 建立P2P微博系统做底层架构,用去中心化,匿名微博来吸引更多的人使用(Decentralized Anonymous DarkNet Mciro Blog)
在新的设计中,翻墙代理功能是建立在P2P Darknet 基础上的,理论和实践均证明这种设计能有效的保护个人隐私,甚至是你的IP地址都不会被发现。这套P2P微博网络中(在此代称D Net)不会有任何必须经过的中心节点,不会有任何审查机制,所以用户可以选择完全匿名的,不受任何审查的交友,发推文。
(P2P微博示意图,注意:其中不需要微博网站,也就不存在被墙的问题)
去年8月我们启动了命名为《红墙穿梭机》的翻墙软件项目,软件起初使用C++开发,结合诸多优秀翻墙软件的优点(软件的介绍请看附文),在公布开发计划之后立即吸引了几十名程序员的参与,软件顺利的按计划开发,并很快发布了软件原型和设计结构图。
大家集思广益,软件的设计可以说已经很是完善地,但当时我们忽视了一个人为的因素,即:如何能够在墙外推广,吸引大批的墙外网民,特别是外国人主动参与进来,义务为我们提供翻墙代理?P2P的架构,如果没有人用,再完美也没有用武之地。
今年初,我们对红墙穿梭机进行了重新设计(转用JAVA编程),以吸引各国自由网民的参与: 建立P2P微博系统做底层架构,用去中心化,匿名微博来吸引更多的人使用(Decentralized Anonymous DarkNet Mciro Blog)
在新的设计中,翻墙代理功能是建立在P2P Darknet 基础上的,理论和实践均证明这种设计能有效的保护个人隐私,甚至是你的IP地址都不会被发现。这套P2P微博网络中(在此代称D Net)不会有任何必须经过的中心节点,不会有任何审查机制,所以用户可以选择完全匿名的,不受任何审查的交友,发推文。
(P2P微博示意图,注意:其中不需要微博网站,也就不存在被墙的问题)
同时我们计划衔接各种微博的API(Twitter,Buzz,Sina,QQ,163,QQ,饭否等等)以争取更多的人回归无墙网络,(当然,选用其他有服务器的微博api就无法完全匿名了)。
在D Net基础上,我们将建立翻墙系统,让同在此P2P微博中的各国用户可以互相帮助的翻墙, 这套翻墙系统,拥有比其他翻墙系统更优越的特点:
1. 翻墙代理的获取可以通过P2P微博很方便的获取。
2. 相比Tor等软件,如果我们能够争取到很多其他有墙国家的用户也使用,那么这些国家的用户也可以互相帮助翻墙,因为各国的GFW多是封杀本国语言的网站,所以中国用户可以使用白俄罗斯,沙特,越南等国家的用户所提供的代理去看封禁的中文网站,反之亦然。这也就减少了对欧美等西方国家提供代理的依赖。
3.D Net的网络通讯特征将模仿其他网络通讯特征,如QQ,P2P TV等以防止被侦测,通讯端口随机调整,避免端口被封。
4.D net 将支持UDP和TCP两种协议。
5. 即使无法翻墙,比如变成国域网了(伊朗正在从国际互联网中断开,朝鲜有自己国内的“光明网”),因为墙内用户仍然能自由使用p2p微博,所以D Net中的同墙内用户仍然可以自由的通讯。其实我们翻墙,也多是去看出口不许内销的国内信息罢了。
RWS-D Net的开发已经接近尾声,P2P微博也进入了使用界面的开发阶段,我们还邀请了世界著名的黑客程序员参与研发。因为主程序员请假,我们的开发计划需要稍有调整,需要邀请更多朋友参与开发,提供支持。
1.JSP程序员,本套系统的所有应用都将使用Java语言开发,需要熟悉web编程的Java程序员。
2. 熟悉使用Socket的Java程序员,用来开发P2P微博的主应用,RWS的Proxy Distributing Center和 Proxy VPS(见图)。
3.熟悉使用java设计程序界面(部分为WEB界面)
4.能够使用Java开发图片验证码功能。
5.熟悉微博API的开发人员,做与Twitter,Buzz, Sina等微博系统的衔接。
6.多平台移植, 我们的p2p微博设计考虑到手机上网的特性(对带宽和内容大小的限制)需要熟悉向手机平台移植的Java程序员,特别是熟悉Android系统的程序员。
7.有能力帮助宣传推广的人士,特别是美工,网站建设。
8.需要一定的资金支持,用以运转RWS翻墙代理节点的转发系统(Proxy Distributing Center),建网站,宣传推广,软件和系统的后期维护, 作为免费开源软件,软件的开发由具有自由精神,开源精神的热心技术人士共同完成(这个贡献就不能用钱来算了)。
最新版的Freenet0.7.5中提供一个p2p微博的插件,叫Sone,大家可以试用,体验一下,不过Freenet的设置非常复杂。我的Sone ID是Max-AntiGFW,欢迎关注。
这套p2p的微博+翻墙系统建成后,将对GFW发起终极挑战,即使今后中国也变成了国域网,仍然无法阻挡人民对言论自由的渴望,当局封禁我们就剩两招了:
一、 再次强行命令安装绿坝,这个已经被网民的愤怒击退过了,现在网民人口已近5亿,天晓得要怎么强制。
二、彻底取消互联网,大家回到联机打红警的时代(埃及掐掉互联网后,网民可坐不下来打红警啊,都上解放广场了,呵呵)
希望朋友们多多将此文转告,赢得更多的朋友响应,支持。
谢谢!
愿意参与开发或以任何方式支持我们的朋友,请联系nogfw.cn@gmail.com Twitter @no_gfw
Max贝立
基于P2P: Freenet(国内大学对Freenet V.0.7.0的简介)
Freenet 起源于1997 年,是由爱丁堡大学的 Ian Clarke 发起的一个研究项目。该系统是一个完全分布式的,支持匿名的文档存储和检索的 P2P 应用系统。它允许在发布、复制和检索文件的同时保护发布者和检索者的匿名性,其主要设计目标是:
保护文件的作者与读者的匿名性。
文件存储者的否认本领。
高效的信息路由和分布式的文档存储。
消除所有的单点控制和单点失效。
也就是说它完全是自组织的,没有人,计算机,或者组织控制 Freenet 的运转。这也意味着 Freenet 不会象集中式的 P2P 网络那样可能受到攻击。它不仅可以像 Maze 等其他P2P 网络那样共享文件,它还可以像因特网那样发布站点,使用即时通讯软件以及发送邮件。
使用方法
freenet版本是 0.7(最新为0.7.5 Build #1379 2011/06/25) ,代号“Darknet”。可以从 http://freenetproject.org 得到最新的版本。建议使用 firefox+gladder 访问此网站,下载离线安装版本,然后安装。在安装及配置的时候,程序会提示你必须知道 5 个使用 freenet 的可信任的好友,才可以以安全的方式通过这些好友他们接入网络。如果没有,则只能用一种不甚安全的方法通过系统自动寻找一些陌生人接入网络。之后还要配置自己本地给网络上提供的空间的大小。最终可以看到自己的个人页面。之后的使用方式类似于 maze 等 P2P 软件以及使用 IE 上网的混合体,只是其内容一般仅限于 freenet 中发布的内容。当然,也有一些页面会有到 Internet 的链接,如果你点击这样的链接系统会发出安全警告。
原理简介
Freenet 由若干个独立自治的节点组成,每个节点都向系统贡献一部分自己的存储空间,同时也可以检索系统中的共享文件并请求使用系统中其他节点的存储空间来存储自己的文件。系统中的每个文件用一个与位置无关的 key 来命名, 每个节点需要维护一个本地数据存储 (datastore) 和一个动态的路由表。
Freenet 系统的路由机制借助本地路由表采用深度优先的原则进行资源查询[6]。图 6 是一个典型的文件查询执行过程,图中在节点A 初始化一个查询请求查找 key 值为 536 的文件,节点A 把请求传递给节点B,节点B 又把请求传递给节点C (因为在B 的路由表中节点C 拥有一个最接近536 的key 值)。节点C 因没有其他的邻节点,故向节点B 回溯一个"查询失败"消息;节点B 再进行第二次选择将请求传递给节点E, E 又将请求传递给节点F,节点F 又传递给节点B,此时因出现环重新回溯到节点E; 节点E 进行第二次选择又将请求传递给节点D,最终在节点D 找到key 值为536 的文件;最后沿原路E→B→A 将目标文件传给最初提出请求的节点A。
Freenet 系统中的插入操作类似于上述查询操作,每个节点也是依据本地路由表选择一个合适的节点传递请求。区别在于当HTL 为0 时成功结束,若在途中发现将要插入的数据已经存在于某个节点时,表明产生冲突并以失败提前结束插入操作。
图6: Freenet文件查询执行过程
攻击方法
偷听:虽然传输内容是加密的,但是一些用于路由操作的元信息是可以获取的。因此恶意节点可以通过分析通过它的元信息得到哪个节点查找了什么样的key值文件,哪些节点响应了这样的请求。
交通分析:在一些关键性的位置设置节点进行监听,并对监听到的信息进行分析就能对整个网路实施监控。尽管Freenet协议规定,消息在传递深度为0时总是以某种概率继续向前传递;深度每经过一跳并不总被自动增K,而是按照限定的概率保持不变;以及一个初始的随机选择的深度值等措施;都保护了发布者和查找者的匿名性。但这些字段的存在,仍然可以被攻击者使用从而缩小他们判断谁是请求发起者的范围。通过对流经节点的交通量的分析, 可以获得一些重要的信息。如果节点W 向节点X 提出一个请求, 并从X 节点收到了回复,但却没有看到该请求消息从节点X 流出,那就可以知道节点X 存储有该目标文件,或者节点X 就是目标文件的发起者。由于Freenet的路由机制是依据key值的相近性进行的,显然不存在key值的匿名性。这就使攻击者通过对比收到消息中的key值和节点自身提供的key值的相近程度, 就可以得到一些关于自己在当前查找路径上所处位置的暗示。如果一个节点收到请求消息中的key值与它本地持有的key值一点都不接近, 就可以猜测它的直接上游节点就是key值对应文件的请求者或者它自己距离这个请求者非常近。
路由攻击:Freenet协议规定节点可以单方面修改途经自己的回复消息中的数据源字段,宣告自己就是目标文件的存储者。这样一来就给恶意节点提供了路由攻击的机会,它可以将每一个经由自己的回复消息的数据源字段改为它自己,使大量的查询请求消息都被路由到这些节点,致使大量的查询失败。恶意节点还可以向网络中插入大量的垃圾文件企图耗尽整个系统的存储空间,使大量真正有用的文件被替换出去,从而造成大量的查询失败。
虽然上述攻击方法的存在,但由于 Freenet 是一个不存在集中控制的P2P网络,所以这些攻击都只可能对 Freenet 网络的一部分造成损害而不会造成全局的瘫痪,因此无论恶意攻击者还是 GFW,以现在的技术来说对于 Freenet 都是无能为力的。
对Freenet(0.7)虽然没有好的封锁方法,但它局限在 P2P 文件共享和传输。
补充:
在0.7.5版本的Freenet中集成了Freesite可以用来在Freenet中创建网站,FreeTalk可以创建P2P的BBS,而Sone则是正在开发的Freenet中的微博系统,至此,Freenet已经不再局限为p2p file sharing,而成为与WWW web平行的全方位网络,由于freenet的操作过于复杂,推广不易,所以我们开始开发基于Freenet相同原理DarkNet的P2P 微博系统,并提升抗GFW能力的翻墙特性,以使RWS能方便快捷的运行在包括手机在内的多种平台上。
以下是RWS在使用C++开发时的公开说明,与上面所说不一致的地方以上文更新的开发设计(JAVA)为准
目前针对GFW的代理方案大多具有明显缺陷,最主要的就是代理地址不足和容易被封锁,如赛风,自由门等是由机构来提供IP代理地址,这就需要有付出高昂的费用购买IP地址,甚至不停的更换域名,https证书等。
而tor由匿名上网的支持者志愿提供IP代理地址,可供用来代理的IP相对充足,可又会因中央节点被封锁而无法找到新的代理。
vpn等新的代理服务又由于绝大多数是收费的而局限了使用范围。
解决现有问题的计划:
为此,我们计划针对GFW封锁,打造一款由全球反网络审查志愿者被封禁志愿提供IP代理,中央节点不能封锁,同时保障信息自由和网络安全的NoGFW Shuttle(NoGFW红墙穿梭机)。
同时通过此软件也能很有力的吸引翻墙者参与到我们的反gfw网聚中。
所需开发人才
b. 熟悉jsp,会生成图片验证码、会socket编程的程序员。
c. 熟悉网络,熟悉各种网络软件配置及其原理的人员(一般是在各个公司的IT部门担任网络管理原的职责)。
d. 熟悉图形界面开发的技术人员。
e. 熟悉嵌入式系统的技术人员。(本软件有向硬件发展的潜力)。
NOGFW加密代理软件技术构想
1. 目标
打造一个分布式、中央节点难以被封锁、服务提供者和服务使用者多元化的加密代理系统。
2. 设想
为了实现我们的目标,我们初步设想由网络审查比较少的国家的普通大众提供服务,使得服务得以是分布式的;服务提供者把其提供服务的信息发布到难以封锁的中央节点中,服务使用者即可从中央节点中获取服务信息即可使用服务;服务提供者可以在计算机中安装软件提供服务,也可以使用定制的嵌入式设备提供服务,使得服务提供者多元化;服务使用者只要使用支持HTTP(S)代理服务器协议的软件即可使用服务,使得服务使用者多元化。
3. 架构
这个项目分四部分:
一、IP代理提供方软件,将志愿提供者的互联网接入变成翻墙客的翻墙通道。
二、第三方发布点(可提供RSS feed,Email,IM发布功能的服务)将服务提供者代理IP加密公布。
三、中央节点,进行信息的交换,解析,验证将双方连接。 四、服务使用者所需软件,解密接收到的代理地址,建立翻墙通道。
服务使用者运行客户端软件后,自动从中央节点获取服务提供者的信息,从而可以使用服务。自动把其信息发送给第三方信息发布点,由第三方信息发布点统一把信息发布到中央节点中。服务提供者运行客户端软件后,自动从中央节点获取服务提供者的信息,从而可以使用服务。
第一阶段
起步实现点对点的加密连接 允许代理服务的提供者和使用方可以直接建立加密的代理通道 实现一对一乃至N对一的翻墙功能。
第二阶段
适用于小规模用户的项目开发,在得到一定规模的代理服务提供者后,在能够以有限的人工发布IP资源的条件下,设置第三方发布点,手动的收集整理服务提供者的IP带宽等信息以RSS feed,Email,IM等方式将服务提供者的信息加密公布。 设置中央节点,进行信息的交换,解析,验证将双方连接。四、服务使用者所需软件,解密接收到的代理地址,建立翻墙通道。
第三阶段
适应于大规模用户的项目开发,在得到大量的代理服务提供者后,需要更加合理的平均分配代理资源,此时设置专业的目录服务器(或邮件服务器)对资源进行整理归类并均衡的将资源加密发布,同时加以人工辅助进行合理的分析判断以防范攻击和资源被浪费或闲置。 服务提供者由单层向双层发展,以避免ip被封,设置中央服务器均衡的将服务提供者的代理资源分为进口节点(连接服务使用者)和出口节点(连接服务使用者所要访问的网站)。
设立嵌入式设备开发项目 : 为服务提供者开发一个廉价便捷的微型设备,只需连接到路由器上就可以自动的提供24/7不间断代理服务。
本项目与Tor(anonymity network全匿名路由)的同异比较:
相同性:
同为由志愿者为主体提供代理服务的网络,通过多层连接实现代理翻墙的功能。
不同处(优点):
Tor是以提供完全匿名的互联网接入为目的,通过多层穿越达到绝对隐藏使用者身份的效果,其用户群遍及全球各地。Tor必须由至少一台中央目录服务器来进行资源分配,这就导致tor很容易被GFW封锁。
而翻墙穿梭机,是在针对性的为实行苛刻的互联网封锁审查的国家的网民提供突破封锁服务,服务的使用者不需要去连接目录服务器,而可以用RSS feed订阅,Email,IM,sns(twitter)等方式去获得可用的代理资源,避免了中央节点被封锁。另一方面,我们提供与其他专业翻墙软件同级或更高级的用户信息保护而非绝对的匿名服务,以防止被利用做为网络欺诈,或成为反恐漏洞。
本方案常见问题:
a.
Q:如何使得中央节点难以被封锁?
A:我们可以利用发布RSS feed 如 Google Reader,或IM,Buzz等发布。如:由于Google Reader可以使用https协议进行浏览,并且是架设在Google的主域www.google.com上的,导致如果封锁Google Reader就等于封锁了几乎所有需要登陆才能使用的Google服务(包括Gmail)。
b.
Q:为何有了安装在电脑中的软件提供服务,还要提供嵌入式设备提供服务?
A:1、提供嵌入式设备提供服务使得普通大众不需要一直开着自己的电脑即可提供服务,有利于提供不间断地服务;2、使用嵌入式设备提供服务有利于服务提供者的电脑安全,更有利于推广。3嵌入式设备实际上比整天开着电脑来提供代理服务的成本要低廉许多。
c.
Q:如何能获得更多的IP地址用来提供代理服务?
A: 国际上反对中国网络封锁的声音越来越大,美国,欧盟对此反应非常强烈,鼓励言论信息自由的非政府机构也非常活跃,还有越来越多的企业,个人开始关注并参与到反GFW的行动中,这为我们提供了庞大的可利用资源。与国际友人谈到这个问题时,我经常听到的回应就是“How can we help?”
d.
Q:如何使得中央节点中的信息不被破解而被自动封锁?
A:我们可以把服务提供者的信息加密后发送到中央节点中。不过这样就必须不公开这个解密的过程,软件也就无法开源。另一种办法是发布的信息以验证码方式提供,这样就无法自动解密自动封锁。不过这样就需要服务使用者每次获得信息的时候都需要输入验证码。
e.
Q:有了中央节点,为何还需要第三方信息发布点?
A:1、如果要把信息发布到Google Reader中,通过提供RSS feeds来发布信息,也可以通过固定的twitter,IM,邮件组帐号发布信息。2、第三方信息发布点可以验证服务提供者的配置是否正确。
-- 在组内做首次发布: NoGFW Shuttle(翻墙穿梭机)的第一测试版本(第一阶段P2P) 及源代码
声明:《此开源软件的源代码以GPLv3 License发布》
Google Code上提供下载 http://code.google.com/p/nogfw-red-wall-shuttle/downloads/list(目前平台上只提供C++开发的客户端下载)
http://code.google.com/p/nogfw-red-wall-shuttle/source/list http://code.google.com/p/nogfw-red-wall-shuttle/source/browse/
源代码为0.01 demo版,只是做了一个核心功能的模型。程序语言为C++,使用了STL和boost。计划后续版本做如下改进:
1、
现阶段是命令行版本,需要做一个图形化界面;
2、
3、
现阶段加密只是使用了简单的异或操作,以后打算使用ECC+AES+SHA1+序列号的方式,防止传输的信息被破解而被截获(不是防止破解软件,软件本身是开源的);
4、
现阶段服务提供者需要手动配置路由器和防火墙,以后打算使用UPnP自动端口映射+NAT穿越+自动配置Windows防火墙;
5、
以后会考虑流量混淆的方式,防止根据流量分析找出服务者的IP;
6、
以后或许还会考虑把实时流量加入知名网站的https证书所加密的数据中(不需要得到其私钥,具体方法比较复杂,暂不讨论);
7、
运行本软件的最低系统要求:
x86/32位/Windows 2000或更新版本的兼容机, 开发人员也可在Linux下自行编译 本程序为测试版,无偿授权,共测试和开发使用,程序是在win2000和win xp平台上开发,未在其他平台测试,所以无法保证软件在其他平台的稳定性,可能会导致问题,希望研发人员和使用者及时反馈可能出现的问题,bug。对运转此软件可能会出现的问题,开发人员不负担责任。修改、发布程序的人员对使用该程序所出现的问题不负有责任。
★★《权利》电子邮件网络非常鼓励具有行动力的文章供大家分享和引起支持!
1,所有帖子没有注明"不可转载"的,一律可以转载;转发本邮件成员文章,请注明:转自《权利》https://groups.google.com/group/ChinaRights
2,《权利》公共发言,请发电子邮件到 ChinaRights@googlegroups.com
3,要退订此论坛,请发邮件至 ChinaRights-unsubscribe@googlegroups.com
4,群发邮件,慎重发言,文明用语,切忌只言片语不明不确!
5,备份查询:http://chinarights2.blogspot.com
No comments:
Post a Comment