CodeCon Peek-A-Booty, cDc's much vaunted anonymity app, is vaporware no more - it went public at the landmark CodeCon conference in San Francisco's DNA Lounge on Sunday.
Peek-A-Booty is designed to let surfers access sites blocked by government restrictions, and is essentially, a distributed proxy network. It uses a peer-to-peer model, masking the identity of each node. So the user can route around censorship that blocks citizens' access to specific IP addresses, because the censor doesn't know they're going there. If you're a Peek-A-Booty node, you might be doing it on their behalf. So the software isn't itself a browser, but simply requires the user to use localhost in the proxy field of their preferred browser.
Working out the general architecture was the easy bit. The tricky bit, explained cDc developers Paul Baranowski and Joey deVilla (and relax, they're happy to use their own names now), was anticipating and thwarting a wide variety of the attack measures, from outside or inside the Peek-A-Booty network itself. The design process took six months, beginning in July 2000, but coding only started in earnest six months ago, after a hiatus.
Peek-A-Booty nodes send out standard SSL, so the censorware can't distinguish the request from any other secure electronic transaction: the authors describe this as a form of steganography. But a rogue node inside such a network could harvest the addresses of all the other nodes, so Peek-A-Booty deploys a "virtual circuit", borrowing ideas from the Crowds anonymous web browser.
"Most P2P systems really want their nodes to be found, our problem is that you want to be found, but you really don't want to be found," said Baronowski. So Peek-A-Booty uses random forwarding based on probability - no one knows where the connection originated except the originator - and eschews time to live packets. For security, there's no attempt at initial discovery - you'll get sent details of a node by word of mouth, or from some other secure source. Baranowski and deVilla expect that citizens groups (NGOs) will become trusted servers. But as a one-time operation, you can use Peek-A-Booty to download Peek-A-Booty.
The demo - of version 0.75 running on Windows XP- showed off the web-based configuration management tool and the centerpiece, the Peekabear screen saver. Which is very cute. (We've been promised screenshots and will add them to this story as soon as they arrive).
Joey told us that the code was pretty standard Unix code (on the wxWindows [and not Cygnus Windows, as earlier reported] environment), so a Linux and even a Mac OS X port should be trivial. But Windows is on most desktops, and for Peek-A-Booty to work effectively - like SETI - it needs participating nodes, so that's where the numbers are.
It's a single threaded architecture right now, and grabs one link at time, but the authors say it runs pretty well on a low-end PII, and the demo proved this. "This will be fixed," they promise.
The pair are working on the code full time, so they need funding. There's a basic website, [note the .org TLD - there's erm, booty of the regular kind at the .com] but you'll need to mail the authors to get access to CVS tree.
The pair got a tremendous ovation from third day CodeCon attendees, and if it withstands attack, will be a boost for human rights. Bravo. ®