Translation in Progress

The PO file is where work is being done. Please help us if you can. Thanks!

#1 Get the pieces

本指南需要安装自由许可的软件;它是完全透明的,任何人都可以复制它,并生成自己的版本。这使得它比专有软件(比如 Windows)更难受到监控。为了你免受监控,我们推荐你换用像 GNU/Linux 这样的自由软件操作系统。你可以在 fsf.org 上了解更多关于自由软件的信息。

在开始之前,你需要安装 IceDove 电子邮件客户端。对于你的操作系统来说,IceDove 可能以其别名 Thunderbird 而为人所知。电子邮件程序是另一种访问邮箱账号的途径(你也可以像 Gmail 那样通过浏览器访问),但它提供了更多的功能。

如果你已经安装好了邮件程序,请跳至 Step 1.b

Step 1.a 设置邮箱账号

打开你的邮件程序,按照向导程序的提示逐步设置好你的邮箱账号。

疑难解答

向导程序没有启动
你可以自行启动它,但不同邮件程序的菜单选项不尽相同。启动它的按钮在程序的主菜单里,“新建”或者类似的,标题类似于“添加账号”(Add account)或者“新建/已存在的邮箱账号”(New/Existing email account)。
向导程序无法找到我的账号或是不下载我的邮件
在你网上搜索前,我们建议你询问其他和你使用相同邮箱系统的人,以找出正确的设置。

Step 1.b 下载 GPG4Win

GPG4Win 是一个包含了 GnuPG 的软件包。下载并安装它,选择默认选项无论提示什么。安装完成后关闭窗口。

Step 1.c 安装 ENIGMAIL 插件

在邮件程序的菜单栏里,选择“附加组件”(Add-ons,它可能在工具选项里)。确认选上了左侧的“扩展”(Extensions)。看到了 Enigmail 吗?如果是,请跳过此步。

如果没有,在右上方的搜索框里搜索“Enigmail”。你可以在这里获取到它。安装完成后重启邮件程序。

疑难解答

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

#2 生成密钥

要使用 GnuPG 体系,你将会用到一把公钥(public key)和一把私钥(private key),他们合称为密钥对(keypair)。每一把都是随机生成的一长串数字和字母的值,它是独一无二的。你的公钥和私钥由一种特殊的数学函数联系在一起。

你的公钥不太像现实中的钥匙,它公开储存在被称之为密钥服务器(keyserver)的在线目录上。人们可以下载使用它,借助 GnuPG,人们向你发送加密邮件。你可以把密钥服务器想象成一本电话簿;想要给你发送加密邮件的人能够找到你的公钥。

你的私钥更像是现实中的钥匙,你需要自行保管它(在你的计算机中)。你可以使用 GnuPG 和你的私钥来解密他人发给你的加密邮件。无论如何,你都不应该改向他人分享你的私钥。

除了加密和解密,你可以使用这些密钥对消息进行签名,并检查其他人签名的真实性。我们将在下一节里详细探讨它。

Step 2.a 生成密钥对

Enigmail 安装向导可能会自动运行。如果没有,在你的邮件程序你选择 Enigmail → Setup Wizard(安装向导)。如果你不愿意,你不必去阅读弹出窗口中的文字,但读一读总归是好的。点击下一步而不对默认选项作修改,但除了下列情况以外:

  • 在“加密”(Encryption)界面,选中“默认加密所有我的消息,因为隐私对我很重要”(Encrypt all of my messages by default, because privacy is critical to me)。
  • 在“签名”(Signing)界面,选中“默认不对我的消息签名”(Don't sign my messages by default)。
  • 在“密钥选择”(Key Selection)界面,选择“我想为数字签名和加密邮件创建新密钥对”(I want to create a new key pair for signing and encrypting my email)。
  • 在“生成密钥”(Create Key)界面。取一个强壮的密码吧!你可以自行取密码,也可以使用 Diceware 模式。自己取密码虽然快捷,但不安全。使用 Diceware 需要更长时间 and requires dice,但能生成攻击者难以辨识出的密码。要使用它,请阅读 Micah Lee 写的这篇文章的 Make a secure passphrase with Diceware 一节。

如果你喜欢自己取密码,想一个你记得起的至少十二字符长的东西,至少包含一个小写和大写字母,和一个数字或标点符号。永远不要使用你其他地方使用过的密码。不用使用任何可辨识的模式,诸如生日、电话号码、宠物名字、歌词或书中的引言。

在“生成密钥”(Key Creation)界面,程序需要花费小会儿完成下一步。等待时,你可以在计算机上做一些其他事情,比如看电影或浏览网页。此时你计算机使用的越频繁,密钥生成的速度越快。

当 "Key Generation Completed" (密钥已生成)窗口弹出,选中 Generate Certificate (生成证书)并选择把它储存在计算机上安全的地方(我们推荐新建一个名为 Revocation Certificate [吊销证书]的文件夹在你的家目录下,并把它保存在那里)。这是本指南重要的一步,你将会在 Section 5 了解到更多信息。

疑难解答

I can't find the Enigmail menu.
In many new email programs, the main menu is represented by an image of three stacked horizontal bars. Enigmail may be inside a section called Tools.
More resources
If you're having trouble with our instructions or just want to learn more, check out Enigmail's wiki instructions for key generation.
My email looks weird
Enigmail doesn't tend to play nice with HTML, which is used to format emails, so it may disable your HTML formatting automatically. To send an HTML-formatted email without encryption or a signature, hold down the Shift key when you select compose. You can then write an email as if Enigmail wasn't there.

Advanced

Command line key generation
If you prefer using the command line for a higher degree of control, you can follow the documentation from The GNU Privacy Handbook. Make sure you stick with "RSA and RSA" (the default), because it's newer and more secure than the algorithms the documentation recommends. Also make sure your key is at least 2048 bits, or 4096 if you want to be extra secure.
Advanced key pairs
When GnuPG creates a new keypair, it compartmentalizes the encryption function from the signing function through subkeys. If you use subkeys carefully, you can keep your GnuPG identity much more secure and recover from a compromised key much more quickly. Alex Cabal and the Debian wiki provide good guides for setting up a secure subkey configuration.

Step 2.b Upload your public key to a keyserver

In your email program's menu, select Enigmail → Key Management.

Right click on your key and select Upload Public Keys to Keyserver. Use the default keyserver in the popup.

Now someone who wants to send you an encrypted message can download your public key from the Internet. There are multiple keyservers that you can select from the menu when you upload, but they are all copies of each other, so it doesn't matter which one you use. However, it sometimes takes a few hours for them to match each other when a new key is uploaded.

疑难解答

The progress bar never finishes
Close the upload popup, make sure you are connected to the Internet, and try again. If that doesn't work, try again, selecting a different keyserver.
My key doesn't appear in the list
Try checking "Display All Keys by Default."
More documentation
If you're having trouble with our instructions or just want to learn more, check out Enigmail's documentation.

Advanced

Uploading a key from the command line
You can also upload your keys to a keyserver through the command line. The sks Web site maintains a list of highly interconnected keyservers. You can also directly export your key as a file on your computer.

GnuPG, OpenPGP, what?

In general, the terms GnuPG, GPG, GNU Privacy Guard, OpenPGP and PGP are used interchangeably. Technically, OpenPGP (Pretty Good Privacy) is the encryption standard, and GNU Privacy Guard (often shortened to GPG or GnuPG) is the program that implements the standard. Enigmail is a plug-in program for your email program that provides an interface for GnuPG.

#3 Try it out!

Now you'll try a test correspondence with a computer program named Edward, who knows how to use encryption. Except where noted, these are the same steps you'd follow when corresponding with a real, live person.

Step 3.a Send Edward your public key

This is a special step that you won't have to do when corresponding with real people. In your email program's menu, go to Enigmail → Key Management. You should see your key in the list that pops up. Right click on your key and select Send Public Keys by Email. This will create a new draft message, as if you had just hit the Write button.

Address the message to edward-en@fsf.org. Put at least one word (whatever you want) in the subject and body of the email. Don't send yet.

The lock icon in the top left should be yellow, meaning encryption is turned on. We want this first special message to be unencrypted, so click the icon once to turn it off. The lock should become grey, with a blue dot on it (to alert you that the setting has been changed from the default). Once encryption is off, hit Send.

It may take two or three minutes for Edward to respond. In the meantime, you might want to skip ahead and check out the Use it Well section of this guide. Once he's responded, head to the next step. From here on, you'll be doing just the same thing as when corresponding with a real person.

When you open Edward's reply, GnuPG may prompt you for your password before using your private key to decrypt it.

Step 3.b Send a test encrypted email

Write a new email in your email program, addressed to edward-en@fsf.org. Make the subject "Encryption test" or something similar and write something in the body.

The lock icon in the top left of the window should be yellow, meaning encryption is on. This will be your default from now on.

Next to the lock, you'll notice an icon of a pencil. We'll get to this in a moment.

Click Send. Enigmail will pop up a window that says "Recipients not valid, not trusted or not found."

To encrypt an email to Edward, you need his public key, so now you'll have Enigmail download it from a keyserver. Click Download Missing Keys and use the default in the pop-up that asks you to choose a keyserver. Once it finds keys, check the first one (Key ID starting with C), then select ok. Select ok in the next pop-up.

Now you are back at the "Recipients not valid, not trusted or not found" screen. Check the box in front of Edward's key and click Send.

Since you encrypted this email with Edward's public key, Edward's private key is required to decrypt it. Edward is the only one with his private key, so no one except him can decrypt it.

疑难解答

Enigmail can't find Edward's key
Close the pop-ups that have appeared since you clicked Send. Make sure you are connected to the Internet and try again. If that doesn't work, repeat the process, choosing a different keyserver when it asks you to pick one.
Unscrambled messages in the Sent folder
Even though you can't decrypt messages encrypted to someone else's key, your email program will automatically save a copy encrypted to your public key, which you'll be able to view from the Sent folder like a normal email. This is normal, and it doesn't mean that your email was not sent encrypted.
More resources
If you're still having trouble with our instructions or just want to learn more, check out Enigmail's wiki.

Advanced

Encrypt messages from the command line
You can also encrypt and decrypt messages and files from the command line, if that's your preference. The option --armor makes the encrypted output appear in the regular character set.

Important: Security tips

Even if you encrypt your email, the subject line is not encrypted, so don't put private information there. The sending and receiving addresses aren't encrypted either, so a surveillance system can still figure out who you're communicating with. Also, surveillance agents will know that you're using GnuPG, even if they can't figure out what you're saying. When you send attachments, Enigmail will give you the choice to encrypt them or not, independent of the actual email.

Step 3.c Receive a response

When Edward receives your email, he will use his private key to decrypt it, then use your public key (which you sent him in Step 3.A) to encrypt his reply to you.

It may take two or three minutes for Edward 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 Edward'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 above the message, with information about the status of Edward's key.

Step 3.d Send a test signed email

GnuPG includes a way for you to sign messages and files, verifying that they came from you and that they weren't tampered with along the way. These signatures are stronger than their pen-and-paper cousins -- they're impossible to forge, because they're impossible to create without your private key (another reason to keep your private key safe).

You can sign messages to anyone, so it's a great way to make people aware that you use GnuPG and that they can communicate with you securely. If they don't have GnuPG, they will be able to read your message and see your signature. If they do have GnuPG, they'll also be able to verify that your signature is authentic.

To sign an email to Edward, compose any message to him and click the pencil icon next to the lock icon so that it turns gold. If you sign a message, GnuPG may ask you for your password before it sends the message, because it needs to unlock your private key for signing.

With the lock and pencil icons, you can choose whether each message will be encrypted, signed, both, or neither.

Step 3.e Receive a response

When Edward receives your email, he will use your public key (which you sent him in Step 3.A) to verify that your signature is authentic and the message you sent has not been tampered with.

It may take two or three minutes for Edward to respond. In the meantime, you might want to skip ahead and check out the Use it Well section of this guide.

Edward's reply will arrive encrypted, because he prefers to use encryption whenever possible. If everything goes according to plan, it should say "Your signature was verified." If your test signed email was also encrypted, he will mention that first.

#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 public key is actually theirs. Otherwise, there would be no way to stop an attacker from making an email address with your friend's name, creating keys to go with it and impersonating your friend. That's why the free software programmers that developed email encryption created keysigning and the Web of Trust.

When you sign someone's key, you are publicly saying that you've verified that it belongs to them and not someone else.

Signing keys and signing messages use the same type of mathematical operation, but they carry very different implications. It's a good practice to generally sign your email, but if you casually sign people's keys, you may accidently end up vouching for the identity of an imposter.

People who use your public key can see who has signed it. Once you've used GnuPG for a long time, your key may have hundreds of signatures. You can consider a key to be more trustworthy if it has many signatures from people that you trust. The Web of Trust is a constellation of GnuPG users, connected to each other by chains of trust expressed through signatures.

Step 4.a Sign a key

In your email program's menu, go to Enigmail → Key Management.

Right click on Edward's public key and select Sign Key from the context menu.

In the window that pops up, select "I will not answer" and click ok.

Now you should be back at the Key Management menu. Select Keyserver → Upload Public Keys and hit ok.

You've just effectively said "I trust that Edward's public key actually belongs to Edward." This doesn't mean much because Edward isn't a real person, but it's good practice.

Identifying keys: Fingerprints and IDs

People's public keys are usually identified by their key fingerprint, which is a string of digits like F357AA1A5B1FA42CFD9FE52A9FF2194CC09A61E8 (for Edward's key). You can see the fingerprint for your public key, and other public keys saved on your computer, by going to Enigmail → Key Management in your email program's menu, then right clicking on the key and choosing Key Properties. It's good practice to share your fingerprint wherever you share your email address, so that people can double-check that they have the correct public key when they download yours from a keyserver.

You may also see public keys referred to by their key ID, which is simply the last eight digits of the fingerprint, like C09A61E8 for Edward. The key ID is visible directly from the Key Management window. This key ID is like a person's first name (it is a useful shorthand but may not be unique to a given key), whereas the fingerprint actually identifies the key uniquely without the possibility of confusion. If you only have the key ID, you can still look up the key (as well as its fingerprint), like you did in Step 3, but if multiple options appear, you'll need the fingerprint of the person to whom you are trying to communicate to verify which one to use.

Important: What to consider when signing keys

Before signing a person's key, you need to be confident that it actually belongs to them, and that they are who they say they are. Ideally, this confidence comes from having interactions and conversations with them over time, and witnessing interactions between them and others. Whenever signing a key, ask to see the full public key fingerprint, and not just the shorter key ID. If you feel it's important to sign the key of someone you've just met, also ask them to show you their government identification, and make sure the name on the ID matches the name on the public key. In Enigmail, answer honestly in the window that pops up and asks "How carefully have you verified that the key you are about to sign actually belongs to the person(s) named above?"

Advanced

Master the Web of Trust
Unfortunately, trust does not spread between users the way many people think. One of best ways to strengthen the GnuPG community is to deeply understand the Web of Trust and to carefully sign as many people's keys as circumstances permit.
Set ownertrust
If you trust someone enough to validate other people's keys, you can assign them an ownertrust level through Enigmails's key management window. Right click on the other person's key, go to the "Select Owner Trust" menu option, select the trustlevel and click OK. Only do this once you feel you have a deep understanding of the Web of Trust.

