Skip to content

A decentralized social network with end-to-end encryption for messaging, private posts and private profile data. Posts can contain semantic information, so it is possible to search for all friends driving from A to B for example. This is a preview version. It is not secure yet!!! So do not wonder if you find some crypto mistakes!

License

Notifications You must be signed in to change notification settings

fo0nikens/Noisecrypt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Screenshot

Note: The name of this project was changed to something more individual.

Noisecrypt is a decentralized social network with end-to-end encryption. You can save your user data on a server of your choice while you can still interact (write messages, visit profiles, etc.) with people on other servers. Furthermore messages, private posts and private profile information are end-to-end encrypted. This is a preview version and it is not ready for production use yet. The software is not completed yet, as many things such as Spam or integrity protection are missing and will probably take some more years development time until the first stable release.

  • Video - A short demo video. Watch this first before testing it yourself.
  • Demo - Do not provide any personal data as content is not served via https and the whole thing is not completely secure yet! Provide "mschultheiss.com" (or your own server url) as a server when being asked at signup. Please note that data is reset periodically and the demo server is not always available as it is not very powerful. Setup your own server if you want a better test environment. Try to clear your cache if something is not working properly.
  • Paper - The paper describes the basic ideas and the protocol. Please note that it is unfinished.

You can add semantic information to your posts. With this feature it is possible to perform search queries like "Show me all events created by my fellow students in a 30 km radius" or "Show me all friends driving from Munich to Augsburg tommorrow":

Warning: This is for preview purposes only. It is almost function complete but neither stable nor secure. There are essential things missing, such as integrity protection for the client and forced https for server-to-server communication. The code is of not-so-good (horrible) quality right now and will be refactored and documented during the next months.

Setup a client

  • ONLY USE FOR TESTING!!
  • You can use the Demo Client, linked above for testing
  • You can also run it on your own server by copying the files in /jsclient on your server to test. Please note the client does not support https right now, due to mixed content policy.
  • Later we will provide native build for Windows, Mac etc.

Setup a Server

  • IT IS RECOMMENDED TO SETUP SERVERS IN A CLOSED TEST ENVIRONMENT (INTRANET etc.) WITHIN A VIRTUAL MACHINE ONLY!!! THE SOFTWARE IS NOT SECURE AT THE MOMENT!!!
  • Setting up a server requires solid knowledge of GNU/Linux
  • Copy the files in /server/charme to yourserver.com/charme, so that req.php is accessable via yourserver.com/charme/req.php Afterwards use the charme/admin/setup.sh script on Debian and Fedora. If you are using another OS or there are some errors, try out the steps described in the doc/install.md file.
  • Mongo DB may require a /data/db directory to work. Always check status via charme/admin/status.sh and the Apache logs if something is not working.
  • Make sure to create a config/imprint.html and a config/terms.html file containing your contact information and terms of service if your server goes public. But do not set up a public server right now as the software is not stable or secure!!
  • The most common errros are listed in faq_errors.md.
  • There is a short video on how to setup a test server on Youtube

FAQ

Why is protecting your passphrase important?

The passphrase encrypts all your private data. We can not provide a "forgot passphrase" function as we would have to know your passphrase to do so.

Developers

Directories:

**Path** **Description**
/jsclient Web based Client doing encryption and client-to-server requests.
/server This directory contains all the code for running a server.
/doc Developer Documentation. See the Github Wiki also
/Mobile Mobile App Files. Incomplete.

How to Contribute?

  • Help testing or write code! You can also write code for stand alone components while having zero knowledge about the system architecture itself!
  • Getting started

Libraries

A lot of libraries are used in this project. Find a list here.

License

Noisecrypt is a distributed social network with end-to-end encryption

Copyright (C) 2015 Manuel Schultheiß

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

A decentralized social network with end-to-end encryption for messaging, private posts and private profile data. Posts can contain semantic information, so it is possible to search for all friends driving from A to B for example. This is a preview version. It is not secure yet!!! So do not wonder if you find some crypto mistakes!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 38.1%
  • Java 26.2%
  • PHP 12.9%
  • CSS 11.9%
  • HTML 7.7%
  • CoffeeScript 1.9%
  • Other 1.3%