Commit Graph

13 Commits (594d45be021144f1297b62d150842aa042e734ec)

Author SHA1 Message Date
Yawning Angel 0066cfc393 Add support for acting as a ScrambleSuit client.
This allows obfs4proxy to be used as a ScrambleSuit client that is wire
compatible with the obfs4proxy implementation, including session ticket
support, and length obfuscation.

The current implementation has the following limitations:
 * IAT obfuscation is not supported (and is disabled in all other
   ScrambleSuit implementations by default).
 * The length distribution and probabilites are different from those
   generated by obfsproxy and obfsclient due to a different DRBG.
 * Server support is missing and is unlikely to be implemented.
10 years ago
Yawning Angel cdeda57241 Change the import path for go.crypto.
The Go developers decided to move the go.crypto repository to
golang.org/x/crypto, and also to transition from hg to git.  The tip of
tree code.google.com copy of the code is broken due to the import paths
pointing at the new repository.

While the change here is simple (just update the import location), this
affects packagers as it now expects the updated package.  Sorry for the
inconveneince, I blame the Go people.
10 years ago
Yawning Angel 6cd81ec42f Change the bridge line format to be more compact.
Instead of "node-id" and "public-key" that are Base16 encoded, use
"cert" which contains the "node-id" and "public-key" in Base64 encoded
form.  This is more compact and cuts the length down by 49 characters.
10 years ago
Yawning Angel 1436720b12 Minor documentation cleanups, no functional changes. 10 years ago
Yawning Angel 79e94103d6 Update the README.md (No functional changes). 10 years ago
Yawning Angel 339c63f0c8 Massive cleanup/code reorg.
* Changed obfs4proxy to be more like obfsproxy in terms of design,
   including being an easy framework for developing new TCP/IP style
   pluggable transports.
 * Added support for also acting as an obfs2/obfs3 client or bridge
   as a transition measure (and because the code itself is trivial).
 * Massively cleaned up the obfs4 and related code to be easier to
   read, and more idiomatic Go-like in style.
 * To ease deployment, obfs4proxy will now autogenerate the node-id,
   curve25519 keypair, and drbg seed if none are specified, and save
   them to a JSON file in the pt_state directory (Fixes Tor bug #12605).
10 years ago
Yawning Angel 6245391c93 Document dependencies, add LICENSE (No functional changes). 10 years ago
Yawning Angel fc5e39a4ef Update README (No functional changes). 11 years ago
Yawning Angel 79a7ad7f2b Changed the taglne to "The obfourscator", per dcf's suggestion. 11 years ago
Yawning Angel 659efbc044 Update README (No functional changes). 11 years ago
Yawning Angel 9bfdd77f72 Add preliminary support for packet length obfuscation.
The same algorithm as ScrambleSuit is used, except:
 * SipHash-2-4 in OFB mode is used to create the distribution.
 * The system CSPRNG is used when sampling the distribution.

This fixes most of #3, all that remains is generating and sending a
persistent distribution on the server side to the client.
11 years ago
Yawning Angel f76f142340 Change documentation/comments to reflect reality (No functional changes). 11 years ago
Yawning Angel ef38b844f9 Initial import. 11 years ago