#5 Use it well

Everyone uses GnuPG a little differently, but it's important to follow some basic practices to keep your email secure. Not following them, you risk the privacy of the people you communicate with, as well as your own, and damage the Web of Trust.

When should I encrypt? When should I sign?

The more you can encrypt your messages, the better. If you only encrypt emails occasionally, each encrypted message could raise a red flag for surveillance systems. If all or most of your email is encrypted, people doing surveillance won't know where to start. That's not to say that only encrypting some of your email isn't helpful -- it's a great start and it makes bulk surveillance more difficult.

Unless you don't want to reveal your own identity (which requires other protective measures), there's no reason not to sign every message, whether or not you are encrypting. In addition to allowing those with GnuPG to verify that the message came from you, signing is a non-intrusive way to remind everyone that you use GnuPG and show support for secure communication. If you often send signed messages to people that aren't familiar with GnuPG, it's nice to also include a link to this guide in your standard email signature (the text kind, not the cryptographic kind).

Be wary of invalid keys

GnuPG makes email safer, but it's still important to watch out for invalid keys, which might have fallen into the wrong hands. Email encrypted with invalid keys might be readable by surveillance programs.

In your email program, go back to the first encrypted email that Edward sent you. Because Edward encrypted it with your public key, it will have a message from Enigmail at the top, which most likely says "Enigmail: Part of this message encrypted."

When using GnuPG, make a habit of glancing at that bar. The program will warn you there if you get an email encrypted with a key that can't be trusted.

Copy your revocation certificate to somewhere safe

Remember when you created your keys and saved the revocation certificate that GnuPG made? It's time to copy that certificate onto the safest digital storage that you have -- the ideal thing is a flash drive, disk, or hard drive stored in a safe place in your home, not on a device you carry with you regularly.

If your private key ever gets lost or stolen, you'll need this certificate file to let people know that you are no longer using that keypair.

Important: act swiftly if someone gets your private key

If you lose your private key or someone else gets ahold of it (say, by stealing or cracking your computer), it's important to revoke it immediately before someone else uses it to read your encrypted email or forge your signature. This guide doesn't cover how to revoke a key, but you can follow these instructions. After you're done revoking, make a new key and send an email to everyone with whom you usually use your key to make sure they know, including a copy of your new key.

Webmail and GnuPG

When you use a web browser to access your email, you're using webmail, an email program stored on a distant website. Unlike webmail, your desktop email program runs on your own computer. Although webmail can't decrypt encrypted email, it will still display it in its encrypted form. If you primarily use webmail, you'll know to open your email client when you receive a scrambled email.