Hi,
I've decided to share some of my programming projects on SRL, since it would be nice (I think) to see/do alternative (that is, non runescape) programming on here. I'll probably be dumping/describing some more projects here later. If you don't like this project or think it's too advanced, no worries, I have a lot more planned and I will post more here soon
The Rubberfuse project is very young and far from being finished.
Quick overview of skills/goals
Goals:
- Education / learning about linux filesystems, encryption
- Provide a safe way for journalists and other freedom fighters to store data in countries.
Skills required to work on this project are relatively advanced, although I think a lot of knowledge can be picked up while working on the project:
- Programming experience in C
- Linux IO System calls (chmod,chown,read,write,stat,truncate)
- Basic block device understanding (Usage of dd and cat programs)
- Cryptography
Tools / libraries we are using:
Introduction
Anyway, Rubberfuse will become an reimplementation of Rubberhose, a filesystem written by Julian Assange that provides plausible deniability; or alternatively: Deniable encryption.
What this boils down to is basically than you can add several ``partitions'' (aspects) to an image (or actual hard disk) which each have their own password. Every aspect can be decrypted with its own password; and to the outsider there is no way to determine the amount of aspects on the image. In other words, you can plausibly deny the existence of a certain aspect. See the Wikipedia article for a better and more clear example.
The image is initially filled with random data; and all the data blocks are layed out (pseudo) randomly over the image. Every aspect can be unlocked independently of each other aspect. It is therefore only safe to ``write'' to an aspect when all the aspects have been unlocked (otherwise you might nuke data from another aspect).
Current status
Currently, rubberfuse can store files smaller than 4MB in a pseudo-random way spread over an image. Soon I will add support for multiple aspects, encryption and storage of files larger than 4MB...
I am writing this with some other people (although so far I'm the only one who actually worked on it) and the code is available here:
https://github.com/MerlijnWajer/rubberfuse
But the ``real'' code so far is on a separate branch:
https://github.com/MerlijnWajer/rubb...erc/c/rubber.c
Contact
If you're interested in working on the project, just let me know. (Post here or mail me)
There's also a mailing list and IRC channel. (For more information see the TechInc wiki page: http://wiki.techinc.nl/index.php/Rubberfuse)