cty
cty
> 现代浏览器的 TLS Client Hello 基本上就是 517 字节 是的,我刚测了下,在firefox这里Client Hello刚好是517字节。不过不同的TLS实现会导致不少偏差,比如说Rust的rustls使用TLS1.3的情况下,ClientHello的大小会在648 - 654之间浮动 > 有尝试将电脑端浏览器的 HTTP 代理设为 Trojan 吗? 我感觉我测试环境的设置跟你测试的环境比较不一样,在pc端我是通过这种方法来测试的, ``` Firefox: [email protected]:xxxxx -------> Trojan [email protected]:8080 ------> Trojan [email protected]:12345 --------> Trojan...
我试试看,另外通过wireshark抓包,rustls的clienthello是333 ``` Frame 28: 399 bytes on wire (3192 bits), 399 bytes captured (3192 bits) on interface lo, id 0 Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00) Internet Protocol...
刚测了下,example没有任何问题,非常准。我在想rust的不准是否因为外层使用tls1.3的缘故,我看xray好像是1.2,1.3都支持的
不过你这个方法的可行性我觉得没什么问题,主要看误封的比例有多少,我感觉很多restful api可能会恰好符合这个特征,有空可以搭个微服务测一下
> 就,目前来说,我比较关心你在开头写的 “10%-20%”,我觉得你应当在开头补充一些说明,避免产生误导。 我已经改了,但是我觉得这其实跟trojan关系不大,trojan + grpc 和 trojan + quic还没有证明能够识别。不知道为什么这个项目叫trojan-killer.
> 你确定 trojan+grpc 和 trojan+quic 是原版 trojan-gfw 有的东西吗? 我指的是trojan协议本身 https://trojan-gfw.github.io/trojan/protocol.html. Trojan + grpc 感觉比较异端一点,Trojan + quic我觉得没什么问题,自用了很久了。trojan协议本身只说了外层应该用TLS加密,没有限定TLS版本或者是传输层。等你把REALITY做出来,我能给你搞个Trojan + REALITY
> 你用不同语言实现只是改了外层 TLS 指纹,基本上不会影响内层 TLS in TLS 的流量特征 这点我完全同意,我在overview里面也说了, > **很有可能只是目前没有合适的upCount和downCount**
> 不是,这个推测是错的,它们是通用的,是你哪里没设置对 有这个可能,我还在debug中 > 是不是需要我写一下 TLS in TLS 检测的原理 简单点来说你这个原理就是通过加密过后的tls 握手包的大小来判断的吧,主流浏览器的握手包都是固定的,当然欢迎你发文解释原理
> 我大概猜出来了,你是觉得这个主要是和内外两层 TLS 有关,而和 trojan 协议本身关系不大 是的,我的想法是跟Trojan本身的关系不大,而是tls in tls暴露了内部的特征 > 并且其实它与外层 TLS 关系不大 这个问题主要是因为内层的TLS对吧?
> 首先是客观存在 TLS in TLS 问题,其次是 trojan 没有处理该问题,才会导致这么容易就能检测。 你这么说我也同意