- Feb 04, 2019
-
-
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
- Jan 10, 2018
-
-
Yawning Angel authored
Apparently I didn't test the "connect via HTTP(s)" proxy with authentication at all when I added that functionality, so it has been broken for years. This should fix it now.
-
- Nov 15, 2016
-
-
Yawning Angel authored
-
Yawning Angel authored
-
- Oct 20, 2016
-
-
Yawning Angel authored
-
Yawning Angel authored
-
Ox Cart authored
-
- Jul 11, 2016
-
-
Yawning Angel authored
It's supposed to use the one derived from the client's handshake (assuming the clock skew is within acceptable limits), but it was using the one based off the current system time.
-
- Apr 13, 2016
-
-
Yawning Angel authored
It used to be that all of the bridge side parameters needed to be manually specified together. This was somewhat nonsensical, and the IAT mode can now be set as the only obfs4 option in a `ServerTransportOptions` torrc directive. Thanks to dcf for reporting the issue.
-
- Jan 25, 2016
-
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
Bug introduced in e52258ed, not in any released version of obfs4proxy.
-
- Jan 17, 2016
-
-
pminmax945 authored
when obfs4 connection create failed,conn variable is set to nil already.
-
- Oct 30, 2015
-
-
Yawning Angel authored
-
Yawning Angel authored
This dramatically improves bulk upload performance, from totally shit to just shit.
-
- Oct 29, 2015
-
-
Yawning Angel authored
This is a meek client only implementation, with the following differences with dcf's `meek-client`: - It is named `meek_lite` to differentiate it from the real thing. - It does not support using an external helper to normalize TLS signatures, so adversaries can look for someone using the Go TLS library to do HTTP. - It does the right thing with TOR_PT_PROXY, even when a helper is not present. Most of the credit goes to dcf, who's code I librerally cribbed and stole. It is intended primarily as a "better than nothina" option for enviornments that do not or can not presently use an external Firefox helper.
-
Yawning Angel authored
ClientFactories now have a Dial() method instead of a WrapConn() method, so that it is possible to write something like meek-client using the obfs4proxy framework. This breaks the external interface if anyone is using obfs4proxy as a library, but the new way of doing things is a trivial modification, to a single routine that shouldn't have been very large to begin with.
-
- Jun 01, 2015
-
-
Yawning Angel authored
-
- May 26, 2015
-
-
David Fifield authored
-
- Apr 23, 2015
-
-
Yawning Angel authored
-
- Apr 15, 2015
-
-
Yawning Angel authored
-