Vanish is a research prototype. We are making the source code available below for other researchers to study. The source code below is for our second public release, which includes defenses to vulnerabilities found in our first public release. We welcome further contributions and feedback from the community. Vanish is offered as-is with absolutely no warranty.
The research prototype is distributed in three separate packages, two of which correspond to the Vanish system and the third corresponds to the Vanish Firefox Plugin.
Package Name | Description | License |
Vanish Core | Includes all Vanish-specific functionality + an OpenDHT backend | Academic |
Vuze Vanish Backend | Modified version of Vuze storing metadata provided by Vanish Core | GPL v.2 |
Firefox Vanish Plugin | Enables users to use Vanish on the Web via Firefox 3.0+ | MPL |
At a minimum, if you want to play with Vanish, you will need to download the Vanish Core package. You can then choose whether to download the other packages, depending on your goals. For example, if you want to run Vanish with the Vuze backend, you should also download the Vuze Vanish Backend. However, if you intend to run Vanish on top of another backend that you or others have developed, you don't have to download Vuze Vanish Backend. Finally, if you plan to use Vanish with Firefox 3, then you should also either download the code of our Firefox Vanish Plugin.
After downloading the source tarballs, follow the instructions below or the READMEs found in the tarballs to compile, run, and configure Vanish.
Please review the Vanish License carefully before downloading.
The Vanish core download includes a backend connection to OpenDHT. A list of dependencies for the Vanish core is provided here.
The Vuze Vanish Backend source code is available here under GPL v.2 license (license file included in the tarball). It contains slight modifications made to an older version of Vuze.
A list of dependencies is provided here.
The Vanish Firefox Plugin source code is available here under MPL license (license file included in the tarball). It can be used with Firefox 3.0+.
Compiling and running Vanish consists of three steps, which are detailed next. As a prerequisite, you must have Java 1.5 or higher installed on your computer.
To compile the Vanish Core, untar the downloaded tarball and cd into the newly created vanish-X directory (where X is the version).
You can compile Vanish by running ant in the root Vanish directory, as
shown below. This will create the necessary jars in the dist
folder.
# ant -f build-vanish.xml
Then, you can start Vanish using the following command:
# bin/start-vanish.sh
NOTE: You're not yet done. Vanish relies on a backend process running on the same machine, to which it talks via RPC. So, if you tried using Vanish right now, it would complain that it can't find any backend. You can use any type of backend for Vanish, but for now there's only one available: the Vuze Vanish Backend. So go ahead and compile and start the Vuze Vanish Backend now (step 2).
To compile and start the Vuze Vanish Backend, proceed as follows.
Download the Vuze
Vanish Backend code and untar it. Then, copy the vanish-core.jar created at
Step 1 (you'll find it in the vanish-X/dist directory) into the
vuze-vanish-X/lib directory. Finally, position yourself into the
vuze-vanish-X directory and run ant like this:
# ant -f build-vuze-vanish.xml
At this point, you might get an error having to do with Java running out of memory while compiling your code. This is because the Vuze code is pretty large. To solve this problem, simply configure ant to allow the forked JVM to use more memory when compiling. To do that, add to the environment variable ANT_OPTS a JVM option "-Xmx1024m".
After compiling the backend, you can start it using the following command:
# bin/start-vuze-vanish.sh
As an aside, the order in which you start the Vuze Backend and the Vanish Core doesn't actually matter. The VanishCore will try to contact the backend over and over again until you actually launch it.
NOTE: Do not forget about Step 3 -- waiting for the backend to bootstrap -- before you jump to using Vanish.
While you are waiting, you can read about how to use our command-line tool. This tool can be used to test your Vanish compilation.
We provide a basic command-line tool that allows you to interact with Vanish. Using it, you can encapsulate and decapsulate files on your computer. Not, however, that original files are not deleted securely, so you should not rely on this application for security. Rather, the tool is more for testing at this point.
To use the file-based tool, proceed as follows:
The output will be placed in the file called ENCRYPTED_FILE, which can be any path you specify, but not the original FILE.
Again, it doesn't quite matter the order in which you run these, but normally you do them in the above order.
The Vanish Core relies on several open-source packages, whose links we make available here:
Package | License |
commons-logging | Apache |
commons-configuration | Apache |
commons-httpclient | Apache |
apache.xmlrpc | Apache |
log4j | Apache |
The Vuze Vanish Backend relies on several open-source packages, whose links we make available here:
Package | License | Modified |
Vuze | GPL v.2 | Yes |
commons-logging | Apache | No |
commons-configuration | Apache | No |
apache.xmlrpc | Apache | No |
log4j | Apache | No |
All of the above dependencies have been included in the appropriate tarballs for your convenience.