8%

BLANK CHAT

A decentralized e2e encrypted native chat application routed over the Tor network. Built using websocket technology, JWT authentication, and Express.js + MongoDB backend.

AUG 2020

ABOUT THIS
PROJECT

During quarantine, I developed Blank, a privacy-focused chat client inspired by Discord with end-to-end encryption (E2EE). The frontend, built with Electron.js, requires users to create a master password for local data security, register with hashed and salted passwords, and authenticate via JWT. Data transactions occur over a WebSocket server, with users disconnecting on server or internet outages. The client code is obfuscated and includes anti-tampering measures.

The backend utilizes MongoDB for user data, Redis for temporary registration data, and Express.js for server logic. E2EE is achieved with RSA keys, stored on a key server. Chat messages are temporarily stored and encrypted locally using AES, ensuring forward secrecy and semi-decentralized storage.

Currently, Blank has functional registration, WebSocket authentication, basic server-client event handling, and completed encryption features, including the key server and local storage. Future plans include direct messaging with key exchanges, server chats with channel functionality, and implementing the Signal protocol for large-scale servers. Blank is a step forward in secure, private communication.