准备模仿某洋葱做一个 P2P 的匿名网络

2014-12-14 13:03:30 +08:00
 noli
打算基于UDP再发明一个传输层:好处是不用再担心虚假的RST。

然后网络节点之间加上认证机制:
具体来说就是,每个节点为其他节点提供服务的时候,之间的往来报文必须提供某种数字签名,以防止大量的虚假节点破坏P2P网络功能。

实现以后大家就可以不用买域名啦!
7239 次点击
所在节点    程序员
47 条回复
efi
2014-12-14 15:34:44 +08:00
@noli 墙封锁洋葱的方法是:运行许多个原版洋葱客户端,统计代理流量经过的服务器地址,动态路由屏蔽那些地址。如何了解一个客户端是否给墙告密是无解的问题。叛徒问题出自数字水印的traitor tracing问题。
@imn1 丝绸之路是NSA的流量分析给FBI提供的parallel construction。
qop
2014-12-14 15:48:00 +08:00
想的自己好像还有一个域名 yangcongpi.com
noli
2014-12-14 16:00:06 +08:00
@efi 我对这个问题想到的思路:

1. 多条隧道分散流量
2. 节点认证跟信任机制


B1 B2 是墙内同侧的叛徒,会统计流量暴露正常的A2 A5 代理,

A1->B1-- G--A2->A3
/ \
S F T
\ /
A6<-B2--W --A5<-A4


所以:
1. 当流量分散得足够均匀的时候, A2, A5不显著。

2. 如果 A1 是从 B1 处得知推荐的路由路径,当 B1推荐的路径不通,B1 的 信任度会下降,然后叛徒就暴露了。

当然,墙还可以不断地构造新的 Betrayer ,但是新的 Betrayer必须不断取得其他节点信任,才能有流量经过,所以,墙必须破坏一部分这个匿名网络的同时,又建设一下这个网络,才能为干扰而继续存在。
GeekGao
2014-12-14 16:04:10 +08:00
lz先发个paper出来吧,这玩意说起来好说,但实现起来复杂度非常之高。有没有想过Tor为何不去实现你想的功能?
GeekGao
2014-12-14 16:11:53 +08:00
@efi 对于Silk Road 被封, 请问你是从哪得到的结论证明“丝绸之路是NSA的流量分析给FBI提供的...” ?
还有,最初的Silk Road被抓貌似不是因为NSA网络流量分析,具体报道是有披露的额,如果那站长没办理一批假护照、没有在Stackoverflow上暴露出真实名字来,还会被抓么。
efi
2014-12-15 01:21:05 +08:00
@GeekGao parallel construction
diancpp
2014-12-15 12:18:03 +08:00
好高端的样子
diancpp
2014-12-15 12:18:13 +08:00
好高端的样子!!
ryd994
2014-12-15 17:06:22 +08:00
逗比,要数据不可伪造就要保证身份唯一性,保证了身份唯一性还叫什么匿名
身份在此不一定就是现实身份,可以是任何账号,地址
还有UDP包大小有限你考虑了么
noli
2014-12-15 19:59:24 +08:00
@ryd994 PGP是什么知道么?你的辩证法学得不太好啊……保持匿名和身份验证根本不是一对矛盾。
netsail
2014-12-15 22:55:27 +08:00
很好很强大!
ryd994
2014-12-16 00:30:41 +08:00
@noli 呵呵,PGP其实只能保证确实是由私钥持有人发出的。如果我生成一千对密钥,网络里不旧多了一千个虚假节点了么?
noli
2014-12-16 01:39:30 +08:00
@ryd994 虚假与否并不在于它是不是持有一对密钥,而是这些节点有没有真正为P2P网络服务。所以必须引入类似BT里面的信任评分机制,没有为网络提供过服务的节点信任值很低,所以也不会被选中提供服务。
ryd994
2014-12-16 02:18:45 +08:00
@noli 那你可以参考参考eMule什么结果
事实上基本没用
noli
2014-12-16 02:29:07 +08:00
@ryd994 据我所知, eMule没有提供身份认证,实际上你重装一次eMule 就失去了之前的身份。这当然没什么效果。

而且,匿名网络和 eMule 不一样的地方在于,匿名网络不是分享文件,只需要基本的节点信息交换(代价小得多),这很大程度是一种互利行为,不参与节点信息交换的或者试图只收不发的节点,自然就不会获得credit,马太效应很快就会把这种节点甩到尘封的角落。
ryd994
2014-12-16 02:45:26 +08:00
@noli 你并没有解决我一开始提出的问题,我可以无限引入新节点,除非你完全拒绝新节点,结果都是一样的。eMule就是这个问题

开销大小是相对的,鉴于国内ADSL永远512k上传,根本就不可能存在对等互利
noli
2014-12-16 02:54:45 +08:00
@ryd994 无限开新的节点,然后呢? 这些节点可以干嘛呢?新节点加入网络可以在评分算法上给予一定程度的照顾,然后在若干时间内没有为其他节点提供过任何服务或者提供无效的服务的话,那么这些节点在其他正常节点里面的评分自然就会下降。无限开这些新节点又怎么了呢?对于这个网络没有任何的破坏啊?

没错,开销大小是相对的,512k上传,假设交换的全是IPv6地址,一秒都可以交换2K个以上的地址了。绰绰有余啦。一个匿名网络节点要为其他节点服务,提供2k多个其他节点绝对是慷慨了,而且这种慷慨只需要偶尔一次。
ryd994
2014-12-16 03:23:29 +08:00
@noli 有新人基础信用就可以利用啊……
在评分下降到0之前都可以坑人啊
吸血驴就是靠不停换来吸血的

我说的开销不是指协议开销,而是指提供的服务的成本。tor在国内没流行,一是因为运营商封锁,二是因为没上传。国内大多数人上传带宽都很有限,不可能提供有效的代理服务。tor匿名靠的就是互相传来传去。

如果你只是要交换少量信息,当匿名邮件/短信用的话,那就和比特信重复了
noli
2014-12-16 03:45:37 +08:00
@ryd994 匿名网络没什么可以吸的吧?我之前说过了,只要节点之间存在信任评分,想要获得服务先要获取足够的信任,所以剩下的问题就是评分算法够不够聪明而已。新人一开始的信任度只够探索网络,无法获取代理服务,这在算法上不难控制吧?

你说的上传带宽问题这根本就不是软件要解决的问题。至于你说运营商会封锁tor,你太看得起运营商了。tor不是在这个层面被封锁的。

更重要的一点是,匿名网络不是免费代理让你轻轻松松翻墙撸,这种事情本来就不是tor或者其他匿名网络擅长做的事情。而我在这里也没有说过要让匿名网络改善各位的翻墙体验,只不过对抗墙是匿名网络必备技能而已,不要把它当作撸AV的利器
ryd994
2014-12-16 08:21:59 +08:00
@noli 匿名

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/153816

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX