Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

基于长短期记忆网络的V2ray流量识别方法 #1898

Closed
xhqpp opened this issue Sep 24, 2019 · 16 comments
Closed

基于长短期记忆网络的V2ray流量识别方法 #1898

xhqpp opened this issue Sep 24, 2019 · 16 comments

Comments

@xhqpp
Copy link

@xhqpp xhqpp commented Sep 24, 2019

https://files.catbox.moe/vmzj04.pdf

@Breezess

This comment was marked as spam.

@SaveShadowsocks

This comment was marked as spam.

@SaveShadowsocks
Copy link

@SaveShadowsocks SaveShadowsocks commented Sep 25, 2019

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

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

Loading

@zacario-li
Copy link

@zacario-li zacario-li commented Sep 25, 2019

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

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

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

Loading

@kingwilliam
Copy link

@kingwilliam kingwilliam commented Sep 25, 2019

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

Loading

@WenceyWang
Copy link

@WenceyWang WenceyWang commented Sep 25, 2019

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

Loading

@WenceyWang WenceyWang closed this Sep 25, 2019
@Cwek
Copy link

@Cwek Cwek commented Sep 25, 2019

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

[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?

Loading

@Cwek
Copy link

@Cwek Cwek commented Sep 25, 2019

由于统计学与概率论的知识已经还给老师了,所以对于概率分析的能力有限,只是基于最坏可能性来推断,因为以一个问题是: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的通信。

Loading

@Cwek
Copy link

@Cwek Cwek commented Sep 25, 2019

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

Loading

@zacario-li
Copy link

@zacario-li zacario-li commented Sep 25, 2019

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

所以,你能提个PR吗?

Loading

@SaveShadowsocks
Copy link

@SaveShadowsocks SaveShadowsocks commented Sep 25, 2019

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

Loading

@ying001ch
Copy link

@ying001ch ying001ch commented Sep 25, 2019

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

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

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

Loading

@ying001ch
Copy link

@ying001ch ying001ch commented Sep 25, 2019

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

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

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

Loading

@ghost
Copy link

@ghost ghost commented Sep 25, 2019

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

Loading

@aawwsslll

This comment was marked as off-topic.

@v2ray v2ray locked as off-topic and limited conversation to collaborators Sep 25, 2019
@nicholascw
Copy link
Contributor

@nicholascw nicholascw commented Sep 26, 2019

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

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

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

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

Loading

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
10 participants