Giter Club home page Giter Club logo

mihalya's Introduction

Test Mihalya online here: http://mihalya.github.com/Mihalya/

1. What is Mihalya?

Mihalya is a system designed to produce, search and browse encrypted data hosted on unsecured servers or even at home. Mihalya is using encrypted raw text files. There is no scripting, no RDBMS engine behind, the simpliest web server is enough to put online your searchable encrypted data.

2. Prepare your data

Text data is stored in raw text files utf8 encoded.

Records are separated by this line: 

=======================DATA ENDS============================

Example Data structure

id: 1
date: 29.11.2011
refid: BL001
origin: Bulgaria Sofia
classification: PUBLIC
destination: 
tags: Encryption Search Balkanleaks Wikileaks
subject: Encrypted Data Search Engine
body: Wondering how this system works? Click on the slides.

=======================DATA ENDS============================

id: 2
date: 29.11.2011
refid: BL002
origin: Bulgaria Sofia
classification: PUBLIC
destination: 
tags: Audio examples
subject: Audio attachment example
body: Click on the audio file in the Media box to listen

=======================DATA ENDS============================


3. Attachments

Mihalya supports images, audio and pdf attachments. 

Attachments associated with each record are placed in a directory named after the refid field. In the previous examples place the attachments in the BL001 and BL002 directories. You can use the following extensions: JPG, PNG, MP3, OGG and PDF.

4. Encoding the data

You need a working perl installation with the Crypt::OpenSSL::AES module installed via CPAN

Change to the mihalya main dir. Place your data and attachment files in a directory, let's name it source:

The directory structure should look like this:

mihalya.pl (perl script file)
index.html (html file)
mihalya (dir)
source (dir)
- data.txt (text data file)
- data2.txt (text data file)
...
- refid1 (dir)
-- attachment1.jpg (pic attachment)
-- attachment1.mp3 (sound attachment)
-- attachment3.pdf (pdf attachment)
- refid2 (dir)
-- attachment2.jpg (pic attachment)
-- attachment2.mp3 (sound attachment)
-- attachment2.pdf (pdf attachment)
...

Type this in the prompt:

# perl mihalya.pl "user" "pass" source output

If everything goes well the encrypted data will be encoded in output. 

5. Browsing the data from the web

To browse from the web just move the output directory on a web server and point the browser to it. That's it. Enjoy!

6. Browsing the data locally

You can also browse the data locally from the HD or from an USB drive. In this case only a recent version of Firefox will work properly.

Open Firefox and type about:config in the address field. Promise to be carefull and pass the alert.

Search for fileuri in the filter. Doble click on security.fileuri.strict_origin_policy to switch the setting from true to false.

Restart the browser and load the index file from the disk.

Don't forget to switch back security.fileuri.strict_origin_policy to true when you're done. Avoid browsing the web while you are working on the local copy of Mihalya.

You can also use a dedicated portable version of Firefox. The portable FF copy will start from a USB drive and the security switch is done only once, cause you'll use the portable FF only for browsing the encrypted data and not for visiting the web.

Windows users are happy with the Portableapps edition of FF - portable.

http://portableapps.com/apps/internet/firefox_portable

There is no recent portable FF for MacOSX and Linux, but the TorBrowserBundle version will do the job. 

https://www.torproject.org/projects/torbrowser.html.en

However you need to go through an additional step. After the security switch in about:config go to the Extensions and desactivate the Tor Button. Restart the browser and load the index file from the disk. Enjoy!

Credits: Mihalya project is supported by http://www.balkanleaks.eu and http://www.bivol.bg

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.