Modern Mail Exchange Protocol

August 13th, 2015 @ 16:32 Programming

Today I'd like to announce a new experimental protocol I've been designing called Modern Mail Exchange Protocol (MMXP). MMXP is a new messaging protocol designed to transfer electronic messages between users in a secure and distributed way. MMXP has the following primary objectives.

  • Distributed

Any user with a Fully Qualified Domain Name (FQDN) can establish a server, verify their identity, and communicate with any user within the network securly, regardless of if they themselves can directly communicate with the destination server directly.

  • Fault Tolerant/Censorship Resistant

Like RFC 5321 [1] Simple Mail Transfer Protocol, MMXP supports mail relaying, which allows messages to be transmitted through other nodes to achieve successful delivery in the instance of network route failure, or even censorship.

MMXP also enables peer-discover to facilitate finding new nodes, and better network paths for delivering messages.

  • Full Encrypted Communication

MMXP outlines fully encrypted communication between two parties such that the message, any associated metadata, and any relay information is fully encrypted using PGP over an TLS connection. During transmission, relay servers can only read information necessary to relay and deliver messages, and are not able to read the full message body or any associated metadata.

  • Full Authentication and Authorization

MMXP enables users to fully authenticate themselves and establish their identity, which prevents third-parties and malicous individuals from sending a message on behalf of another user.

  • Short Message Exchange (SMX) Broadcasts

MMXP includes support for a broadcast system which allows for messages to be publicly broadcasted to their networks.

  • Simplicity

One of the primary reasons end users don't use PGP in their emails is because of how complicated it is to both setup and work with. MMXP is designed to make secure communications frictionless to the end user.

The full protocol details are available on Github. Your thoughts and contributions are welcome.