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

[Feature Request] 非硬编码的CipherSuite?(比如从配置文件读取) #2517

Closed
chisaato opened this issue May 31, 2020 · 2 comments
Closed

Comments

@chisaato
Copy link

有这种想法是来自让V2Ray伪装成浏览器的TLS指纹.
但是考虑到浏览器更新速度蛮快的,总不可能让V2Ray跟着Firefox/Chrome同步更新吧.
所以想出了从配置文件指定密码套件的想法
可以在配置文件中留下一个

"cipher":[]

来让高级用户自己挑选加密套件

@nicholascw nicholascw changed the title 非硬编码的CipherSuite?(比如从配置文件读取) [Feature Request] 非硬编码的CipherSuite?(比如从配置文件读取) May 31, 2020
@k79e
Copy link

k79e commented Jul 23, 2020

目前这类参数不仅仅有cipherlist
他一共是个列表的有
cipher suites //这个东西是二进制值 不是用户随意能指定的 chrome第一个是grease保留项0xeaea
Extension: supported_groups
Extension: signature_algorithms
其实他们都是二进制的 如果用字符串的话 还要程序识别一切然后再正确转换回去 恐怕更容易出问题把 XD

不仅如此还有最致命的一点. Extension: SessionTicket TLS (len=0) 这其实是个服务器端的参数但是不清楚为什么浏览器会发个空的标识.

不仅如此 最后这一切人们真是自己制造了强特征
总共所有的extension的顺序又是个规律. 如论这一切装的多像 结果这些extension的顺序跟浏览器的不一样 一切都是白搭
而且浏览器的tls支持版本里面也有个0xeaea 某些浏览器可能就喜欢这样乱来.

所以总之这个看起来改几下参数就ok的事情最后不仅没有装的更像反而更不像了. 所以这个问题没那么简单 不是一个自定义列表就能ok的. 因为参数值一律都是二进制的 写什么字符串意义不大.

更坑人的是浏览器有个类51 类27的未知padding 然后最后是个正常的padding 而其他程序就一个51的未知padding(原来是分析工具该更新了 ;-))

fq工具我好像没见过最后padding 填零的事情. 这个东西怎么填 什么规范又是个问题. 貌似chrome浏览器喜欢填充为512字节的 (517字节tcp payload)

问题就是这个extension的顺序 能随意更换么? 这个不改 其他装的一模一样也没用啊!
所以这个破参数真是不看不知道一看吓一跳哇!!! 根本没人么想的那么简单!!!!

我又仔细看了看 grease 看起来每个连接都会改变的样子
这真不是随便乱填就行的 还得开启tls相应功能. https://tools.ietf.org/html/draft-ietf-tls-grease-01
如果不能开那个特性 还得指定一个表 每个链接换一个grease值.

所以如果要那样搞的话应该把不同浏览器的配置封装成设置 让用户选择

@github-actions
Copy link

This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 5 days

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants