Giter VIP home page Giter VIP logo

cmtp's Introduction

The Cipher Mail Project

Email is the de facto standard for internet communications, it is a requirement nearly any web resource available and it sucks. The Simple Mail Transfer Protocol (SMTP) is the fundamental mechanism by which email is passed on the internet today, but was designed in an era before the personal computer, before the disposable computer and critically before internet communications became important. The Cipher Mail Project is working toward a secure by default email implementation. This repository contains the replacement for SMTP; CMTP.

CMTP

The Cipher Mail Transport Protocol (CMTP) is a secure alternative to SMTP which aims to raise floor on internet communications. The goal of CMTP is not to push the envelope of what is possible, but rather to provide a new standard which SMTP systems and users can easily transition to. Currently CMTP is a research protocol and is at version: 0.01

Design Goals

  • Coexist with SMTP on port 25
  • Encrypt all mail by default
  • Transparent key exchange
  • Open, federated mail network
  • Recoverable client keys (by the client)

Protocol Design

The coexistence goal has lead CMTP to be an ASCII command driven protocol with commands which are nonintersecting with SMTP. These commands can be seen in detail in the CMTP docs. Encrypted mail by default with transparent key exchange has lead CMTP to mandate keypairs and to have a protocol command for key retrieval. The open federated network goal has lead to possible insecurity by accepting unknown keys, but has also lead to a greater role of the mail server in federating trust. Mail have keys and servers sign all communications so that future communications are known to be valid.

Current work and challenges

Spam

Encrypting all mail presents a problem for traditional spam prevention methods which rely on content analysis.

Mail delivery

An analog to IMAP is needed to complete the cipher mail ecosystem and is being drafted.

Reference code

Work is done in three parts:
Formal Documents
The CMTP reference server (cmtpd)
The CMTP reference client (Shorebird)

Build Instructions

Linux

Ensure you have the following dependencies installed

  • libconfuse
  • libsodium
  • ldns

In Fedora linux the packages are libconfuse-devel, libsodium-devel, and ldns-devel. Once the dependencies are installed simply issue

make

cmtp's People

Contributors

darakian avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  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.