XTLS / Xray-core

Xray, Penetrates Everything. Also the best v2ray-core, with XTLS support. Fully compatible configuration.
https://t.me/projectXray
Mozilla Public License 2.0
24.45k stars 3.83k forks source link

x #2535

Closed ghost closed 1 year ago

Fangliding commented 1 year ago

里面用什么外面看不到的 主动探测的话 dest网站是什么 就是什么

5e2t commented 1 year ago

@Fangliding 几乎访问所有支持TLS1.3的网站,用的密钥交换都是X25519,这是TLS1.3的特征,不是reality的特征呀

5e2t commented 1 year ago

如果主动探测reality,那么得到的证书是目标网站证书啊,目标网站证书用的也可能是RSA证书,签名算法用的就是RSA了~~

5e2t commented 1 year ago

@5e2t 而且目标网站也肯定不会只支持TLS1.3,也支持TLS1.2,你用TLS1.2去探测reality,也没有破绽的啊

Fangliding commented 1 year ago

能探测出来 所有的reality都用这个 不好吧 还是分散点好

屏幕截图 2023-09-09 123416

你下个手机版Chrome 随便点开什么网站 点左上角的锁 再点连接是安全的 都会跳出来 该连接使用AES_128_GCM(或者256) 并使用x25519作为密钥交换机制 除非服务端非常老旧。。

5e2t commented 1 year ago

@architecturers 你可以抓一下 你自己上支持TLS1.3的网站的包,看看clienthello里是不是有x25519密钥交换

Fangliding commented 1 year ago

` enum {

      /* Elliptic Curve Groups (ECDHE) */
      secp256r1(0x0017), secp384r1(0x0018), secp521r1(0x0019),
      x25519(0x001D), x448(0x001E),

      /* Finite Field Groups (DHE) */
      ffdhe2048(0x0100), ffdhe3072(0x0101), ffdhe4096(0x0102),
      ffdhe6144(0x0103), ffdhe8192(0x0104),

      /* Reserved Code Points */
      ffdhe_private_use(0x01FC..0x01FF),
      ecdhe_private_use(0xFE00..0xFEFF),
      (0xFFFF)
  } NamedGroup;

  struct {
      NamedGroup named_group_list<2..2^16-1>;
  } NamedGroupList;

` x25519 只占了很小一部分 远没有那三个在tls1.3中的大

浏览器基本默认都是x25519 少臆想了 这是可用列表 不是流量占比列表 其他的才罕见

5e2t commented 1 year ago

@architecturers 你意思是主流是TLS1.2 是吧

5e2t commented 1 year ago

QUIC只支持TLS1.3对吧 我抓了一个chrome的QUIC Clienthello握手包,里面的加密套件是这三个 135554

5e2t commented 1 year ago

@architecturers 之所以TLS1.3的clienthello握手包能有几十个套件,那是因为客户端选择同时兼容TLS1.2才有了几十个加密套件 如果客户端最低支持TLS1.3,那么加密套件就只有三个了。

Fangliding commented 1 year ago

reality必须要TLS1.3 要用到TLS1.3的特性 你要不看看你都复制了些什么过来

5e2t commented 1 year ago

那你也说了,速度最快的这个组合以后肯定是越来越多的~

5e2t commented 1 year ago

xray的tlsSettings里 写minVersion 1.3以后,加密套件也会只剩下三个。 话说我的确该抓包看看reality的clienthello握手包有几个加密套件。

5e2t commented 1 year ago

tlsSettings里写minVersion 1.3以后才会只剩下三个套件,不写minVersion还是会有几十个套件的呀。(此时应该也同时带上了x25519密钥交换)

Fangliding commented 1 year ago

远不止那三个? 要我去多搜搜 要不你自己看看RFC8446 里面定义了几个 只定义了5个 另外两个CCM 虽然被定义了 gotls没做 openssl有但没有启用 我更没见过网站真用这个的

5e2t commented 1 year ago

clienthello带了x25519密钥交换的同时,还带了几十个加密套件,此时如果服务器支持TLS1.3,那肯定用的是x25519密钥交换,那几十个加密套件都没用上,用上的就只有这三个加密套件 TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 说实话,clienthello带上这几十个加密套件也没多少影响(只是让clienthello握手包变大了。)

5e2t commented 1 year ago

你标题那三个是TLS1.2里面的密钥交换算法,之所以在TLS1.3还能看见,是因为TLS应用选择向下兼容TLS1.2 然而应用可以选择不兼容TLS1.2呀,我的网站就把最低TLS版本设置为了TLS1.3,就不用你标题那三个密钥交换算法了。

5e2t commented 1 year ago

无论是TLS客户端,还是TLS服务端,都可以选择不向下兼容TLS1.2。只支持TLS1.3

Fangliding commented 1 year ago

我总结一下 从一开始密钥类型就没说清楚在指什么 xray的ed25519 key 那是给证书用的 在TLS1.3 里 证书是加密的 证书用什么签名算法 不重要 这也是我一开始的意思 后面又扯扯扯 扯出来cipher suites 和xray用ed25519签名证书有半毛钱关系 到这里已经是无关话题了 什么乱七八糟的很多的cipher suites TLS1.3就定义了5个 实际用的就3个 在RFC里写的明明白白 会英语你可以自己看 什么什么公司抱着RSA不放 你先说清楚什么RSA RSA证书? 那确实 但说了里面证书看不到压根不重要

Fangliding commented 1 year ago

说话有歧义指出来说我我听不懂可以走? 我说的不一定全对 请指出 你说的有错 我指出有问题 各自保留 不是 这是一个很明显有对错的东西 不是什么哲学讨论 错的就是错的 错的还能保留 你可以说唯心主义唯物主义哪个好 这个可以保留 但是你觉得1+1>2 这还保留意见?

Fangliding commented 1 year ago

说话有歧义指出来说我我听不懂可以走? 我说的不一定全对 请指出 你说的有错 我指出有问题 各自保留 不是 这是一个很明显有对错的东西 不是什么哲学讨论 错的就是错的 错的还能保留 你可以说唯心主义唯物主义哪个好 这个可以保留 但是你觉得1+1>2 这还保留意见?

你连 交换 签名 对称 都没弄清楚 还要掰扯啊 怎么连好赖话都听不清楚啊 你真的是 职业吵架的

还是没有说出我哪是错的 只会说我 这没弄清楚 那没弄清楚 啥没弄清楚呢 不知道 到底谁是职业吵架呢

请循其本 省略中间的瞎吵吵 看你的标题 "希望增加reality的密钥类型" "现在是单一的密钥类型" 那么我就理解成 ./xray x25519 已经如上所说了 如果你指https://github.com/XTLS/Xray-core/issues/2535#issuecomment-1712425384 的那堆套件 这是我抓包到的client hello显示的套件 25(DU9O$BZJKITSVM AE~$V

Fangliding commented 1 year ago

说话有歧义指出来说我我听不懂可以走? 我说的不一定全对 请指出 你说的有错 我指出有问题 各自保留 不是 这是一个很明显有对错的东西 不是什么哲学讨论 错的就是错的 错的还能保留 你可以说唯心主义唯物主义哪个好 这个可以保留 但是你觉得1+1>2 这还保留意见?

你连 交换 签名 对称 都没弄清楚 还要掰扯啊 怎么连好赖话都听不清楚啊 你真的是 职业吵架的

还是没有说出我哪是错的 只会说我 这没弄清楚 那没弄清楚 啥没弄清楚呢 不知道 到底谁是职业吵架呢 请循其本 省略中间的瞎吵吵 看你的标题 "希望增加reality的密钥类型" "现在是单一的密钥类型" 那么我就理解成 ./xray x25519 已经如上所说了 如果你指#2535 (comment) 的那堆套件 这是我抓包到的client hello显示的套件 25(DU9O$BZJKITSVM AE~$V

行吧 再回复一句 ./xray x25519 生成的是交换密码 建立一个加密通道 用来传输偷的证书 ;在外界看来 就是 ./x25519(交换算法) + 偷的证书(签名)+ 对称算法的结合体 。这个结合体 最好符合用处最广的tls1.3套件 我就是这个意思 目前最广的 套件 是 rsa+ rsa + 对称 ,第二是 ecdhe+ecdha+对称 ,reality是 x25519+偷的证书+对称。 想要大隐于市 最好是符合市占率最广的套件 。 tls1.3支持几十种套件 ,目前偷的证书 可以自己选 对称算法也算能选吧 就是交换密钥 写死了 。所以我说 加个密钥选择功能 。

那你对reality的理解就错了 那个东西是用来签发临时可信证书的 外面看到的那个交换算法 和里面的证书的签名算法是两个东西(我也说过了) 里面哪怕是个AES证书 外面也可以用x25519交换密钥 G}G9Y@O7UM~L{Y%50} CP59 WLUI}$TTCMO4MB~$A~3)@JD

Fangliding commented 1 year ago

说话有歧义指出来说我我听不懂可以走? 我说的不一定全对 请指出 你说的有错 我指出有问题 各自保留 不是 这是一个很明显有对错的东西 不是什么哲学讨论 错的就是错的 错的还能保留 你可以说唯心主义唯物主义哪个好 这个可以保留 但是你觉得1+1>2 这还保留意见?

你连 交换 签名 对称 都没弄清楚 还要掰扯啊 怎么连好赖话都听不清楚啊 你真的是 职业吵架的

还是没有说出我哪是错的 只会说我 这没弄清楚 那没弄清楚 啥没弄清楚呢 不知道 到底谁是职业吵架呢 请循其本 省略中间的瞎吵吵 看你的标题 "希望增加reality的密钥类型" "现在是单一的密钥类型" 那么我就理解成 ./xray x25519 已经如上所说了 如果你指#2535 (comment) 的那堆套件 这是我抓包到的client hello显示的套件 25(DU9O$BZJKITSVM AE~$V

行吧 再回复一句 ./xray x25519 生成的是交换密码 建立一个加密通道 用来传输偷的证书 ;在外界看来 就是 ./x25519(交换算法) + 偷的证书(签名)+ 对称算法的结合体 。这个结合体 最好符合用处最广的tls1.3套件 我就是这个意思 目前最广的 套件 是 rsa+ rsa + 对称 ,第二是 ecdhe+ecdha+对称 ,reality是 x25519+偷的证书+对称。 想要大隐于市 最好是符合市占率最广的套件 。 tls1.3支持几十种套件 ,目前偷的证书 可以自己选 对称算法也算能选吧 就是交换密钥 写死了 。所以我说 加个密钥选择功能 。

那你对reality的理解就错了 那个东西是用来签发临时可信证书的 外面看到的那个交换算法 和里面的证书的签名算法是两个东西(我也说过了) 里面哪怕是个AES证书 外面也可以用x25519交换密钥 G}G9Y@O7UM~L{Y%50} CP59 WLUI}$TTCMO4MB~$A~3)@JD

别和我说go里面只是tls1.2支持 我说的是tls1.3的支持 不是go语言里面的支持

说话有歧义指出来说我我听不懂可以走? 我说的不一定全对 请指出 你说的有错 我指出有问题 各自保留 不是 这是一个很明显有对错的东西 不是什么哲学讨论 错的就是错的 错的还能保留 你可以说唯心主义唯物主义哪个好 这个可以保留 但是你觉得1+1>2 这还保留意见?

你连 交换 签名 对称 都没弄清楚 还要掰扯啊 怎么连好赖话都听不清楚啊 你真的是 职业吵架的

还是没有说出我哪是错的 只会说我 这没弄清楚 那没弄清楚 啥没弄清楚呢 不知道 到底谁是职业吵架呢 请循其本 省略中间的瞎吵吵 看你的标题 "希望增加reality的密钥类型" "现在是单一的密钥类型" 那么我就理解成 ./xray x25519 已经如上所说了 如果你指#2535 (comment) 的那堆套件 这是我抓包到的client hello显示的套件 25(DU9O$BZJKITSVM AE~$V

行吧 再回复一句 ./xray x25519 生成的是交换密码 建立一个加密通道 用来传输偷的证书 ;在外界看来 就是 ./x25519(交换算法) + 偷的证书(签名)+ 对称算法的结合体 。这个结合体 最好符合用处最广的tls1.3套件 我就是这个意思 目前最广的 套件 是 rsa+ rsa + 对称 ,第二是 ecdhe+ecdha+对称 ,reality是 x25519+偷的证书+对称。 想要大隐于市 最好是符合市占率最广的套件 。 tls1.3支持几十种套件 ,目前偷的证书 可以自己选 对称算法也算能选吧 就是交换密钥 写死了 。所以我说 加个密钥选择功能 。

那你对reality的理解就错了 那个东西是用来签发临时可信证书的 外面看到的那个交换算法 和里面的证书的签名算法是两个东西(我也说过了) 里面哪怕是个AES证书 外面也可以用x25519交换密钥 G}G9Y@O7UM~L{Y%50} CP59 WLUI}$TTCMO4MB~$A~3)@JD

哦明白了 原来是让我找错啊 tls1.3 你查一查 支持这几个套件吗 这只是其中的一些 还有很多 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

1 你并没有正面回复我给出的解释 2 8)0OH 4IUD_1_0@L2P{NN6W 你在 https://github.com/XTLS/Xray-core/issues/2535#issuecomment-1712425384 说的 "go语言的tls1.3" 支持的三个 都赫然在列