- Apr 11, 2023
- May 11, 2021
-
-
Yawning Angel authored
And add the Chrome 83 fingerprint.
-
- Dec 17, 2020
-
-
Philipp Winter authored
Obfs4proxy implements the -unsafeLogging switch but it's been ignored so far. This patch makes it work.
-
- Dec 07, 2020
-
-
Philipp Winter authored
Microsoft recently updated the root CA certificates that are served to Azure clients. See the following article for more details: https://docs.microsoft.com/en-us/azure/security/fundamentals/tls-certificate-changes This change broke meek-lite because none of its pins work anymore. That means that Tor Browser users can no longer use meek-azure or moat as both rely on meek-lite. This patch fixes the problem by updating the certificate pins. Signed-off-by:
Yawning Angel <yawning@schwanenlied.me>
-
- Apr 10, 2020
-
-
Yawning Angel authored
I really didn't want to do this, but this should make `go get` work again, and maybe people will leave me alone.
-
- Jun 21, 2019
-
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
The old behavior closed the connection on handshake failure after: * The first N bytes (random on a per-server basis). * The first M seconds (random on a per-server basis). Whichever came first. As Sergey Frolov kindly points out, depending on which conditions cause termination, the server will send either a FIN or a RST. This change will remove the "amount read" based termination threshold, so that connections that cause failed handshakes will discard all data received until the teardown time is reached. Thanks to Sergey Frolov for bringing this issue to my attention.
-
- May 20, 2019
-
-
Yawning Angel authored
-
Yawning Angel authored
-
- Apr 12, 2019
-
-
Yawning Angel authored
-
- Mar 30, 2019
-
-
Yawning Angel authored
* Bump the module import to a new tag * Bump the rest of the dependencies while I'm here * Add some new fingerprints from upstream * Disable my fork's AES timing sidechannel defenses
-
- Mar 18, 2019
-
-
Yawning Angel authored
-
- Feb 05, 2019
-
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
Upstream fixed a bug, so use a tag that has the important parts cherry-picked.
-
Yawning Angel authored
-
- Feb 04, 2019
-
-
Yawning Angel authored
-
Yawning Angel authored
This should give me more time before I need to update this.
-
Yawning Angel authored
Mostly since the built-in pins will likely become invalid once the certificates I used to generate them start to expire.
-
Yawning Angel authored
HPKP is effectively dead as far as a standard goes, but the idea has merit in certain use cases, this being one of them. As a TLS MITM essentially will strip whatever obfuscation that the transport may provide, the digests of the SubjectPublicKeyInfo fields of the Tor Browser Azure meek host are now hardcoded. The behavior can be disabled by passing `disableHPKP=true` on the bridge line, for cases where comaptibility is prefered over security.
-
- Feb 03, 2019
-
-
Yawning Angel authored
Changes: * Use a fork of utls with some compatibility improvements. * Switch the default ClientHello profile to `HelloFirefox_Auto`. * Add the `HelloChrome_71` profile. The existing `HelloFirefox_Auto` profile that points to `HelloFirefox_63` also matches the (common) behavior of Firefox 65, assuming that 3DES ciphersuites are not disabled.
-
- Feb 01, 2019
-
-
Yawning Angel authored
-
Yawning Angel authored
Fix `getDialTLSAddr` to always return a integer port. Thanks to dcf for reporting the issue.
-
- Jan 26, 2019
-
-
Yawning Angel authored
-
- Jan 21, 2019
-
-
Yawning Angel authored
Per dcf: > As for the TODO, my plan was was to expose a "utls" SOCKS arg > to make it configurable per bridge, and just reuse the utls > Client Hello ID names: > utls=HelloChrome_Auto This adds support for all currently supported utls ClientHello IDs with the following caveats/differences: * `none` - Disables using utls entirely, forces `crypto/tls`. * `HelloGolang` - Alias of `none`, since using utls is pointless. * `HelloCustom` - Omitted as pointless.
-
Yawning Angel authored
There's still some interesting oddities depending on remote server and what fingerprint is chosen, but I can watch videos online with the chosen settings and the TBB Azure bridge. Note: Despite what people are claiming in the Tor Browser bug tracker it isn't all that hard to use the built in http client with utls. And yes, the `transport.go` code does negotiate correctly in a standalone test case (apart from compatibility related oddities).
-
- Jan 20, 2019
-
-
Yawning Angel authored
* Properly close the response body on HTTP error. * Cleanup close signaling. * Write() should return faster on closed connections.
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
Thanks to @SudoHenk on github for pointing out the issue long ago.
-
Yawning Angel authored
-
- Jan 19, 2019
-
-
Yawning Angel authored
Mostly but not entirely discarding error return values of things that can not possibly fail despite the API returning errors.
-
Yawning Angel authored
This is to silence some of the static analysis tools used in development. Despite `http.Client` and `http.Transport` being suggested as an alternative, there is no way to accomplish current functionality with either suggested replacement. See: https://github.com/golang/go/issues/8285
-
- Jan 16, 2019
-
-
Yawning Angel authored
This commit changes the upstream repo location to: https://gitlab.com/yawning/obfs4.git Additionally all the non-`main` sub-packages now have an import comment annotation. As a matter of courtesy, I will continue to push to both the existing github.com and git.torproject.org repos for the foreseeable future, though I reserve the right to stop doing so at any time.
-
- Nov 03, 2018
-
-
Daniel Martí authored
The biggest win is that we now declare what versions of each dependency we require to build. This way, building a certain version of obfs4 will always use the same source code, independent of the master branch of each dependency. This is necessary for reproducible builds. On top of that, go.sum contains checksums of all the transitive dependencies and their modules, so the build system will also recognise when the source code has been changed. Updated the build instructions accordingly. We don't drop support for earlier Go versions, but those won't get the benefit of reproducible builds unless we start vendoring the dependencies too.
-
- Apr 21, 2018
-
-
Yawning Angel authored