Skip to content

Crypto tool written in python which stores files on a cloud storage and disguises the access of the files

License

Notifications You must be signed in to change notification settings

marcjulian/pyoram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyORAM

Crypto tool written in python which stores files on a cloud storage and disguises the access of the files using Path ORAM (Oblivious RAM protocol).

Table of contents

Quick start

  1. Clone the repo: git clone https://github.com/marcjulian/pyoram.git.
  2. Install Python 3.4 (developed and tested with Python 3.4.4).
  3. Install dependencies for Python (using pip or visit the website for instructions).
  1. Register a Dropbox API app and generate a access token using Dropbox App Console (an active Dropbox account is necessary).
  2. Run src/pyoram/main.py and enter your password.
  3. For the first time an error will occur, replace "My token" in the cloud map with your token "token": "My token", the map can be found in data/cloud.map.
  4. Restart the program and re-enter password -> now it should start to initialize the cloud (check your folder).
  5. Configurations to the program can be made in src/pyoram/core/config.py including:
  • Block size
  • Height of the Path ORAM tree
  1. Resetting the program:
  • Delete the data/stash folder, data/position.map, data/file.map and set "init": true to false in data/cloud.map (you can keep the data/key.map)
  • Delete the data/key.map, if you like to select a new password (perform the previous step to avoid decryption errors)

Features

Architecture

Keys

Confidentiality

  • file encryption with AES(256-bit key length)
  • CBC-mode with IV(128-bit)
  • padding the data with PKCS7

Authentication

  • HMAC(256-bit key length) using SHA256

Screenshots

Starting PyORAM the first time the sign up page requires the user to enter a password:

After confirmation the key map is generated on the client and switches to the login page. The login page verifies the entered password every time the application is started:

The main page is shown, if the password which was entered is correct. It enables the user to upload, download and delete files from the cloud storage. Futhermore, the free and used cloud storage is displayed:

The user can select any file from the client to upload to the cloud, it is only limited by the available cloud storage:

After uploading couple of files, a single file can be selected for downloading or deleting:

The user can select a file to download to the client:

Under construction

PyORAM is currently under construction and further features will be added shortly. For more information visit the kanban board at Taiga.io.

Acknowledgements

The project is the main task of my internship at SIIT in the study program Business Information Systems (Bachelor of Science). Prof. Dr. Steve Gordon is the advisor, who helps defining the requirements for the project and assists me with any further questions.

The final presentation of my internship is available on prezi.

Copyright and license

Code and documentation copyright 2016 marcjulian. Code released under the MIT license. Docs released under Creative Commons.

About

Crypto tool written in python which stores files on a cloud storage and disguises the access of the files

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages