GPG guide/Textual Draft

From LibrePlanet
< GPG guide
Revision as of 17:34, 23 May 2014 by Zakkai (talk | contribs)
Jump to: navigation, search

Infographic will go here

Global intro paragraph

The goal of this guide is to make it easy to set up email encryption on your computer. All you need is a computer with GNU/Linux or Windows and an Internet connection.

Once you've finished the guide, you'll be able to send emails that are coded to make sure that a surveillance agent or thief can't intercept your email and read it. You'll also be able to sign emails to show reliably that they are from you. You can use your existing email account for this without affecting it.

Section 1: Get the pieces

Before starting, you'll need any one of these desktop email programs installed on your computer: FossaMail (for Windows), Icedove (for Debian GNU/Linux), Thunderbird (for other GNU/Linux flavors, Apple OS X), or any other program based on one of these. If you are already using one of these, you can skip to Step 1.b.

An email program lets you read and write mail without using a Web browser, and provides special features that are hard to find in email systems you use in a Web browser. Using an email program doesn't mean that you have to make a new email account -- most people just connect an existing email account from a Web email service (like GMail) or their workplace to their email program. You can think of it as another way to access the same email account.

Step 1.a: Set your email program up with your email account (if it isn't already)

  • Open your email program and follow the wizard that sets it up with your email account.

Troubleshooting

  • My email program can't find my account or isn't downloading my mail.
    • Answer coming soon

Step 1.b: If you are using Windows, download gpg4Win

  • Download it from gpg4win.org, run the executable and follow the installation instructions. You don't need to run the program once it's installed.

Step 1.c: Install the Enigmail plugin for your email program

  • In your email program's menu, select Tools -> Add-ons. Make sure Extenions is selected on the left. Do you see Enigmail? if so, skip this step.
  • If not, search "Enigmail" with the search bar in the upper right. You can take it from here. Restart your email program when you're done.

Troubleshooting

  • I can't find the menu
    • In many new email programs, it's represented by an image of three stacked horizontal bars.



Section 2: Make your keys

Intro text

To use the GnuPG system, you'll need a public key and a private key (known together as a keypair). Each is a long string of randomly generated numbers that are unique to you. Your public and private keys are linked together by a special mathematical function.

Step 2.a: Make a keypair

  • In your email program's menu, select OpenPGP -> Setup Wizard. You don't need to read the text in the window that pops up unless you'd like to, but it's good to read the text on the later screens of the wizard.
  • On the second screen, titled "Signing," select "No, I want to create per-recipient rules for emails that need to be signed."
  • Use the default options until you reach the screen titled "Create Key"
  • On the screen titled "Create Key," pick a strong password! Your password should be at least 8 characters and include at least one lower case and upper case letter and at least one punctuation mark. Don't forget it, or all this work will be wasted!
  • The program will take a little while to finish the next step, the "Key Creation" screen. While you wait, do something else with your computer, like watching a movie or browsing the Web. The more you use the computer at this point, the faster the key creation will go.
  • When the OpenPGP Confirm screen pops up, select Generate Certificate and choose to save it in a safe place on your computer (we recommend making a folder called "Revocation Certificate" in your home folder and keeping it there. You'll learn more about the revocation certificate in Section 5. The setup wizard will ask you to move it onto an external device, but that isn't necessary at this moment.

After creating your key, the Enigmail set-up wizard automatically uploaded it to a keyserver, an online computer that makes everyone's keys available through the Internet.

Troubleshooting

  • Enigmail detected an existing key on my computer
    • Answer coming soon
  • I can't find the OpenPGP menu
    • In many new email programs, it's represented by an image of three stacked horizontal bars.


Section 3: Try it out!

Now you'll try a test correspondence with a computer program named Adele, which knows how to use encryption. You'd follow the same steps if communicating with a real person. Then you'll send your first signed email to a real person!

Step 3.a: Download Adele's public key from a keyserver

  • In your email program's menu, go to OpenPGP -> Key Management -> Keyserver -> Search for Keys.
  • In the "Search for keys" field, type adele-en@gnupp.de. That's Adele's email address.
  • Check the first result (Key ID starting with 9) and hit OK.

Step 3.b: Send a test encrypted email

  • Write a new email in your email program, addressed to adele-en@gnupp.de. Make the subject "Encryption test" or something similar and write something in the body.
  • Before sending the email, click the icon of the key in the bottom right of the composition window (it should turn yellow). This tells Enigmail to encrypt the email with the key you downloaded in the last step.
  • When Adele receives your email, she will use her private key to decrypt it, then fetch your public key from a keyserver and use it to encrypt a response to you.

Since you encrypted this email with Adele's public key, Adele's private key is required to decrypt it. Adele is the only one with her private key, so no one except her -- not even you -- can decrypt it.

  • It may take two or three minutes for Adele to respond. In the meantime, you might want to skip ahead and check out the Use it well section of this guide.
  • When you receive Adele's email and open it, Enigmail will automatically detect that it is encrypted with your public key, and then it will use your private key to decrypt it.

Notice the bar that Enigmail shows you with information about the status of Adele's key.

Step 3.c: Send a test signed email to a friend

  • Write a new email in your email program, addressed to a friend. If you want, tell them about this guide!
  • Before sending the email, click the icon of the pencil in the bottom right of the composition window (it should turn yellow). This tells Enigmail to sign the email with you private key.
  • After you click send, Enigmail will ask you for your password. It will do this any time it needs to use your public key.



Section 4: Learn the Web of Trust

Email encryption is a powerful technology, but it has a weakness; it requires a way to verify that a person's keypair is actually theirs. Otherwise, there would be no way to stop an attacker from making an email address with your friends name, creating a keypair to go with it and impersonating your friend. They would then be able to impersonate your friend by signing messages with the private key they'd created, and decrypt messages intended for your friend with the public key.

That's why the programmers that developed email encryption created keysigning and the Web of Trust. Keysigning allows a person to publicly state that they trust that a keypair belongs to a specific person.


Step 4.a: Sign a key

  • In your email program's menu, go to OpenPGP -> Key Management.
  • Right click on Adele's public key and select Sign Key from the context menu.
  • Select "I will not answer" and click OK
  • In your email program's menu, go to OpenPGP -> Key Management -> Keyserver -> Upload Public Keys and hit OK.


Testers, stop here. The rest isn't ready yet :)

Section 5: Use it well

Intro paragraph

Everyone uses this a little differently. Send signed emails in this context. Send encrypted emails in this context. Talk about the Web of Trust.

Step: Make it part of your online identity

  • Publish it to your email signature, social media profile, blog, Website, business card in these ways. Put it anywhere that you put your email address.
  • Tell your friends about it

Step: Participate in keysigning

  • Refer them to the instructions in the previous step

Step: Keep it up to date

  • Refresh your keys, especially after some kind of signing has happened that necessitates it
  • Keep track of expiration dates
  • How to exchange public keys



Section 6: Next steps

  • Attend or host a keysigning party (is there a good way to find them?)
  • An encrypted email group where people talk about encryption: <http://groups.yahoo.com/neo>/groups/PGPNET/info
  • Try other encryption technologies: OTR, encrypting your hard drive, Tor
  • Link to surveillance collection in directory, or prism-break with free software filter, if that has been set up
  • Donate to the FSF or GnuPG, Thunderbird or Enigmail!

Random Notes

  • Figure out if GnuPG comes preinstalled in all GNU/Linux distros
  • Do we want to check that anything in particular is up to date?
  • Sweet article: Does Encryption Still Work? https://securityinabox.org/en/node/3291
  • Oh MAN good idea - maybe we should have a little catchprase that goes with the GPG key, like “I’ll keep your secrets.”
  • If you are using plugins in your email client, things might look a little different.
  • The wizard claims to run automatically on the first install. Mention that the optimization will put your messages in plaintext, and that if you want to keep HTML as default you can hit Shift while you hit Write? Talk about the fact that any key pair generated using OpenPGP Setup Wizard is automatically based on a 2048-bit structure, and has a lifespan of 5 years. Both these characteristics cannot be changed after the key pair has been generated using this method. Revocation cert?
  • What if someone already has the email client configured and it makes the wizard more complicated, like in <https://securityinabox.org/en/thuderbird_encryption#4.2>?
  • Really think about ways that this will be about making the fact that you use GPG part of your online identity, and make this a vector for driving people to the guide. For example, have people put their GPG key up on their blogs and social media sites, with a link (perhaps with logo, graphic, embed code, something cool) to our guide. Is there a good standard way to list this on your FB? Twitter? We can get people to do this even if they are already using GPG.
  • Audience: People who are excited about technology and involved in movements like ours, but don't already know how to use GPG. They are computer literate, though, and don't need their hands held through super basic stuff, like clicking next in a Wizard.
  • Think about licensing
  • How do we visually do the troubleshooting? The different operating systems?
  • Name ideas
    • Safe email 101
    • Encryption 101
    • Encrypt your email
    • Safe email
  • Make it clear that there are two different ways that "signing" is used.
  • For signing keys, you could say "and so, if you go on a keyserver and you see that someone has a lot of signatures on their key, you can probably trust them more, because someone has verified their identity." This segues well into an optional description of the need for the Web of Trust, starting with explaining the threat of someone making fake keys to sign their other fake key.
  • Why you shouldn't leak your private key: because then someone could both read your mail AND impersonate you
  • Does Enigmail automatically refresh keys?
  • The default is to import keys without verifying the fingerprint, "locally sign key" is not intuitive at all and to actually verify the fingerprint you need to click yet another button
  • Explain key loss
  • Explain the need to refresh (is this necessary when using Enigmail?
  • Explain expiration and making new keys
  • 2048 bit key with 5 year expiration date
  • Have a glossary?
  • Mention that if you use Webmail, you won't be able to read yoru encrypted emails in it
  • Adele's key is 0x92AB3FF7 not 0x4D486CC8.
  • Explain encryption, then signing keys, then signing messages. Most people teach messages, then keys, but this order flows more naturally?
  • Rationale for technical recommendations that we make (like key size and which keyserver to use)
  • Links to more detailed descriptions of things on other pages (like how to use keyservers)
  • RSA versus DSA
  • Saving unencrypted drafts to servers, as per Micah Lee's email to liberationtech
  • Link to dedicated keyserver for people to use, run by us, so that we can track who is getting started through our campaign.
  • Other email client security settings, like in <https://securityinabox.org/en/thunderbird_security>
  • A section on verifying incoming email, like on <http://en.flossmanuals.net/thunderbird-workbook/receive-encrypted-mail/>. Hopefully this can just be worked in to the try it out section
  • Different ways of identifying keys.
  • Right click Adele's public key and click View Signatures from the context menu. You should see your name at the bottom of the list.
  • Credit the Adele Website if we end up using it: <http://www.g-n-u.de/>
  • Explain that you can send a signed email to anyone but you can only send an encrypted email to someone who has a public key.
  • GPG vulnerabilities from Paul Tag: http://debian-administration.org/users/dkg/weblog/108 and https://dkg.fifthhorseman.net/notes/inline-pgp-harmful/
  • **You should really read these or put it somewhere: <http://arstechnica.com/security/2013/06/encrypted-e-mail-how-much-annoyance-will-you-tolerate-to-keep-the-nsa-away/>, <https://medium.com/p/f561c5260bf3>, <https://guardianproject.info/howto/chatsecurely/>, and <https://guardianproject.info/howto/browsefreely/>**