- 02 Jan, 2022 1 commit
-
-
Yawning Angel authored
-
- 01 Jan, 2022 1 commit
-
-
Yawning Angel authored
Fix a comment, no functional changes.
-
- 31 Dec, 2021 3 commits
-
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
Replace agl's Elligator2 implementation with a different one, that fixes the various distinguishers stemming from bugs in the original implementation and "The Elligator paper is extremely hard to read". All releases prior to this commit are trivially distinguishable with simple math, so upgrading is strongly recommended. The upgrade is fully backward-compatible with existing implementations, however the non-upgraded side will emit traffic that is trivially distinguishable from random. Special thanks to Loup Vaillant for his body of work on this primitive, and for motivating me to fix it.
-
- 11 May, 2021 1 commit
-
-
Yawning Angel authored
And add the Chrome 83 fingerprint.
-
- 17 Dec, 2020 1 commit
-
-
Philipp Winter authored
Obfs4proxy implements the -unsafeLogging switch but it's been ignored so far. This patch makes it work.
-
- 07 Dec, 2020 1 commit
-
-
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>
-
- 10 Apr, 2020 1 commit
-
-
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.
-
- 21 Jun, 2019 4 commits
-
-
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.
-
- 20 May, 2019 2 commits
-
-
Yawning Angel authored
-
Yawning Angel authored
-
- 12 Apr, 2019 1 commit
-
-
Yawning Angel authored
-
- 30 Mar, 2019 1 commit
-
-
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
-
- 18 Mar, 2019 1 commit
-
-
Yawning Angel authored
-
- 05 Feb, 2019 4 commits
-
-
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
-
- 04 Feb, 2019 4 commits
-
-
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.
-
- 03 Feb, 2019 1 commit
-
-
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.
-
- 01 Feb, 2019 2 commits
-
-
Yawning Angel authored
-
Yawning Angel authored
Fix `getDialTLSAddr` to always return a integer port. Thanks to dcf for reporting the issue.
-
- 26 Jan, 2019 1 commit
-
-
Yawning Angel authored
-
- 21 Jan, 2019 2 commits
-
-
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).
-
- 20 Jan, 2019 5 commits
-
-
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
-
- 19 Jan, 2019 2 commits
-
-
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
-
- 16 Jan, 2019 1 commit
-
-
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.
-