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

enable utls for websteps #442

Merged
merged 140 commits into from
Aug 18, 2021
Merged

enable utls for websteps #442

merged 140 commits into from
Aug 18, 2021

Conversation

kelmenhorst
Copy link
Contributor

@kelmenhorst kelmenhorst commented Aug 18, 2021

This diff enables websteps to use uTLS for TLS parroting. It integrates the oohttp.StdlibTransport wrapper which uses the ooni/oohttp fork. oohttp supports TLS-like connections like utls.Conn.
As a prototype, the testhelper and websteps code now uses the utls.HelloChrome_Auto fingerprint, i.e. the simulated TLS fingerprint of the Google Chrome browser.

It is a further contribution for my GSoC project.

Reference issue: ooni/probe#1733

Copy link
Contributor

@bassosimone bassosimone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there are just two small changes and then we can bless this branch!

Thank you!

go.mod Outdated
@@ -28,6 +28,7 @@ require (
github.com/miekg/dns v1.1.42
github.com/mitchellh/go-wordwrap v1.0.1
github.com/montanaflynn/stats v0.6.6
github.com/ooni/oohttp v0.0.0-20210817213129-35949dcf526f // indirect
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this indirect? Do you mind running go mod tidy and see whether it fixes this line?


transport = &netxlite.HTTPTransportLogger{Logger: log.Log, HTTPTransport: transport.(*http.Transport)}
// NewBaseTransport creates a new HTTP transport with the default dialer.
func NewBaseTransport() (transport *oohttp.StdlibTransport) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make this function private?

@@ -1,96 +0,0 @@
package websteps
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the records: this file has been deleted because a similar functionality was in the websteps experiment

Copy link
Contributor

@bassosimone bassosimone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐳

@bassosimone bassosimone merged commit 1874f7a into master Aug 18, 2021
@bassosimone bassosimone deleted the feature/websteps branch August 18, 2021 14:10
ainghazal pushed a commit to ainghazal/probe-cli that referenced this pull request Mar 8, 2022
This diff enables `websteps` to use uTLS for TLS parroting. It integrates the `oohttp.StdlibTransport` wrapper which uses the `ooni/oohttp` fork. `oohttp` supports TLS-like connections like `utls.Conn`.
As a prototype, the testhelper and `websteps` code now uses the `utls.HelloChrome_Auto` fingerprint, i.e. the simulated TLS fingerprint of the Google Chrome browser.

It is a further contribution for my GSoC project.

Reference issue: ooni/probe#1733
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants