Encryption method: MOST

Revision as of 20:04, 28 May 2013 by Wijnen (Talk | Contributions) (Finished all parts; probably needs change.)

Revision as of 20:04, 28 May 2013 by Wijnen (Talk | Contributions) (Finished all parts; probably needs change.)

MOST Encryption method

This page describes how, when and why encrypted communication is used within the MOST group. Feel free to adopt these procedures for other projects. When editing this page, please only claim a different workflow if this has been adopted by the MOST group, or clearly mark it as a proposal.

Why do we want to use encryption?

We're developing appropiate technology, which means that our results will be as accessible as possible. We publish our hard- and software as open source, free for anybody to use. Still, we want to be able to use private means of communication in some cases. This deserves an explanation.

One reason is that in science, publication in journals is important. If we would make our results available for download in advance, we run the risk that other people will claim them and get a paper from our work. We do not want this, so our results must be kept secret until publication.

Another reason is that we may want to discuss matters which really are private. It may be about family or health issues, for example. Sending e-mails with such information without encryption is like sending them on a postcard, and displaying it in the postoffice before it gets delivered. With encryption, the only thing that is displayed is the sender and receiver; it is like putting the message in a sealed envelope.

When do we use encryption?

One problem with communication is that many threads are being mixed into each other. While talking about one subject, it's natural to add a comment about another. Therefore, to prevent accidentally disclosing information that should be kept private, all e-mail communication must be encrypted.

Additionally, for sharing files which are too large to attach to an e-mail, or which we want to keep in a central place, we use a private revision control system which can only be reached through encrypted connections.

How does encryption work? A very short introduction

The technique we use is called public-key-encryption. The technique can be used for encrypting and signing (explained in a moment). With this system, every user needs to generate a so-called key-pair, consisting of a public key and a private key. The public key is published to all other people. The private key is kept strictly private. The encryption then uses mathematical algorithms on those keys and messages.

Encryption

Encrypting a message is done using the message and a public key. The result of the encryption is a block of data which is unreadable. The original message can be extracted from this data by using the private key which corresponds to the public key that was used. This means that anybody can create the encrypted message (because everybody has the public key), but only the person owning the private key can decrypt and read it. This is what encryption wants to achieve.

Signatures

Signing a message is done using a message any your private key. The result is an extra block of data, which can be shown in combination with the message and the corresponding public key, to be created with that private key. So this signature is cryptographic proof that can be checked by anyone, that the message was signed by the person with access to the private key. This is what we want a signature to mean.

So summarizing: a private key can be used to decrypt and sign messages, a public key can be used to encrypt a message and verify a signature.

How do we use encryption? A step by step guide to set it up

There are many ways to set up encryption. It's fine if you choose to use a different method. This is a procedure which works as simple as possible on Michigan Tech's campus network. If you have improvements which make things easier (without making them less secure), please let us know. Below is a step by step guide for computers which you maintain (as opposed to the MTU admins).

Setting it up on your MTU account

  1. Set up your e-mailaccount in Thunderbird. This is as easy as clicking the "use existing account" button, then entering your name, e-mail and (ISO) password, and tell Thunderbird to sort it out.
  2. Create your key-pair with Kleopatra. Choose the New certificate option from the file menu, then the option to create a PGP key pair. Fill out the fields (comment may be empty) and let it create the key. Choose a good passphrase; you should expect that some people will get access to your USB stick at some point; the passphrase is the only thing that protects your communication at that point. Note that making it a real phrase of several words is very secure and doesn't stop you from remembering it; adding some special characters is not secure and hard to remember. Do not use a password you use for anything else, in particular DO NOT USE YOUR ISO-PASSWORD!
  3. Tell Kleopatra to upload your public key to a key server
  4. In Thunderbird, change your account settings to not compose HTML messages (as that is known to cause problems). Then enable OpenPGP. Select the option to automatically sign encrypted messages. If you want, you can also select auto-sign non-encrypted messages and auto-encrypt.
  5. Test if it works. Send a message to yourself and make sure you have the two icons in the bottom right corner of the compose window (the pencil and the key) are lit up.
  6. When receiving the message, it should show a green bar on top, saying that it has found a good signature from yourself.
  7. To send encrypted e-mail to someone whose public key is not on your USB-stick yet, proceed as usual. It will give you a window asking you what to do; tell it to download the missing keys. If the key is not found, you cannot send encrypted e-mail to this address. In that case, choose to not send the e-mail, or send it unencrypted.

Setting it up on your own computer

  1. Install Mozilla Thunderbird, the Enigmail plugin and gnupg (Windows/Mac) on your machine. On GNU/Linux, install with your package manager instead of using the previous links. On Debian, note that Thunderbird is called Icedove.
  2. Run seahorse or Kleopatra, and close it again. This way your gnupg folder will be created so you can find it for the next step.
  3. Insert the USB stick with your key. Copy the gnupg folder on it to your local keystore. Where this is depends on your operating system:
    • On GNU/Linux, it is located in your home directory and named .gnupg" (note the period at the start). If a directory with that name already exists, you should remove it. But take care; it may contain keys you don't want to lose. If you're not sure, rename it instead of removing.
    • On Windows, it is located under your user's Application Data folder and named gnupg.
    • On a Mac, it's probably the same as for GNU/Linux, but I have not checked. Please edit this if you have.
  4. Set up your e-mailaccount in Thunderbird. This works the same as on MTU's computers. Also follow the other steps for setting up and testing Thunderbird from the above list.