Giter VIP home page Giter VIP logo

deadchat's Introduction

deadchat

About

deadchat is a cryptographically secure single-room group chat server and client designed to enable a group of trusted friends to communicate with each other over an insecure channel without fear of eavesdropping.

deadchat features end-to-end encryption where messages are encrypted and decrypted at the end points such that the server and malicious machines on the network cannot eavesdrop on the conversation.

It is assumed that a member of the trusted group will operate the server.

DISCLAIMER

This work represents an endeavor to implement the functionality outlined above. It is still a work in progress and is not recommended for use unless you intend to help make improvements.

Usage

Run server.go on a server and connect to it with client.py. The client supports the following commands:

/quit                   Exit program
/connect <host> <port>  Connect to server
/disconnect             Disconnect from server
/who                    List users in room

/createid <name>        Create identity and associated keys
/idexch <name>          Exchange id keys

/genroomkey             Generate a secret key for the room
/reqroomkey             Request the secret key from the room
/sendroomkey <name>     Send secret key for the room

/msg <name> <msg>       Send private message

Todo

  • Enable validation of TLSv1 cert by client
  • User authentication
  • Disallow unicode usernames
  • Implement client in Go
  • Encrypt deadchat.cfg file

Implementation

  • deadchat is meant to run in a terminal (think IRC)
  • Client to server communication is encrypted using TLSv1
  • Authenticated encryption between clients is provided by [libsodium] (https://github.com/jedisct1/libsodium)
  • Public key cryptography is used for private messaging and room secret key exchange
  • Group chat is encrypted using secret key cryptography
  • Keys are stored in deadchat.cfg

Client dependencies

Server dependencies

  • go.crypto.nacl
go get code.google.com/p/go.crypto/nacl
go install code.google.com/p/go.crypto/nacl/secretbox
go install code.google.com/p/go.crypto/nacl/box

deadchat's People

Contributors

jeztek avatar

Watchers

James Cloos 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.