V2ray-core: 基于长短期记忆网络的V2ray流量识别方法

Created on 24 Sep 2019  ·  16Comments  ·  Source: v2ray/v2ray-core

Most helpful comment

我仔细看了下专利里面的内容,有下面这么一段话:

[0032] 3)V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为
靠前的数据包具有显著特征,其后所产生的数据包则为加密后的信息,内容较为随机。因而
我们只保留每次通信的前16个数据包进行流量识别。

发现没有,该专利利用TLS要进行公钥交换这一步骤,利用该步骤提取特征来协助识别流量。这里就有个让我很疑惑的问题,基本上HTTPS网站,都会是这么个流程,所以该专利如何区分v2ray和普通https网站请求呢?望各位明示。

All 16 comments

:sob:

V2ray已完!
zhuanli

V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为
靠前的数据包具有显著特征,其后所产生的数据包则为加密后的信息,内容较为随机。因而
我们只保留每次通信的前16个数据包进行流量识别。

看来V2ray还是不行啊靠不住,有没有更好一点的推荐?

我仔细看了下专利里面的内容,有下面这么一段话:

[0032] 3)V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为
靠前的数据包具有显著特征,其后所产生的数据包则为加密后的信息,内容较为随机。因而
我们只保留每次通信的前16个数据包进行流量识别。

发现没有,该专利利用TLS要进行公钥交换这一步骤,利用该步骤提取特征来协助识别流量。这里就有个让我很疑惑的问题,基本上HTTPS网站,都会是这么个流程,所以该专利如何区分v2ray和普通https网站请求呢?望各位明示。

看似是只识别 tcp/udp伪装。 不包括tls

看起来是识别公钥交换,可是到处都是公钥交换。

我仔细看了下专利里面的内容,有下面这么一段话:

[0032] 3)V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为
靠前的数据包具有显著特征,其后所产生的数据包则为加密后的信息,内容较为随机。因而
我们只保留每次通信的前16个数据包进行流量识别。

发现没有,该专利利用TLS要进行公钥交换这一步骤,利用该步骤提取特征来协助识别流量。这里就有个让我很疑惑的问题,基本上HTTPS网站,都会是这么个流程,所以该专利如何区分v2ray和普通https网站请求呢?望各位明示。

不是tls的认证,而vmess协议的认证头,VMess协议的说明中。前16字节其实是认证信息,一段16字节的MD5HMAC,HMAC参数分别为,key为uuid(2^128个),msg为当前时间前后30秒的timestamp(8字节,也就是64位long,后面简称ts)。我认为服务器根据当前时间每秒生成60个认证hash来判断首16字节来做认证(这和早期ss的端口主动探测有点类似?)。

因为uuid是固定的,一次认证60秒内有可能出现相同hash或者相关hash。

更好的考虑就是,定期换uuid?

由于统计学与概率论的知识已经还给老师了,所以对于概率分析的能力有限,只是基于最坏可能性来推断,因为以一个问题是:t1的后30秒和t1+60秒的前30秒的认证hash是可以关联对应的。

假设t1时间发生了一次访问认证并使用了t1+30s的ts作为认证hash,如果以后有可能复用的话,在之后的60s内有可能重用这个hash(t(n)=(t1+n,n=0-30),(t1+30,n=31-60))。

如果不考虑复用hash,而且取用后全部第一次认证后30秒的对应hash,才能保证30秒后无法对应关联hash。

因为uuid是固定的,hash的变动只受时间递增影响,至少有30秒-60秒的取样时间来分析16字节的hash来关联是否是同一个uuid。如果uuid长期不更改,众多30-60秒的uuid推断会被累计下来,来确定很有可能是vmess通信。

另外,以上推断还有一个前提,就是假设这就是vmess的通信。

另外建议在vmess中引入一个id更换机制来减少认证头的hash推断。
由客户端生成新id和发起,服务器可以选择是否启用功能,类似TCP三次握手来传递id和确认更换时序同步。另外会因此引入状态性。

另外建议在vmess中引入一个id更换机制来减少认证头的hash推断。
由客户端生成新id和发起,服务器可以选择是否启用功能,类似TCP三次握手来传递id和确认更换时序同步。另外会因此引入状态性。

所以,你能提个PR吗?

再怎么改也是没用的,需要交换秘钥,协议上就有特征,改来改去又一个ssr而已,解决一个问题的同时带来了更多的问题,还不如ss原版这种没特征的。

V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为
靠前的数据包具有显著特征,其后所产生的数据包则为加密后的信息,内容较为随机。因而
我们只保留每次通信的前16个数据包进行流量识别。

看来V2ray还是不行啊靠不住,有没有更好一点的推荐?

自己写一个自己用 流量较小 就不会被针对识别

V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为
靠前的数据包具有显著特征,其后所产生的数据包则为加密后的信息,内容较为随机。因而
我们只保留每次通信的前16个数据包进行流量识别。

看来V2ray还是不行啊靠不住,有没有更好一点的推荐?

而且这篇里面也并没有讲什么新东西,以前都有人提过。只看这个并不能确定v2完了

没特征本身就是一种特征,不然为什么最近这么多人反映ss用不了呢?
专利是3月开始申请,半年过去了也没见v2ray用起来有什么不同,等真用不了再说。

原开发者五个月没消息了。是不是有啥关系啊??
好像原开发者19年回了上海,好像自从3月后就没露面了 。可能真被请喝茶了吧。

首先,专利审核并不论证其有效性,专利仅仅是保护发明设计本身。
其次,该专利的描述存在一些问题:

V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为靠前的数据包具有显著特征

实际上,VMess 协议并不存在预先交换密钥这个步骤。即使将 V2Ray 与需要进行预先交换密钥的协议配合使用,那么进行预先交换密钥的数据包也不会有 V2Ray 的数据特征,因为此时还没有开始发送有效数据,即使有特征也是配合使用的协议的特征

以上是目前 V2Fly 社区成员商讨后对该 issue 的正式回复,其他与之相关 issue 将不再处理一律关闭。

Was this page helpful?
0 / 5 - 0 ratings