Giter Site home page Giter Site logo

hamoudafares / secure-chat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nour-karoui/secure-chat

1.0 0.0 0.0 267 KB

An end to end encrypted chat app built using React, Express, Socket.io, Mongodb, Node.Js, LDAP & OpenSSL

License: MIT License

HTML 0.70% JavaScript 88.12% CSS 11.19%
react nodejs javascript chat openssl realtime ldap-authentication chat-application public-key-cryptography encryption-decryption private-key assymetric-encryption

secure-chat's Introduction

Welcome to Secure Chat ๐Ÿ‘‹

Documentation Maintenance License: MIT

An end to end encrypted messaging Real time messaging app built using React, Express, Socket.io, Mongodb, Node.Js, LDAP & OpenSSL

๐Ÿ  Homepage

alt tag

NB: This work is heavily based on Timothylp's work. Shout out to the amazing frontend he prepared.


Features:

  • User Account Creation/Login using LDAP
  • Real-time chat using socket.io
  • Tokens for API calls to backend
  • Cookies for saved session on browser refresh
  • Private Messaging with other users, all messages are end to end encrypted using asymmetric encryption

Installing

git clone https://github.com/nour-karoui/secure-chat .
npm install
npm start
cd server 
npm install
npm start
Go to http://localhost:3001/

PS: Before Starting the app, make sure:

1. you have apache directory studio installed and running. You can download it from HERE. After running the apache directory studio, make sure to link it to our project in the file server/config/ldap-client.

2. you generate a self signed certificate that'll allow you to verify the identity of the users and generate their certificates, (our self signed cetificate is saved in server/openssl/CA).

How Does it work

  1. When creating the account, the user generates a public and private key, and saves them in localstorage. the user sends the public key to the server alongside with his credentials. NEVER SHARE THE PRIVATE KEY WITH ANYONE.
  2. The server receives the user's credentials and his public key, he generates a certificate out of the public key and saves the user in the LDAP server.
  3. Each time userA wants to chat with userB, the server sends userB's certificate to userA and vice versa. Each user saves the other's certificate in their localstorage to be able to encrypt messages and send them.
  4. The ENCRYPTED messages are saved in Monge DB.

Author

๐Ÿ‘ค Fares

๐Ÿค Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page

Show your support

Give a STAR if this project helped you!

๐Ÿ“ License

  • Copyright ยฉ 2021 Fares.
  • License MIT

This README was generated with by readme-md-generator

secure-chat's People

Contributors

hamoudafares avatar nour-karoui avatar

Stargazers

 avatar

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.