unsakini 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c2db76ad117d5f468e15d77b47f47ee6e6235bc
4
- data.tar.gz: 3d18db630e818d60aa071caa7cda14e7e4302b78
3
+ metadata.gz: e1f7610a7b1efe62c3b15aec2b07754e303a134e
4
+ data.tar.gz: 109ce1ca7cc41e28c30552208ae6464d6f913dfb
5
5
  SHA512:
6
- metadata.gz: 316d42aba0b7cf7362f7bc84b481d576dcff778916d456ab9ad7bc390196fb853d5bc3b036886485734308349c3d224010ec40db6c4bc49559fb33dadc2d8f0a
7
- data.tar.gz: 9b7aaa3f513a66d2d8916baf8f7439e5437db28acf78ffda14f8a70306b922c53f469206999097b727046285efb1c794ec5d84228b3dca8ecfee0b3482447662
6
+ metadata.gz: 59b4a535023fb8336a688f365d4020a129157c0a0724707f3a08dfe850f07653b999d566fd5cb60386df036e5d871d2c7d88c2d4a08d71a528454f20dfb87b7e
7
+ data.tar.gz: b1c52c6ccb7c51ac5b7fba768700c5444d715290196dc45fde2a47bae2aa92cf708885eb9bc90f4d95e413e83df8772e3912310a1d2855cf69570838d19d7c78
data/README.md CHANGED
@@ -1,28 +1,80 @@
1
- # Unsakini
2
- Short description and motivation.
1
+ [![Build Status](https://travis-ci.org/adonespitogo/unsakini.svg?branch=master)](https://travis-ci.org/adonespitogo/unsakini)
3
2
 
4
- ## Usage
5
- How to use my plugin.
3
+ UNSAKINI
4
+ -----------
5
+ *Created by and for online activists, information security enthusiasts and government surveillance evaders.*
6
6
 
7
- ## Installation
8
- Add this line to your application's Gemfile:
9
7
 
10
- ```ruby
11
- gem 'unsakini'
12
- ```
8
+ **[Unsakini](https://www.unsakini.com)** is an open source encrypted bulletin board created with the aim of evading global information surveillance and spying, preventing data leaks and promoting information confidentiality and integrity.
9
+
10
+ Perfect for:
11
+
12
+ - group discussions on sensitive issues
13
+ - confidential conversations
14
+ - storing passwords, liscenses, credit card details, and other sensitive documents
15
+
16
+
17
+ -------------------------
18
+
19
+ ### How it Works
20
+ Upon using the system, you'll be asked to provide your private key. This key is used to encrypt your data before it is sent to the server. If you look at the network traffic in the browser network tab (by pressing F12 and selecting network tab), you'll see that sensitive data sent to the server are gibberesh. This is because they are encrypted using your private key before it leaves your web browser. The key is stored in your computer and is never sent to the server. Only you have access to your private key, thus only you can read your data.
21
+
22
+ Hackers, surveillance and spy softwares and even the server host cannot read your data, unless they are able to obtain your private key. Your private key is deleted from your computer once you logout.
23
+
24
+ To increase the security, your data is re-encrypted in the backend before being saved to the database, which adds a second layer of protection.
25
+
26
+ So to access your data, the hacker needs to know two things - (1) your private key and (2) the server encryption key. That is, if they are able to bypass the server security and gets access to the database. Even so, they won't be able to read the data without these two elements.
27
+
28
+ The data is ecnrypted using [Advanced Encryption System (AES)](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard), the most widely used and trusted encryption algorithm.
13
29
 
14
- And then execute:
15
- ```bash
16
- $ bundle
30
+ ------
31
+
32
+ ### System Requirements
33
+ - Node.js
34
+ - Ruby >= 2.2.2
35
+ - `rails` and `bundler` gems
36
+
37
+ ### Installation
38
+ Create a new rails application named `my-app` or anything you like.
39
+ ```
40
+ $ rails new my-app
41
+ $ cd my-app
42
+ ```
43
+ Add `gem 'unsakini'` to your `Gemfile`.
44
+ ```
45
+ $ bundle install
46
+ $ rake unsakini:install
17
47
  ```
18
48
 
19
- Or install it yourself as:
20
- ```bash
21
- $ gem install unsakini
49
+ Run local rails server
22
50
  ```
51
+ $ rails s
52
+ ```
53
+ Now you will be able to see the application at [http://localhost:3000](http://localhost:3000)
54
+
55
+ ------------------------------
56
+
57
+ ### Encryption Specifications
58
+
59
+ - server
60
+ - Algorithm = `AES`
61
+ - Mode = `CBC`
62
+ - Key Size = `256`
63
+ - *Others = autogenerated, random
64
+ - client
65
+ - Algorithm = `AES`
66
+ - Mode = `CBC`
67
+ - Padding = `Pkcs7`
68
+ - Key Derivation Function = `PBKDF2`
69
+ - Key Size = `256`
70
+ - Initialization Vector Size = `128`
71
+ - PBKDF2 iterations = `500`
72
+
73
+ ### Security
74
+ If you find any security flaws, please don't write a github issue. Email me instead at pitogo.adones@gmail.com so we can fix it before the public knows.
23
75
 
24
- ## Contributing
25
- Contribution directions go here.
76
+ ### Author
77
+ [Adones Pitogo](http://adonespitogo.com)
26
78
 
27
- ## License
28
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
79
+ ### License
80
+ Released under the terms of [MIT](https://opensource.org/licenses/MIT) License.
@@ -1,5 +1,16 @@
1
1
  namespace :unsakini do
2
2
 
3
+
4
+ desc "Runs `rails generate unsakini:config`"
5
+ task :config do
6
+ system('bundle exec rails g unsakini:config')
7
+ end
8
+
9
+ desc "Runs `rails generate unsakini:angular`"
10
+ task :angular do
11
+ system('bundle exec rails g unsakini:angular')
12
+ end
13
+
3
14
  desc "Initializes the angular app in ./angular directory."
4
15
  task :build do
5
16
 
@@ -21,7 +32,7 @@ namespace :unsakini do
21
32
  end
22
33
  rescue Exception => e
23
34
  puts \
24
- "
35
+ "
25
36
 
26
37
  Please run `rails g unsakini:angular` before you proceed.
27
38
 
@@ -30,4 +41,28 @@ namespace :unsakini do
30
41
 
31
42
  end
32
43
 
44
+ desc "One stop command to install unsakini."
45
+ task :install => [:config, :angular, :build] do
46
+ begin
47
+ system('bundle exec rake unsakini_engine:install:migrations')
48
+ system('bundle exec rake db:migrate')
49
+ rescue Exception => e
50
+ puts e.to_s
51
+ puts \
52
+ "
53
+
54
+ An error occured. Please run the following commands in succession:
55
+
56
+ "
57
+ puts "1.) rails g unsakini:config"
58
+ puts "2.) rails g unsakini:angular"
59
+ puts "3.) bundle exec rake unsakini_engine:install:migrations"
60
+ puts "4.) bundle exec rake db:migrate"
61
+ puts ""
62
+ end
63
+ end
64
+
65
+
66
+
67
+
33
68
  end
@@ -1,3 +1,3 @@
1
1
  module Unsakini
2
- VERSION = '0.0.0'
2
+ VERSION = '0.0.1'
3
3
  end
@@ -8,8 +8,7 @@
8
8
  "lint": "tslint \"src/**/*.ts\"",
9
9
  "test": "ng test",
10
10
  "pree2e": "webdriver-manager update",
11
- "e2e": "protractor",
12
- "postinstall": "ng build"
11
+ "e2e": "protractor"
13
12
  },
14
13
  "private": true,
15
14
  "dependencies": {
@@ -0,0 +1,4 @@
1
+ Unsakini.setup do |config|
2
+ # your application encryption key
3
+ config.unsakini_crypto_key = "change me"
4
+ end
@@ -0,0 +1,10 @@
1
+ # This migration comes from unsakini_engine (originally 20161116114222)
2
+ class CreateBoards < ActiveRecord::Migration[5.0]
3
+ def change
4
+ create_table :boards do |t|
5
+ t.text :name
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from unsakini_engine (originally 20161116200034)
2
+ class CreateUserBoards < ActiveRecord::Migration[5.0]
3
+ def change
4
+ create_table :user_boards do |t|
5
+ t.integer :user_id
6
+ t.integer :board_id
7
+ t.boolean :is_admin, :default => false
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # This migration comes from unsakini_engine (originally 20161118031023)
2
+ class CreatePosts < ActiveRecord::Migration[5.0]
3
+ def change
4
+ create_table :posts do |t|
5
+ t.text :title
6
+ t.text :content
7
+ t.integer :user_id
8
+ t.integer :board_id
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from unsakini_engine (originally 20161118100454)
2
+ class CreateComments < ActiveRecord::Migration[5.0]
3
+ def change
4
+ create_table :comments do |t|
5
+ t.text :content
6
+ t.integer :user_id
7
+ t.integer :post_id
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from unsakini_engine (originally 20161118221508)
2
+ class AddEncryptedPasswordToUserBoard < ActiveRecord::Migration[5.0]
3
+ def change
4
+ add_column :user_boards, :encrypted_password, :string
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ # This migration comes from unsakini_engine (originally 20161122211105)
2
+ class CreateUsers < ActiveRecord::Migration[5.0]
3
+ def change
4
+ create_table :users do |t|
5
+ t.string :name
6
+ t.string :email
7
+ t.string :password_digest
8
+ t.boolean :confirmed
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unsakini
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adones Pitogo
@@ -361,6 +361,7 @@ files:
361
361
  - spec/dummy/config/initializers/inflections.rb
362
362
  - spec/dummy/config/initializers/mime_types.rb
363
363
  - spec/dummy/config/initializers/new_framework_defaults.rb
364
+ - spec/dummy/config/initializers/unsakini.rb
364
365
  - spec/dummy/config/initializers/wrap_parameters.rb
365
366
  - spec/dummy/config/locales/en.yml
366
367
  - spec/dummy/config/puma.rb
@@ -368,6 +369,12 @@ files:
368
369
  - spec/dummy/config/secrets.yml
369
370
  - spec/dummy/config/spring.rb
370
371
  - spec/dummy/db/development.sqlite3
372
+ - spec/dummy/db/migrate/20161123150822_create_boards.unsakini_engine.rb
373
+ - spec/dummy/db/migrate/20161123150823_create_user_boards.unsakini_engine.rb
374
+ - spec/dummy/db/migrate/20161123150824_create_posts.unsakini_engine.rb
375
+ - spec/dummy/db/migrate/20161123150825_create_comments.unsakini_engine.rb
376
+ - spec/dummy/db/migrate/20161123150826_add_encrypted_password_to_user_board.unsakini_engine.rb
377
+ - spec/dummy/db/migrate/20161123150827_create_users.unsakini_engine.rb
371
378
  - spec/dummy/db/schema.rb
372
379
  - spec/dummy/db/test.sqlite3
373
380
  - spec/dummy/public/app/favicon.ico
@@ -492,6 +499,12 @@ test_files:
492
499
  - spec/dummy/app/controllers/application_controller.rb
493
500
  - spec/dummy/app/models/application_record.rb
494
501
  - spec/dummy/db/test.sqlite3
502
+ - spec/dummy/db/migrate/20161123150823_create_user_boards.unsakini_engine.rb
503
+ - spec/dummy/db/migrate/20161123150825_create_comments.unsakini_engine.rb
504
+ - spec/dummy/db/migrate/20161123150826_add_encrypted_password_to_user_board.unsakini_engine.rb
505
+ - spec/dummy/db/migrate/20161123150824_create_posts.unsakini_engine.rb
506
+ - spec/dummy/db/migrate/20161123150827_create_users.unsakini_engine.rb
507
+ - spec/dummy/db/migrate/20161123150822_create_boards.unsakini_engine.rb
495
508
  - spec/dummy/db/development.sqlite3
496
509
  - spec/dummy/db/schema.rb
497
510
  - spec/dummy/config/application.rb
@@ -509,6 +522,7 @@ test_files:
509
522
  - spec/dummy/config/locales/en.yml
510
523
  - spec/dummy/config/initializers/wrap_parameters.rb
511
524
  - spec/dummy/config/initializers/cors.rb
525
+ - spec/dummy/config/initializers/unsakini.rb
512
526
  - spec/dummy/config/initializers/application_controller_renderer.rb
513
527
  - spec/dummy/config/initializers/backtrace_silencers.rb
514
528
  - spec/dummy/config/initializers/mime_types.rb