Darkwire.io

End-to-end encrypted instant web chat.


Product Overview

Darkwire.io is an end-to-end encrypted instant web chat that enables secure communication between users. This project showcases client-side encryption and demonstrates how it can be integrated as a chat service. Powered by Socket.IO and the Web Cryptography API, Darkwire.io provides a secure and private way for users to communicate with each other.

Main Features

Encryption

  • End-to-end encryption using public keys
  • Files are encoded into base64 and encrypted using the same method as chat messages
  • Secure file transfer with a default size limit of 4MB (configurable through the .env file)

Authentication

  • Currently, no authentication functionality is provided; users may not be who they claim to be (no guarantee against man-in-the-middle attacks)
  • Future versions may incorporate authentication features

Rooms and Sockets

  • Rooms are stored in memory on the server until all participants have left
  • Only public keys are stored in server memory for the duration of the room's life
  • Secure WebSockets (WSS) used to transmit encrypted information using Socket.IO

Development and Setup**

  • Darkwire.io is a Node.js application with a separate React JS and Redux-based web client
  • Prerequisites include installing Node, Yarn, and a HTTPS connection
  • Manual setup instructions are provided for those who prefer to install dependencies manually
  • Using Docker-Compose or Docker makes it easier to set up the project

Overall, Darkwire.io provides a secure and private way for users to communicate with each other through instant messaging and file transfer. While there are no authentication features currently available, future versions may address this limitation.

Related

LeapChat
Chatwoot
Rocket.Chat
SimpleX Chat
Databag
Etebase (EteSync)
Virola Messenger
Chitchatter
Star history

Star history for Darkwire.io