关于使用子项
为您需要的每个身份使用一个主键,否则使用子键。
使用多个主键的示例:
- 您不想混淆您的私钥和专业密钥
- 您需要一些与您的“现实生活”身份无关的密钥,例如。被当局起诉时
使用子键的示例:
- 您想为多个设备使用多个密钥(因此,如果您丢失了手机,则不必撤销计算机的密钥)
- 您希望定期(例如,每隔几年)更换密钥,而不会失去您在信任网络中的声誉
我最近在另一个答案中发布了关于要制作多少个 OpenPGP 密钥的信息。
关于密钥大小
GnuPG 开发人员建议使用2k RSA 密钥进行加密和签名。这对于当前使用的子键绝对没问题。
由于您的主密钥仅用于密钥签名和验证签名(当然还有撤销),因此在此处拥有一个相当大的密钥被视为一种好习惯,同时使用较小的尺寸(足够大,足以让您有时间需要它们)对于子键(这将加快计算速度并减少文件大小)。
对于 Superuser 的另一个问题,我对RSA 和 DSA/Elgamal 有更详细的回答,请去那里进一步阅读。
密钥过期
有两种方式可能会泄露私钥:
- 有人可以从你那里偷走它
- 有人能够从你的公钥重新计算它
首先是您计算机的安全问题(以及如何使用您的密钥,请阅读下文),其次是时间问题。今天(可能是未来几年),RSA 2k 密钥将完全没问题。但是计算能力急剧上升,因此攻击者需要更少的 CPU 内核/显卡/计算机/发电厂来重新计算您的私钥。此外,在使用的算法中可能会出现故障,从而导致所需的计算能力大大减少。量子计算机可以进一步加快速度。
密钥到期日期会将您的密钥的有效性限制在您希望它安全的给定时间。之后任何攻击者破解它,将只能读取发送给你的加密数据,但没有人会再使用它;如果攻击者掌握了您的密钥并且您没有被注意到,那么至少它会阻止他在给定时间后使用它。
使您的主密钥过期将使您失去所有信任网络的声誉,但如果您失去访问权限,至少会在给定时间后使您的密钥失效(永远不会发生的事情,请在我的答案末尾继续阅读)。
离线存储主键
你的主键是最关键的。所有的信任——无论是传入的还是传出的——都与此相关。如果有人可以访问它,他能够:
- 使用您的姓名创建新密钥(默认情况下,GnuPG 始终使用您最新的子密钥!)
- 撤销子键和主键
- 向其他密钥发出信任,这是最糟糕的事情:攻击者可以创建一个新密钥,从您的旧密钥中获得信任,然后撤销您的旧密钥,使您无法访问您的“移动”身份 - 他实际上是超越你的身份。
当使用 a) “真正”强密码 [...] 时,使认证密钥保持离线实际上有多重要?
您的计算机总是可能被某些恶意软件攻击或感染,下载您的密钥并安装密钥记录器以获取您的密码(这与您使用的操作系统无关,所有这些都包含目前没人知道的严重安全漏洞)。
使您的主(私有)密钥脱机是防止这些问题的好选择。它包括一些麻烦,但如上所述降低了风险。
最高的安全性当然意味着使用单独的离线计算机(硬件,没有虚拟机!)使用您的主密钥进行所有密钥管理,并且仅使用一些拇指驱动器传输 OpenPGP 数据(您发出的外键和签名)。
b) 像 OpenPGP 卡这样的硬件设备?
OpenPGP 智能卡介于将其离线存储在拇指驱动器上、将其连接到您的计算机以进行签名和使用另一台专门用于此目的的离线计算机之间。您的私钥永远不会离开需要“管理员 PIN”的智能卡(备份目的除外),所有签名甚至密钥创建都将在卡内进行。“使用”您的密钥(加密、签名、给予信任)只需要一个“用户 PIN”,因此即使您将卡连接到“受损”计算机,攻击者也无法完全超越您的 ID。
您可以将您的公钥存储在任何您想要的地方,为了真正使用 OpenPGP,您甚至应该将它(和您的其他公钥)发送到密钥服务器。
并且不要忘记创建和打印主密钥的撤销证书。丢失没有此证书的私钥意味着密钥服务器上存在您无法访问的密钥,并且您对此无能为力。
打印它,可能多次,然后把它放在你信任的地方。你的父母,一些银行存款箱,...... - 如果这个证书泄露,最糟糕的事情就是失去你的信任网络。