-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Add Support for Configuring TLS 1.3 Cipher Suites #4260
Comments
I think it would be a useful feature and even a necessity at some point. Beyond that, would it be possible to customize the handshake so that the proxy-server connection looks for example like a normal browser-server connection ? https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967 |
@c1b3rd0rk: Yes. We're currently refactoring our proxy core (#1775), which lays the foundation for this. The entire OpenSSL TLS configuration will be handled in a mitmproxy addon and can then be customized by users: mitmproxy/mitmproxy/addons/tlsconfig.py Lines 130 to 188 in f7c6499
We likely won't put effort into perfectly mimicking clients until that becomes a more substantial problem in practice. |
That's great to hear. I took a short look a the code a while ago. mitmproxy crafts its own hello. For mimicking would it maybe be possible to just "copy" the original client hello i.e. mitmproxy sends exactly the same data (except maybe the client random)? Depending on where you are in the network the problem is already substantial. Attackers (and defenders) are already making use of this. There is only few well maintained software for intercepting proxies around, also some of the commercial ones just use squid. I don't know about the adoption of mitmproxy but it is certainly among those few. Better be sneaky and don't stick out of the crowd :) https://github.com/fooinha/nginx-ssl-ja3 |
Hello! |
@fedosgad: In short, we use OpenSSL via cryptography/pyOpenSSL. For the OpenSSL bits, see https://wiki.openssl.org/index.php/TLS1.3#Ciphersuites and https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_ciphersuites.html. cryptography exposes the relevant bindings, but pyOpenSSL does not. pyca/pyopenssl#963 may help in figuring out how to do things. |
What does the support for TLS 1.3 cipher suites currently look like? I seem to be able to set 1.3 in the mitmproxy config but I get weird behavior |
Is there any progress on this? Support for TLS 1.3 ciphers would be great! |
No progress on this as far as I'm aware. :) |
Still no support for TLSv1.3 cipher suites? |
to blend in better and get to a point where you can just mirror the client you want to proxy, this would be helpful. |
Due to the major differences between the way that ciphersuites for TLSv1.2 and below and ciphersuites for TLSv1.3 work, they are configured in OpenSSL differently too.
We don't support configuring TLSv1.3 cipher suites yet. If this would be useful to you, please comment here.
The text was updated successfully, but these errors were encountered: