关于DoH/ESNI时代的IP地址的几点想法

avatar 2020年6月2日18:28:32关于DoH/ESNI时代的IP地址的几点想法已关闭评论

在DoH和ESNI成为主流以后,互联网上的流量里除了IP地址是明文以外,其它信息全部被加密了。

 

当前状况是DoH已经成为主流,有火狐和Chrome两大浏览器支持。

 

而ESNI仍旧处于实验阶段,只有火狐支持。但是SNI RST封杀手段已广泛被政府所利用(不光是中国政府,南韩、法国政府都已经被证实使用了某种程度的SNI RST)

 

等到ESNI成为主流,那么到时网上就是看上去都是一摸一样的【一大片】加密数据了。到时就完全区分不出人们访问的究竟都是什么了。不知道到时候墙有何应对策列,还是说到那时真的就是上【白名单】或者干脆切断国际互联网连接,变成中华局域网了。

 

另外最近查了一次Alexa全球访问量最大10个网站,着实吃了一惊:除了谷歌、油管、脸书以外,其余的都是墙内网站!分别是:天猫(第三位)、QQ(第五位)、百度(第六位)、搜狐(第七位)、天猫登录页(第八位)、淘宝(第九位)、360(第十位)。连第十一位都是京东。维基百科只排到了第十二位!照这个趋势下去,Alexa全球访问量最大10个网站很快应该没有墙外网站什么事了!

 

在DoH和ESNI大规模普及以后,网上的明文内容只剩下IP地址了。

 

现在的大型IP地址群,比如谷歌、推特、脸书(以及附属服务比如油管、ins等)都已经被墙IP封杀了(意思就是任何IP报文里的目的地或者来源地出现以上四个机构的IP地址群里的任意IP地址,不管报文内容为何,一律封杀)。当然享受IP地址封杀待遇的远远不止以上三个机构。很多成人视频网站,墙外报纸媒体网站,乃至自己搭建的机场VPS的IP地址都有可能是墙IP封杀的目标。

 

在DoH和ESNI大规模普及后,只剩下明文的IP地址会被墙封杀。关于如何解决墙封杀IP地址,有如下几个想法:

 

最最显然的解决方案就是把所有网站托管到Cloudflare上面,但是大公司比如谷歌推特等也许不愿意这么做。

所有墙外网站都解析到墙外几个“门户”IP地址上,这几个门户IP是超级电脑群,由所有墙外大公司政府部门等等共同经营(也许就是ICANN直接管理)。然后由门户IP地址解密ESNI,然后再赋予正确目标IP地址,继续路由到正确目的地。目的地回复用户的IP报文可以在“源IP地址”处直接填上“门户”IP地址。

“加密IP地址“。不过由于IP地址是”网络层“的基石,是网络交通传递的重要信息,所以”加密的IP地址“是否有意义都是问题。IP报文在墙内的正确路由,以及从墙内到墙外的路由,都需要墙内各个路由器能正确解读IP报文的目标IP地址。所以加密IP地址可能没有意义。

"抽象路由“:IP报文的目的地不写具体的IP地址,而是写上抽象的地理目的地比如”美国“,”德国“,”日本“等等,等到IP报文已经确定越过了墙,进入了地理目的地以后,在对其加密的SNI进行解读,然后在从DoH那儿获得最终的目的地IP地址。

”一切反代“:从DoH服务器查询比如谷歌IP,然后马上自动由DoH发送请求到谷歌服务器,让其主动连接客户端反代。但是这种做法的最大问题是墙内电脑一般都在多重NAT后面,所以反代不一定能联系上(特别是如果是symmetric NAT的话)。而且这种做法用多了,墙可能会双向彻底切断所有和谷歌IP的联系,进入也不行,出去也不行。

“黑暗森林”式P2P路由:这个是从BTSync/Resilio取得的灵感,IP结构大改动:不在是end-to-end连接性,而是每一个IP节点都【只知道】相邻的几个IP节点,然后路由IP报文到相邻节点,直到到达可以解密ESNI的节点为止。这样的话整个互联网如同黑暗森林。但是这是最最不靠谱的方法:因为无法保证QoS,视频网站统统完蛋,所以不太可能实现。

“next-hop/下一跳”路由:IP报文里只显示下一跳的IP地址,而不显示最终的目的地的IP地址。但是这样的话等于否定了互联网的IP路由基石:根据最新情况实时更改路由路径,以期创造出最佳路由。规定下一跳路由等于规定整个路由路径。所以这个方法也是不可取的。

IP地址as utility,随机IP绑定,服务器端DHCP化(极端DHCP化):这个在以后的IPv6时代意义更加明显,IP地址彻底松绑,随机化,变成水和电那样的公共设施。客户端向DoH发送加密DNS请求以后,DoH服务器实时绑定一个随机IP地址到所查询的DNS域名,然后通过DHCP通知目标网站新的IP地址,目标网站收到后实时进行域名与网址的绑定。然后客户端向目标网址发送加密ESNI请求握手建立TLS连接。如果要防止墙主动侦测,则要目标网站绑定的IP地址socket对于所有其它IP发送来的连接请求发送标准假网站(类似于v2ray+ws+tls+web+nginx模式那样)。

墙外任意的IP地址可以代理任何的网站(8的极端版本):墙外随便哪个IP地址都可以承载返回任意URL的内容。

 

抛砖引玉,如果各位葱油对于如何解决明文IP地址被封有什么其它的好建议的话请尽管在这里提出。

avatar