Coder Social home page Coder Social logo

nova-db's Introduction

What Is Nova

Nova is an OpenSource Database solution for websites. It is written in Python (3.x) and focuses on privacy and security. Most importantle Nova allows users to store information securely without an administrator or other person having unfettered access to it. Nova provides a secure storage solution that is easy to use and provides no backdoor for administrators or others to access your data.

How To Use Nova

Nova is designed to be very easy to use for administrators. It best works in conjunction with nginx, but can be run with any WSGI capable web server. For future easy of use a docker package is planned to make it possible to deploy nova anywhere without any setup. As of now, you will need to set up nova through python, preferably in a virtual environment.

Security Concerns

Of course there is no absolute security, to think otherwise is folly. However, Nova tries to minimize the leakage of confidential information. As such, it employs RSA encryption of information stored in private nodes and employs SHA512 encryption to protect the keys stored in the database with the user's password and a specific salt for each user. The basic workflow to ensure security is as follows:

  1. A user signs up with the password that has been SHA512 encrypted on the client side. This way the plain text password is never sent to the server.
  2. Once received, the server takes the client side encrypted password to unlock a user's key. This key is then used to decrypt any sensitive information that is sent back to the user.
  3. The user's password is stored encrypted (based on SHA512 and another salt) in the database. This is to ensure that an administrator can not gleam at the database and use a user's client side encrypted password to unlock a key.
  4. Once the request is handled the data is thrown away and for another request the user has to supply the password again. While this means that each request (that requires elevated access) to the server needs to have the password provided, it ensures that the key is only available for a very limited amount of time. Of course we are talking about Python and as such we do not have a decent way of erasing such memory. However, if you're server's memory is compromised then all the security will probably not be enough to protect your user's data.

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.