第 9 章Seahorse:对数据进行签名和加密

目录

9.1. 签名和加密
9.2. 生成新的密钥对
9.3. 修改密钥属性
9.4. 导入密钥
9.5. 导出密钥
9.6. 对密钥签名
9.7. 加密自选选项

GNOME 密码和加密钥程序是系统上加密基础结构的重要组件。在此程序的帮助下,您可以创建和管理 PGP 和 SSH 密钥、导入和导出 PGP 和 SSH 密钥、与其他人共享密钥、备份密钥和密钥环、缓存通行密码,以及加密和解密剪贴板。通过依次选择计算机+更多应用程序+工具+密码和加密密钥启动此程序。

图 9.1. 密码和加密钥主窗口

密码和加密钥主窗口

9.1. 签名和加密

签名是指将电子签名附加到电子邮件消息甚至是软件中,以证明其来源。为了避免其他人冒名撰写邮件并为了保护您和收件人,您应该对邮件进行签名。签名可帮助您轻松检查所收到邮件的寄件人以及区分可靠邮件和恶意邮件。

软件开发人员对他们的软件签名,这样您就可以检查其完整性。即使是从非官方服务器获得的软件,也可以使用签名来校验包。

您可能还拥有要防止其他方访问的敏感信息。加密帮助您转换数据,使其他人无法阅读。这对公司尤其重要,因为这样他们可以保护内部信息以及员工的隐私。

9.2. 生成新的密钥对

要与其他用户交换加密的邮件,必须首先生成自己的密钥对。密钥对的一部分 - 公共密钥,将分发给您的通讯伙伴,他们便可以使用它来加密发送的文件或电子邮件消息。密钥对的另一部分私用密钥用于将加密的内容解密。

[Important]

公共密钥是公开的,应分发给所有的通讯伙伴。但是,只有您自己才能使用私用密钥。不用将私用密钥访问权授予其他用户。

9.2.1. 创建 OpenPGP 密钥

OpenPGP 是使用基于 PGP 的公共密钥加密法加密电子邮件的非专有协议。它定义了用于交换公共密钥的加密邮件、签名、公共密钥和证书的标准格式。

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 依次单击文件+新建+PGP 密钥

  3. 如果需要,指定您的全名、电子邮件地址和注释。

  4. 单击高级密钥选项为密钥指定以下高级选项。

    加密类型

    指定用于生成密钥的加密算法。推荐选择 DSA ElGamal,因为它使您能够根据需要加密、解密、签名和校验。DSA(仅签名)RSA(仅签名)都只允许签名。

    密钥强度

    指定密钥的长度(以位为单位)。密钥越长就越安全(如果使用高强度的通行密码),但请记住,对较长的密钥执行任何操作都比对较短的密钥需要更多时间。可接受的值在 1024 到 4096 位之间。推荐至少 2048 位。

    失效日期

    指定停止将密钥用于执行加密或签名操作的日期。超过此时间后,必须更改失效日期或生成新的密钥或子密钥。用旧的密钥(在其失效前)对新的密钥签名可保留信任状态。

  5. 单击创建创建新的密钥对。

    此时会打开新 PGP 密钥的通行密码对话框。

  6. 指定新密钥的通行密码两次,然后单击确定

    在指定通行密码时,请使用与创建高强度密码相同的标准。密码与通行密码的主要区别在于,通行密码中的空格算有效字符。

9.2.2. 创建安全外壳密钥

安全外壳 (SSH) 是一种登录到远程计算机以在其上执行命令的方法。SSH 密钥用于基于密钥的身份验证系统,此系统代替了默认的密码身份验证系统。使用基于密钥的身份验证不需要手动输入密码进行身份验证。

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 依次单击文件+新建+确保外壳密钥安全

  3. 选择安全外壳密钥,然后单击继续

  4. 指定密钥使用目的的描述。

    可以使用电子邮件地址或任何其他提醒。

  5. 作为可选项,单击高级密钥选项为密钥指定以下高级选项。

    加密类型.  指定用于生成密钥的加密算法。选择 RSA 使用 Rivest-ShamirAdleman (RSA) 算法创建 SSH 密钥。这是优先且更安全的选择。选择 DSA 使用 Digital Signature Algorithm (DSA) 创建 SSH 密钥。

    密钥强度.  指定密钥的长度(以位为单位)。密钥越长就越安全(如果使用高强度的通行密码),但请记住,对较长的密钥执行任何操作都比对较短的密钥需要更多时间。可接受的值在 1024 到 4096 位之间。推荐至少 2048 位。

  6. 单击仅创建密钥创建新密钥,或单击创建并设置,以创建密钥并设置要对其进行身份验证的其他计算机。

  7. 为新密钥指定通行密码,单击确定,然后重复以上步骤。

    在指定通行密码时,请使用与创建高强度密码相同的标准。密码与通行密码的主要区别在于,通行密码中的空格算有效字符。

