Airbnb for Dropbox
Do you have too much Dropbox space? Or do you need more?
We allow you to lend out your unused Dropbox space to other users. Of course, putting your files on other users' Dropbox accounts seems like a huge privacy problem, so we fix the process by encrypting your file, breaking it up into multiple pieces, and sending them out to different lenders on our network -- meaning that no one can read your files because 1) they're encrypted and 2) they only have a small piece of your file.
When it comes time for you to retrieve your files again, you can come back to us and download the file. We'll find all the individual pieces, piece them together bit by bit, and then decrypt it, giving you your original file.
So why would you ever use this when you could just keep making new, free Dropbox accounts? Well, with Airbox, you only need one account and one interface -- no need to login and logout.
Note: this is a proof of concept created in a 24 hour hackathon. This is a demonstration of a secure, distributed, secondary marketplace for Dropbox space, but no space is actually being sold. You can only test Airbox locally.
In config.py, change
app.secret_key - instructions on how to generate one are available here.
You also need to change
AIRBOX_DROPBOX_APP_SECRET. This needs to be a Dropbox API app with a redirect_uri of
source airbox/bin/activate python db.py python run.py
First, on each account you want to test Airbox with, you need to go to the "Rent out your space" section and specify how much Dropbox space you want to make available for Airbox files.
Then, you can upload files in the "Find space" section and watch as the file is split into encrypted, 1 MB pieces ('SPLIT_FILESIZE' in views.py) and uploaded to Dropbox.
To retrieve your files, click the appropriate file name in the "Your Downloads" section. The pieces will be decrypted and pieced back together.
Sample files are included in the demo directory. You can upload the files to Airbox, download them, and then
diff with the original ones.
Improvements to be made
- Improve stability: sometimes, decryption fails
- Add redundancy for files
- Don't upload your own files to your own Dropbox if we can avoid it
- Improve algorithm for finding space: currently it just finds the person with the most space available for rent (attempting to put consecutive blocks on different accounts if available)
- Add more documentation