DeeSec

Inventing, creating, ...

Updated October 05th 2011

uOneCrypt

by: deepbit

For along time I've wanted to store lots of my data in internet, since I don't trust hard disks for "all" my information.

The problem was I coudn't find a storage service which would allow me encrypting the data (local encryption) and then uploading the information. Some software do that but they are not free software, so you cannot check if there is a hidden mechanism to decrypt your data.

Actually I haven't carried out a state of the art on the different storage solutions, but I decided to work anyway on a software regarding the Ubuntu Cloud Storage Service. So I decided to start a new software with the encryption feature. I tried to do it as much platform compatible as I could.

I've read about encryption in Ubuntu One Cloud by means encfs, but the only client of UbuntuOne is for Ubuntu (or linux), not for Osx or Windows.

So here is the software.

Usage is very simple, you just upload information to the cloud like if it was an FTP client and everything you store under the /CRYPT folder will be encrypted with your private key.

The configuration is pretty basic, write your user, password (ubuntu one) and a private key in the file uOne.cfg.

I'm going to show the basic usage:

We'll start with an empty storage account, (it's not neccesary, but let uOneCrypt to create /CRYPT by itself).

empty account

deepbits-iMac:uOneCrypt deepbit$ python uOneCrypt.py 
uOneCrypt:/> ls
        Size | Node
--------------------------------------------------------------------------------
         --- | CRYPT/
--------------------------------------------------------------------------------

Start the client and /CRYPT is created automatically

/CRYPT created

uOneCrypt:/> cd CRYPT
uOneCrypt:/CRYPT> ls
        Size | Node
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

There's nothing inside, so let's upload some content.

uOneCrypt:/CRYPT> put uOneCrypt.py
uOneCrypt:/CRYPT> put uOne.cfg
uOneCrypt:/CRYPT> ls
        Size | Node
--------------------------------------------------------------------------------
     30.5 Kb | uOneCrypt.py
   328 Bytes | uOne.cfg
--------------------------------------------------------------------------------

/CRYPT content

The .ToC file contains the real names of the files and folers, DON'T DELETE THIS FILE NEVER!

uOneCrypt:/CRYPT> cd ..
uOneCrypt:/> mkdir newDir
Directory //newDir created

uOneCrypt:/> ls
        Size | Node
--------------------------------------------------------------------------------
         --- | CRYPT/
         --- | newDir/
--------------------------------------------------------------------------------
uOneCrypt:/> put uOneCrypt.py
uOneCrypt:/> ls
        Size | Node
--------------------------------------------------------------------------------
         --- | CRYPT/
         --- | newDir/
     30.4 Kb | uOneCrypt.py
--------------------------------------------------------------------------------
uOneCrypt:/>

/ content

uOneCrypt:/> help

Documented commands (type help <topic>):
========================================
EOF  cd  del  dir  exit  get  ls  md  mkdir  put  quit  rd  rm  rmdir

Undocumented commands:
======================
help

As you can see, the content outside /CRYPT is not encrypted (obviosly the data inside the file is encrypted, test it yourself)

And that's all, I'd like to create a FUSE module in order to integrate this software as another filesystem either in Linux, or OSx or Windows.

If you want to see any further features read the README on the project's page

Any help will be wellcome! :)