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

netx: investigate refraction-networking/utls (1/n) #229

Closed
bassosimone opened this issue Sep 24, 2019 · 5 comments
Closed

netx: investigate refraction-networking/utls (1/n) #229

bassosimone opened this issue Sep 24, 2019 · 5 comments
Assignees
Labels
data quality Describes data/measurement quality issues effort/S Small effort ooni/netx Issues related to github.com/ooni/netx priority/medium Medium priority research prototype Research required

Comments

@bassosimone
Copy link
Member

bassosimone commented Sep 24, 2019

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.

@bassosimone bassosimone changed the title Experiment with refraction-networking/utls Investigate refraction-networking/utls Jan 12, 2020
@bassosimone bassosimone transferred this issue from ooni/netx Jan 12, 2020
@bassosimone bassosimone added effort/L Large effort priority/low Low priority labels Jan 12, 2020
@bassosimone bassosimone changed the title Investigate refraction-networking/utls netx: investigate refraction-networking/utls Jan 12, 2020
@bassosimone bassosimone added ooni/netx Issues related to github.com/ooni/netx research prototype Research required labels Jan 12, 2020
@bassosimone bassosimone self-assigned this Feb 17, 2020
@bassosimone bassosimone added this to the Sprint 17 - Θέτις milestone Jun 30, 2020
@bassosimone
Copy link
Member Author

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.

@bassosimone bassosimone added priority/medium Medium priority and removed priority/low Low priority labels Jul 2, 2020
@bassosimone bassosimone changed the title netx: investigate refraction-networking/utls netx: investigate refraction-networking/utls (1/n) Jul 2, 2020
@bassosimone bassosimone added effort/S Small effort and removed effort/L Large effort labels Jul 2, 2020
@bassosimone bassosimone removed this from the Sprint 20 - Willy milestone Aug 17, 2020
@bassosimone bassosimone added the triage This issue needs triage label Feb 10, 2021
@bassosimone bassosimone removed the triage This issue needs triage label Feb 15, 2021
@bassosimone
Copy link
Member Author

I am going to write down the results of this investigation in Sprint 33.

@bassosimone bassosimone removed this from the Sprint 33 - Actinia equina milestone Mar 1, 2021
@bassosimone
Copy link
Member Author

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.

@bassosimone
Copy link
Member Author

I think it's reasonable to close this issue now!

@hellais hellais added the data quality Describes data/measurement quality issues label Mar 25, 2021
@hellais
Copy link
Member

hellais commented Mar 25, 2021

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data quality Describes data/measurement quality issues effort/S Small effort ooni/netx Issues related to github.com/ooni/netx priority/medium Medium priority research prototype Research required
Projects
No open projects
Development

No branches or pull requests

2 participants