9.3. 修改密钥属性

可以修改现有 OpenPGP 或 SSH 密钥的属性。

9.3.1. 编辑 OpenPGP 密钥属性

本部分中的描述适用于全部 OpenPGP 密钥。

  1. 依次单击计算机+更多应用程序+工具+密码和加密密钥,然后切换到我的个人密钥选项卡。

  2. 双击要查看或编辑的 PGP 密钥。(或选择密钥,然后单击工具栏中的属性)。

  3. 使用拥有者选项卡上的选项可为密钥添加照片或更改与密钥关联的通行密码。

    照片 ID 允许密钥拥有者在密钥中嵌入一张或多张他们的图片。可以像常规用户 ID 一样对这些身份签名。照片 ID 必须是 JPEG 格式。推荐大小为 120×150 像素。

    如果选择的图像不满足要求的文件类型或大小,但它是 GDK 库支持的图像格式,则“密码和加密钥”可以立即调整其大小并进行转换。

  4. 单击姓名和签名选项卡为密钥添加用户 ID。

    有关更多信息,请参见第 9.3.1.1 节 “添加用户 ID”

  5. 单击细节选项卡,其中包含以下属性:

    密钥 ID:  密钥 ID 近似于指纹,但密钥 ID 仅包含指纹的最后八个字符。通常仅用密钥 ID 就可以识别密钥,但有时候两个密钥可能具有同一个密钥 ID。

    Type:.  指定用于生成密钥的加密算法。DSA 密钥仅可用于签名。ElGamal 密钥用于加密。

    强度:.  指定密钥的长度(以位为单位)。密钥越长就越安全。但是,长密钥也无法弥补强度弱的通行密码。

    指纹:.  精确标识密钥的唯一字符串。

    创建时间:  创建密钥的日期。

    失效日期:.  密钥不能再使用的日期(密钥失效后就不能再用于执行密钥操作)。将密钥的失效日期更改为将来的某个日期可重新启用此密钥。一个常用的好做法是:拥有一个永不失效的主密钥以及多个会失效且由主密钥签名的子密钥。

    覆盖拥有者信任:.  在这里可以设置密钥拥有者的信任级别。信任表示您对某人正确扩展信任之网的能力的确信程度。当您遇到一个您没有签名过的密钥时,此密钥的有效性将取决于密钥拥有者已收集的签名以及您对那些签名的人的信任程度。

    导出完整密钥:.  将密钥导出到文件。

    子密钥:.  有关更多信息,请参见第 9.3.1.2 节 “编辑 OpenPGP 子密钥属性”

  6. 单击关闭

9.3.1.1. 添加用户 ID

用户 ID 允许将多个身份和电子邮件地址用于同一个密钥。添加用户 ID 是很有用的,例如,如果想要拥有一个用于工作的身份以及一个与朋友联系的身份。请执行如下操作以添加用户 ID:

Name (comment) <e-mail address>
  1. 依次单击计算机+更多应用程序+工具+密码和加密密钥,然后切换到我的个人密钥选项卡。

  2. 双击要查看或编辑的 PGP 密钥(或选择密钥,然后单击工具栏中的属性)。

  3. 单击姓名和签名选项卡,然后单击添加姓名

  4. 姓名字段中指定姓名。

    在此字段中必须输入至少五个字符。

  5. 电子邮件地址字段中指定电子邮件地址。

    多数人将通过您的电子邮件地址在密钥服务器或其他密钥提供程序上找到您的密钥。请确定地址是正确的,再继续。

  6. 密钥注释字段中指定附加信息,它将以您的新 ID 的姓名显示。

    在密钥服务器上可以搜索此信息。

  7. 单击关闭

9.3.1.2. 编辑 OpenPGP 子密钥属性

每个 OpenPGP 密钥都有一个仅用于签名的主密钥。子密钥用于加密和签名。这样,如果子密钥被盗用,则不需要撤销主密钥。

  1. 依次单击计算机+更多应用程序+工具+密码和加密密钥,然后切换到我的个人密钥选项卡。

  2. 双击要编辑的 PGP 密钥(或选择密钥,然后单击工具栏中的属性)。

  3. 单击细节选项卡,然后单击子密钥

  4. 使用对话框左侧的按钮添加、删除、撤销子密钥或使其失效。

    每个子密钥都具有以下信息:

    ID:  子密钥的标识符。

    Type:.  指定用于生成子密钥的加密算法。DSA 密钥仅可以签名,ElGamal 密钥用于加密,而 RSA 密钥用于签名或加密。

    创建时间:  指定创建密钥的日期。

    失效日期:.  指定密钥不能再使用的日期。

    状态:.  指定密钥的状态。

    强度:.  指定密钥的长度(以位为单位)。密钥越长就越安全。但是,长密钥也无法弥补强度弱的通行密码。

  5. 单击关闭

9.3.2. 编辑安全外壳密钥属性

本部分中的描述适用于全部 SSH 密钥。

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 双击要查看或编辑的安全外壳密钥(或选择密钥,然后单击工具栏中的属性)。

  3. 使用密钥选项卡上的选项更改密钥的名称或与密钥关联的通行密码。

  4. 单击细节选项卡,其中包含以下属性:

    算法:.  指定用于生成密钥的加密算法。

    强度:.  指示密钥的长度(以位为单位)。密钥越长就越安全。但是,长密钥也无法弥补强度弱的通行密码。

    位置:.  储存私用密钥的位置。

    指纹:.  精确标识密钥的唯一字符串。

    导出完整密钥:.  将密钥导出到文件。

  5. 单击关闭

9.4. 导入密钥

导入密钥:

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 单击文件+导入

  3. 选择包含至少一个 ASCII 封装的公共密钥的文件。

  4. 单击打开导入密钥。

也可以将密钥粘贴进“密码和加密钥”:

  1. 选择 ASCII 封装的公共文本块,然后将其复制到剪贴板。

  2. 单击计算机+更多应用程序+工具+密码和加密钥

  3. 依次单击编辑+粘贴

9.5. 导出密钥

导出密钥:

  1. 依次单击计算机+更多应用程序+工具+密码和加密密钥,然后切换到我的个人密钥选项卡。

  2. 选择要导出的密钥。

  3. 依次单击文件+导出

  4. 为导出的密钥指定文件名和位置。

  5. 单击保存导出密钥。

也可以在 ASCII 封装的文本块中将密钥导出到剪贴板:

  1. 依次单击计算机+更多应用程序+工具+密码和加密密钥,然后切换到我的个人密钥选项卡。

  2. 选择要导出的密钥。

  3. 依次单击编辑+复制

9.6. 对密钥签名

对其他人的密钥签名表示信任那个人。在对密钥签名前,请仔细检查密钥的指纹,确保密钥确实属于那个人。

信任表示您对某人正确扩展信任之网的能力的确信程度。当您遇到一个您没有签名过的密钥时,此密钥的有效性将取决于密钥拥有者已收集的签名及您对那些签名的人的信任程度。默认情况下,未知密钥需要三个含少量信任值的签名或一个完全信任的签名。

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 我的个人密钥其他密钥选项卡中选择要对其签名的密钥。

  3. 依次单击文件+签名

  4. 选择检查密钥的仔细程度,然后指示签名是否应该在密钥环本地以及是否可以撤销签名。

  5. 单击签名

9.7. 加密自选选项

可以自定义“密码和加密钥”工具的功能。本部分中介绍了可选的选项。

9.7.1. 密码密钥环

可以使用密码密钥环自选设置来创建或删除密钥环、设置应用程序密码的默认密钥环,以及更改密钥环的未锁定的密码。要创建新密钥环,请执行以下步骤:

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 依次单击文件+新建+密码密钥环,然后单击继续

  3. 为密钥环输入一个新名称,然后按添加

  4. 为密钥环设置并确认一个新密码,然后单击创建

要更改现有密钥环的未锁定的密码,请单击密码选项卡中的密钥环并按更改密码。必须提供旧的密码才能进行更改。

要更改应用程序密码的默认密钥环,请单击密码选项卡中的密钥环并按设置为默认

9.7.2. 密钥服务器

通过定期与远程密钥服务器同步密钥可以使密钥保持最新。同步将确保您的全部密钥上具有最新的签名,这样信任网才会有效。

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 单击编辑+自选设置,然后单击密钥服务器选项卡。

    “密码和加密钥”支持 HKP 和 LDAP 密钥服务器。

    HKP 服务器:.  HKP 密钥服务器是基于 Web 的普通密钥服务器,例如常用的 hkp://pgp.mit.edu:11371,也可从 http://pgp.mit.edu 访问。

    LDAP 密钥服务器:.  LDAP 密钥服务器不常用,但使用标准 LDAP 协议提供密钥。ldap://keyserver.pgp.com 是一个不错的 LDAP 服务器。

    可以通过左边的按钮添加删除要使用的密钥服务器。要添加新的密钥服务器,请设置其类型、主机和端口(如果需要)。

  3. 设置是否要自动发布公共密钥以及要使用的密钥服务器。设置是否要自动从密钥服务器获取密钥以及是否要与密钥服务器同步修改的密钥。

  4. 单击关闭

9.7.3. 密钥共享

密钥共享由 DNS-SD(也称为 Bonjour 或 Rendevous)提供。启用密钥共享可将本地“密码和加密钥”用户的公共密钥环添加到远程搜索对话框。使用这些本地密钥服务器通常会快于访问远程服务器。

  1. 单击计算机+更多应用程序+工具+密码和加密钥

  2. 单击编辑+自选设置,然后单击密钥共享选项卡。

  3. 选中在网络上与其他人共享我的密钥

  4. 单击关闭