-
Notifications
You must be signed in to change notification settings - Fork 16
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
netx: investigate refraction-networking/utls (1/n) #229
Comments
I've started looking into how to use this library when trying to understand the 400 Bad Request returned by WhatsApp when we claim we're Chrome latest and we use Golang's TLS stack. More work to be done in next sprint. |
I am going to write down the results of this investigation in Sprint 33. |
I have spent some time working to understand how to integrate refraction-networking/utls inside our http.Client. I firstly created a wrapper with connection caching just for it in the research/netx3 branch. Then, there was an open issue about doing something similar at, except where both http/1.1 and h2 can cohexist, so I adapted that code and submitted it here: refraction-networking/utls#74 (and it's also available at https://github.com/bassosimone/utlstransport). The connection-cache-with-ErrNoCachedConn solution seems great for us (also, http3 certainly has this functionality and I need to check whether http2 has it as well, maybe it has?). I think this way of organising an HTTP transport is ~better than the current one, especially in regards to how to pass around the proxy. I have also created a follow-up issue ooni/probe#1424. |
I think it's reasonable to close this issue now! |
The goal of this is to make our HTTPS client look more similar to Firefox, therefore ensuring that what we are measuring is as close as possible to a real browser, hence the data quality tag. |
https://github.com/refraction-networking/utls contains code to parrot popular TLS handshakes and it may be a good starting point to have pluggable TLS. This work is potentially important to avoid being flagged as MITM because our ClientHello signature does not match the User-Agent that we are using. It's also important to keep in mind that the User-Agent is being deprecated by the Chrome team, in favour of more specific headers, so we should also keep this in mind.
The text was updated successfully, but these errors were encountered: