-
Notifications
You must be signed in to change notification settings - Fork 264
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
[Discussion]ShadowTLS v3 #69
Comments
谢谢大佬 Review!
|
关于 V3 协议这里写了一个面向普通用户的 Wiki:https://github.com/ihciah/shadow-tls/wiki/V3-Protocol |
TLS 1.2里,server在整个握手过程中都不会发送0x17,如果我理解正确,padding是只加在0x17中,客户端在发送第一个0x17(真正的application data)时,并不知道服务器的身份。 此问题在tls 1.3中并不存在。 |
我的想法是 ShadowTLS 后续的工作是明确这些边界,在代码中加以限制,并告知用户;但不从协议和代码上特地对 TLS1.2 做强制处理(至少要是一个可选实现),因为这样会引入非常大的复杂度。
我这边计划是 TLS1.3 only 了。 |
TLS 1.3设计时的目标就是把自己伪装成一个TLS w/ session resumption,所以在某些时候可能会和TLS1.3流程类似。 |
Hi @ihciah
Just took a closer look at the v3 protocol. The idea of auth padding in application records looks awesome. This would allow the server to detect anomalies without the help of Shadowsocks and make it payload agnostic.
That said, there are some issues that I feel should be pointed out.
There isn't anything like a pub key in a TLS v1.2 ClientHello when performing a full handshake. The attacker can start with the same clienthello and complete the handshake. The complexity of Restls is partly due to the goal of TLS1.2 compatibility.
ServerEncryptedExtension
sent to the suspect v3 client, then it has a chance to identify the server.----------------
我仔细研究了一下v3的协议,觉得有很多可取之处。特别是在0x17中使用auth padding的做法,这可以在没有Shadowsocks(或者其他协议)的帮助下监测异常,使得协议可以更通用。
但我还是发现了一些问题:
ServerEncryptedExtension
。如果墙主动探测获得的ServerEncryptedExtension
的长度永远(或大多数时候)都比一个疑似客户端收到的ServerEncryptedExtension
短4个byte,或许墙就能发现这是个client。针对这个问题的规避也导致了Restls实现的复杂性。The text was updated successfully, but these errors were encountered: