Monday, March 14, 2005

Publius project

http://cs1.cs.nyu.edu/~waldman/publius/

Publius is a Web publishing system that is highly resistant to censorship and provides publishers with a high degree of anonymity. Publius was the pen name used by the authors of the Federalist Papers, Alexander Hamilton, John Jay, and James Madison. This collection of 85 articles, published pseudonymously in New York State newspapers form October 1787 through May 1788, was influential in convincing New York voters to ratify the proposed United States constitution.
http://www.cs.nyu.edu/~waldman/publius/publius.pdf
How it works
Our system consists of publishers who post Publius content to the web, servers who host random-looking content, and retrievers who browse Publius content on the web. At present the system supports any static content such as HTML pages, images, and other files such as postscript, pdf, etc. Javascript also works. We assume that there is a static, system-wide list of available servers. Publius content is encrypted by the publisher and spread over some of the web servers. In our current system, the set of servers is static. The publisher takes the key, K that is used to encrypt the file and splits it into n shares, such that any k of them can reproduce the original K, but k-1 give no hints as to the key. Each server receives the encrypted Publius content and one of the shares. At this point, the server has no idea what it is hosting -- it simply stores some random looking data. To browse content, a retriever must get the encrypted Publius content from some server and k of the shares. Mechanisms are in place to detect if the content has been tampered with. The publishing process produces a special URL that is used to recover the data and the shares. The published content is cryptographically tied to the URL, so that any modification to the content or the URL results in the retriever being unable to find the information, or a failed verification. In addition to the publishing mechanism, we provide a way for publishers (and nobody else) to update or delete their Publius content. Publius also provides a way to publish several files at once and to publish mutually hyperlinked material.

Publius Software
http://www.cs.nyu.edu/~waldman/publius/software_download.html
Publius Proxies
In order to use Publius you need to connect to a Publius proxy. You can either connect to a remote proxy or download the proxy code and run it on your own computer. The proxy code is currently only available for Unix based computers. If you are using a Windows based computer or a Macintosh you will need to use the remote proxy. Unix based computers can also use the remote proxy.
Although the Publius software contains no logging capability, the server and proxy volunteers may be logging your IP address and other information sent to the server. To help prevent this you may wish to use an anonymizing proxy and run the proxy software on your own computer.