|Description||A crypto agnostic, secure, modern, relay chat protocol|
|Persons working on||Amir|
|Tags||DarkChannel, GPG, crypto, communication, chat, privacy, protocol|
|Located at assembly||UAVP-NG|
- Project Home: https://darkchannel.ch
- Specification: https://darkchannel.ch/specification
- Implementation: https://darkchannel.ch/implementation
- Software License: GPLv3
- Contact: amir at darkchannel.ch
- IRC Channel: #darkchannel on FreeNode
DarkChannel is a open and free, crypto agnostic, secure, modern relay chat protocol.
It's 2015 - 2 years after Snowden - and many peoples still use old, insecure chat protocols from the 1990's. This has many reasons which may be debated. One of those reasons is that modern chat tools tend to be clumsy and one-to-one Messenger type of tools, mostly usable on mobile devices. Some of them provide group communication but - let's put it this way - most of those suffer from other problems, which we don't want to elaborate on.
DarkChannel tries to specify a modern, secure and trustworthy IRC-style protocol based on known secure building blocks without reinventing the wheel or trying to implement a new cryptographic system.
The DarkChannel protocol specification does not depend on a specific cryptographic system. Current reference implementations are using GnuPG as the underlaying cryptographic system, but any cryptographic system providing the needed properties could be used instead - at least that's the theory. ;)
- What is different with DarkChannel?
DarkChannel builds on proven crypto systems. Our prototype uses GnuPG, a crypto system known to be secure when used correctly. DarkChannel tries to hide crypto complexity from the users by handling the keys for them. Furthermore it uses the crypto system to guarantee the minimal-need to know to all participating parties for the chat system to work. This essentially means that a Channel Server providing the group management functions for the channels of the chat systems does not know the content of individual group communications on single channels. It even extends this to allow clients to send their messages directly to the participating peers skipping the Channel Server completely. This only works when peers can reach each other directly, otherwise they will fall back on relaying via the server. Another feature of DarkChannel is that it will be able to use different keys for channel communication participation and nick name proofs. This will allow DarkChannel to let participating peers verify each others authenticy without giving away that identity to any other involved parties like the Channel Server or users on other channels.
- What paradigms do you apply?
First of all, computing is cheap nowadays. Don't reinvent the wheel (neither for crypto nor for the protocol). Rely on known secure building blocks. Be the glue between known systems. Design everything under a "need to know" principle. KISS - Keep it simple. Trust can only exist when the user can see what's happening. Less is more. We have the building blocks we need.
- Does it work?
We have a first prototype specification of a DarkChannel Relay Chat Protocol. A first prototype implementation of the DarkChannel protocol exists. The prototype implements a working Channel Server and a Curses based Chat Client containing support for a DarkChannel IRC Core providing channel server access to a legacy IRC clients. The IRC Core can be run locally to be able to use a legacy IRC client while still having the benefits and security of the DarkChannel protocol