欢迎回到 GPG 系列,我们正在探索如何将 GPG 与其他应用程序一起使用来保护您的数据。本期将介绍密钥的创建、密钥撤销证书的创建以及将公钥发送到密钥服务器。 密钥管理的第二部分将包括导出、撤销、添加和删除密钥。
在 Fedora,您可以选择使用 海马 或命令行来创建密钥。 在本系列中,我们将同时介绍两者。
GUI 中的 GPG:海马
要启动 Seahorse,请切换到 活动 概览并搜索“海马”或“钥匙”。
活动 > 钥匙
打开 Seahorse(根据您的桌面环境也称为密码和密钥)。
然后选择文件 > 新建…
然后选择 PGP 密钥并继续。
默认选项。
使用您的姓名和电子邮件填写基本选项。 高级选项允许您选择加密类型、密钥强度和到期日期。 建议您使用 RSA 和 4096 位的密钥强度。 出于安全原因,也强烈建议选择到期日期。 算法和密钥长度的某些组合并不安全,因此除非您知道自己在做什么,否则请坚持此建议。
建议的到期日期介于两到五年之间。 GPG 使您能够在以后修改和延长密钥到期日期。 到期日期确保有助于确保您的密钥安全。 如果您有多个地址,请不要担心选择哪一个,因为您可以在创建密钥后添加额外的电子邮件地址。
命令行中的 GPG
在 Fedora,有两个使用 GPG 的命令:gpg 和 gpg2。 如果您在图形桌面上使用 GPG, 使用gpg2, 因为生成的密钥环和文件与 Evolution 和 Seahorse 等桌面应用程序集成。
要生成密钥,请使用 gpg2 –full-gen-key 选择所有密钥创建选项。
$ gpg2 --full-gen-key gpg (GnuPG) 2.1.9; Copyright (C) 2015 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection?
选择选项 1 以生成用于签名和加密的 RSA 密钥。
RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) 4096
然后将提示您选择密钥长度。 当前默认为 2048,但建议使用最大长度。 随着计算能力的提高,使用较短的密钥将变得不安全。 较长的密钥可能在较长时间内是安全的。 虽然您可以迁移到新密钥,但该过程有点乏味。
Requested keysize is 4096 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) 2 Key expires at Tue 26 Jan 2016 09:44:43 AM EST Is this correct? (y/N)
选择密钥到期时,请确保添加数周、数月或数年的值。 正如你可以从 example 上面,如果你不这样做,GPG默认为天。 按照 Seahorse 的建议,选择一个 两到五年到期.
GnuPG needs to construct a user ID to identify your key. Real name: charles profitt Email address: [email protected] Comment: You selected this USER-ID: "charles profitt <[email protected]>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
现在会提示您输入值,以便 GPG 可以构造用户 ID。 Enter 您的真实姓名和电子邮件地址。 创建密钥后,您可以添加额外的电子邮件地址。 输入这些值后,GPG 会提示您检查您的输入,并可选择更改值、接受它们或退出。
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key 5D50C86C marked as ultimately trusted gpg: directory '/home/cprofitt/.gnupg/openpgp-revocs.d' created public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2016-01-26 pub rsa4096/5D50C86C 2016-01-24 [expires: 2016-01-26] Key fingerprint = 647D B957 0E03 4247 8C30 6852 1462 A582 5D50 C86C uid [ultimate] charles profitt <[email protected]> sub rsa4096/8D8FF075 2016-01-24 [expires: 2016-01-26]
熵 对密钥长度同样重要。 熵通常意味着无序。 在密钥生成中,它意味着几乎不可能重新生成的无序、随机数据。 如果您的密钥没有以足够的熵生成。 它将更容易受到攻击。 当系统获得足够的熵时,它将使用您选择的选项生成您的密钥。
您的系统可能需要一些时间来生成熵。 要协助随机数生成器完成此过程,请打开其他程序或移动鼠标。 GPG 还会提示您输入密钥的密码。
当你想使用你的公钥或私钥时,系统会提示你输入密码,所以 确保你记住它! 这使得密码非常重要。 知道您密码的人可以假设您的身份或解密您的数据。 所以确保你 使用强密码. (在 Google 上搜索有关制作强密码的其他想法。)不要使用用于登录您的帐户或 root 帐户的相同密码,也不要使用您在任何其他系统上使用的密码。
将密钥发送到密钥服务器
现在您有了一个密钥对,您需要将公钥发送到密钥服务器,以便其他人可以找到并使用它。 其他人使用您的公钥来验证您签署的消息,或解密使用您的私钥发送的消息。 正如我们在本系列的第一部分所讨论的, 密钥服务器 在互联网上收集和宣传公钥,以使数据交换更容易。 它们可以帮助您尽可能广泛地共享公钥。
请记住,您的公钥只是加密消息或文件的非对称过程中使用的密钥对的一半。 用公钥加密的消息只能用私钥解密,反之亦然。 这个过程将在本系列的后面更详细地讨论。
海马
打开 Seahorse 并导航到您的 PGP 密钥。 然后选择远程 > 同步并发布密钥…
在您选择密钥服务器之前,同步按钮将灰显。 为此,请单击密钥服务器按钮。
两个默认服务器都是可以接受的。 除此之外 Fedora Project 还提供了一个密钥服务器。 要添加此密钥服务器,请单击添加按钮。 Enter 地址keys.fedoraproject.org。 然后在密钥列表下方的下拉菜单中选择一个服务器来发布您的公钥。 最后, close 对话框和同步按钮将被启用。
命令行
要将您的密钥发送到密钥服务器,您必须知道您的密钥标识符。 要查找您的密钥标识符,请使用以下命令:
$ gpg2 --list-keys /home/cprofitt/.gnupg/pubring.kbx --------------------------------- pub rsa4096/5D50C86C 2016-01-24 [expires: 2016-01-26] uid [ultimate] charles profitt <[email protected]> sub rsa4096/8D8FF075 2016-01-24 [expires: 2016-01-26]
您要发送的密钥是您的公钥。 这是第一行以 pub 开头的键。
$ gpg2 --keyserver keys.fedoraproject.org --send-key 5D50C86C gpg: sending key 5D50C86C to hkp server keys.fedoraproject.org
密钥现在被发送到选定的密钥服务器。 其他人可以使用您的公钥后,您就可以开始使用 GPG 来保持通信的真实性和安全性。
撤销证书
当您创建密钥时,GPG 还创建了一个吊销证书。 当您使用命令行时,这一点更加明显,但 Seahorse 也会创建吊销证书。 在这两种情况下,证书都位于 ~/home/.gnupg/openpgp-revocs.d/ 中。
撤销证书允许您告诉全世界您的密钥对不再有效。 如果您的私钥被盗、泄露或丢失,您将使用此证书。 如果您忘记了密码并且不能再使用您的密钥对,您还应该使用吊销证书。 您应该将吊销证书和私钥存储在尽可能安全的存储中。 您还应该存储您的撤销证书 在不同的位置 比私钥。
许多用户将他们的私钥和吊销证书放在两个闪存驱动器上,并将它们存储在保险箱或保险箱中。 如果您的吊销证书不安全,恶意行为者可能会吊销您的密钥对,并对您以及使用您的公钥的人造成重大破坏。