/Secure-Chat--App

Implementation of an end-to-end 2048-bit RSA encrypted messenger

Primary LanguageJavaScript

Secure-Chat-App

Implementation of an end-to-end 2048-bit RSA encrypted messenger

Problem Statement

Data security is crucial. The internet as we know it would not exist without data security; data communicated over the internet would be as vulnerable to interception as a message yelled across a crowded room. Therefore securing these messaging services is crucial using the best techniques.

Solution

A traditional browser-based web app for Customer service which can be attached to various websites that wants communication between two users encrypted and safe live on the app. We will try to show an implementation of an end-to-end 2048-bit RSA encrypted messenger

Process flow

Utilizing Vue.js for coordinating the frontend functionality along with Node.js for integrating the backend and platform.

Using of socket.io to connect members for communication and sending messages which will be shown on the web app in real time which we will try to make using JavaScript Framework like Vuejs.

Adding of Encryption in our messenger using asymmetric encryption cryptography(to encrypt and decrypt a message and protect it from unauthorized access or use).

Tech Used

Vue.js - For coordinating the frontend functionality

Nodejs- For integrating backend and for modules

Socket.io- For sending messages between users

Asymmetric Encryption (Public key cryptography)(one to one)/E2E

Clone the project to run

Run these commands on the terminal to run this chat app

1- Clone this project on ypur system

    git clone https://github.com/baazis/Secure-Chat--App.git   

2- Go to the directory

    cd Secure-Chat--App

3- Install all the dependencies

    npm install

4- Run the Web app

    npm start

5- Open localhost:3000 to see the web-app

Open the localhost from two different browsers and join the same room.

Try to join the same room from different browser, it will notify and stop the third user to enter the room.

Using different web workers

The code given abpve uses RSA crypto web worker for implementing Encryption and providing security.

In folder More Crypto Workers I have added three more crypto web workers.

For using those web workers exchange the code of /public/crypto-worker.js with these codes.

Outputs

image

Two users connected Notification log

image

Chat between two users

image

Messages are Encrypted using web workers

image