Enigmail is a mailer plugin to encrypt/decrypt mails (using GnuPG).
Enigmail uses GnuPG (also called GPG), so make sure GPG is installed.
Then, make sure your mailer is supported by Enigmail. At the time I write this article, Outlook is not supported
The rest of this article applies to Enigmail with Thunderbird.
Download Enigmail. For Thunderbird, it's a (extension .xpi). Use a right-click to download it (if you click on it with Firefox, you'll install the plugin in Firefox which is quite useless !).
Enigmail is configured directly from within Thunderbird. There are two menus to check out:
You need a key pair to send/receive encrypted/signed emails.
Thunderbird → OpenPGP → Key Management → Generate → New Key Pair
For example:
There are several ways to do that:
From Thunderbird, write a new message. Click on the message's OpenPGP menu: “attach my public key”. That's all.
Now, if you insist on doing it the hard way :
Very easy:
Depending on your configuration, another window may be displayed asking you confirm/select your recipient's key. This also happens if Enigmail can't find the right key to use for your recipient. If the key isn't in your keyring, import it. Sometimes it's already there, but not for the right email: you can still use that key. A key is attached to an end-user , not to an email. Email is just a common way of naming a key.
Well, it's similar to sending an encrypted email, but instead of selecting the small little key, select the small pencil.
Now, guess what ? An advanced topic: how to send an encrypted and signed email ? Well check both pencil and key !
You may use a different key pair for each e-mail, or the same key pair for several emails. As you wish.
If you use a different key pair, you'll have to memorize several passphrases and store several key pairs. Beware that all your key pairs are treated independantly. You cannot decrypt a document for your key pair A with your key pair B. And when you decrypt with key pair A, obviously you must provide A's passphrase (not B !). This solution is usually more complicated, but it may be useful for example if you wish to completely separate your professional emails from your personal ones.
In other situations, it's interesting to attach several emails to the same key pair. For example, Pico with emails pico@crocodile.comThis email address is being protected from spam bots, you need Javascript enabled to view it and pico@crocodile.frThis email address is being protected from spam bots, you need Javascript enabled to view it wants to attach both emails to his key pair Pico. To do so, you have to
Before importing a key into your keyring, it's important to check the key really owns to the person you think it does. How far you want to go in your verifications is really up to you. They may be nearly implicit (that friend has told you he'd send you a key and you received it a moment later - you estimate the risk an attacker impersonates your friend is really unlikely) or much more thorough (calling the person, checking his credentials etc).
GPG takes into account the amount of trust you have in a given key. If you have made real checks, you can fully trust the key. If you have made little verifications but that's enough for you, you may also fully trust the key. On the contrary, if you received the key by an unknown channel you do not highly trust, you can tell GPG.
By default, in GPG, the only key you ultimately trust is yours (logical, huh ?). All others are untrusted. This is why you get a message telling you a given signature is good (it is valid) but untrusted. To get rid of that message, you've got to carry out necessary checks about that key, and then set its trust level to ultimate.
Once checks have been done, you set trust level as follows:
A key pair is made of a private key (private meaning “secret” - do not send this to anybody) and a public key (this one is not confidential). Both keys are related, so that when an operation is done with the private key, you need the public one to reverse the operation, and reciprocally if you use the public key, you need the private one to revert.
A keyring is a key… ring That's the location where you store all your public and private keys, including public keys of other persons.
GnuPG uses 2 different keyrings:
Encrypting a document is about its confidentiality.
Suppose I want to send a document to my husband, but I don't want Pico to be able to read it (I'm bored with security examples with Alice and Bob ). So I encrypt it in a way that only my husband can read it.
Now, just think two seconds how to do that… it's easy: I encrypt it with my husband's public key. Indeed, my husband keeps his private key safely, Pico does not have that key. So my husband will be able to decrypt the document but not Pico !
A common mistake is to encrypt a document with your own public key. Actually, this is really silly, because you're the only one to be able to decrypt the document. Your recipient does not have your private key !
Signing a document has a different use: it's about document's authenticity.
Now imagine I want to send a nice recipe to my husband. How can he be sure this recipe is authentic and hasn't been modified (with arsenic ?!) by Pico ? To guarantee this, I sign the recipe with my private key. If I am able to use my private key successfully, it means I really signed (i.e approved) the document. When my husband gets the document, he verifies my signature using my public key. If that works, he's guaranteed the document was signed by someone owning my private key… if I keep my private key secret, he's guaranteed this is really me.
You can skip this if you're out of time.
Now, actually, if you really have a close look to my last scenario, there's something nasty Pico could do. How does my husband retrieve my public key ? Can he really be sure it's mine ? Just imagine Pico sends him a fake email with his own public key instead, signs a bad recipe with his private key and sends the signed recipe (using another fake email) to my husband… My husband's going to verify a valid signature and he'll think it comes from me… though it's only really an authentic recipe of Pico's !
To counter this problem, people commonly use certificates. A certificate can basically certify anything, but here we're interested in certifying public keys. A certificate certifies that my public key (for e.g id=01298) really belongs to me (and not Pico). This is usually certified by a third party (hoping that third party asks for the adequate proof of my identity). I'm not getting into details here as to how certificates are generated and how they are verified, but it's just to let you know that they do exist and are really useful…