【问题标题】:Is it acceptable to store a GPG'd 4096-bit RSA SSH private key in public?是否可以公开存储 GPG 的 4096 位 RSA SSH 私钥?
【发布时间】:2016-02-09 08:08:18
【问题描述】:

考虑您有一个要备份的 SSH 密钥对的情况。

选择 A:将 id_rsa 文件以二维码形式存储在一张纸上的保险箱中。

选择 B:使用 GPG(对称)加密 id_rsa 文件,使用 31 个字符的随机混合大小写字母数字密码,将 QR 码形式的密码放在保险箱中的一张纸上,然后将 id_rsa.gpg 文件留在任何人都可以看到的一目了然。 (这样做的好处是 QR 码需要存储的字节少得多,并且可以打印得更紧凑)。用于选项 B 的加密命令是:

gpg -c --force-mdc --s2k-mode 3 --s2k-count 65011712 --output id_rsa.gpg id_rsa

选项 B 是否可以接受?如果不是,将密码更改为超过 31 个字符是否可以接受?如果可以接受,有没有办法描述选择 B 的风险有多大?假设 SSH 密钥本身有一个空密码。谢谢!

(编辑:正如 cmets 中所指出的,公开存储 id_rsa.gpg 文件的愿望是确保可以在很多地方存储大量副本,这样我们就不用担心丢失它的副本并且不用担心这些存储位置中的每一个都是安全的)

(编辑 2:我还想到,如果选项 B 令人满意,那么选项 B 将是存储 SSH 密钥对和常规非对称 GPG 密钥对的好方法)。

【问题讨论】:

  • 如果您这样做,最好保留该密钥库文件的多个副本,因为它不能再仅从一张纸上恢复(以防硬盘崩溃)。
  • 另外,为什么 SSH 密钥的密码是空的?您的方案不完全等同于使用密码保护它吗?为什么不直接使用那个功能呢?
  • 谢谢,是的,这正是将 ir_rsa.pub 和 id_rsa.gpg 存储在大量公共场所的原因,这样一张纸就足以恢复 SSH 密钥对。
  • OTOH,丢失 SSH 密钥并不是什么可怕的问题。您总是可以生成并安装一个新的(前提是您仍然有某种方式可以访问服务器,而这种方式可能会很不方便,因为您很少需要它)。我宁愿创建三个不同的密钥,也不愿拥有三个备份(这样,您可以单独撤销它们)。
  • 我的理解是,如果我直接在 SSH 密钥上使用 31 个字符的随机混合大小写字母数字密码短语,这将比我通过 GPG 使用相同的密码更容易暴力破解,因为用于从密码生成 GPG 密钥的大量加盐迭代,优于使用 SSH 密码短语的方式。

标签: security encryption ssh ssh-keys gnupg


【解决方案1】:

如果使用足够新版本的 OpenSSH (>=6.5),则可以使用新的私钥格式生成私钥(使用 bcrypt 作为基于密码的密钥派生函数)。这将减轻对暴力破解密码的担忧,并使使用受密码保护的密钥成为选项 B 的等效(且更简单)选项。

请注意,这只影响私钥,这意味着公钥仍然可以在旧 SSH 服务器版本中使用。

查看此处了解更多详情: http://www.tedunangst.com/flak/post/new-openssh-key-format-and-bcrypt-pbkdf

如果担心备份密钥对以保证可用性,您只需担心备份私钥,因为公钥始终可以从中派生。

该方法是否可接受取决于您要在安全性与可用性方面做出何种权衡。 例如如果在使用密钥的任何系统上都有一个能够捕获密码短语的键盘记录器,那么拥有 30 多个字符的密码短语/gpg 保护的密钥将无济于事。通常建议将私钥仅存储在生成它们的位置。 更安全的方法是使用生成和使用私钥的智能卡/usb 令牌。

【讨论】:

  • 谢谢,这个答案很有用。不过,我仍在尝试确定关键点,即:如果我使用具有更好 KDF 的新私钥格式,KDF 是否足够安全,以至于我可以公开披露密码短语而不用担心密码短语被暴力破解.
  • @AndrewParks 不,您不应该泄露私钥。 John the Ripper 已经具备破解新旧 SSH 密钥格式的能力,不仅可以使用纯暴力破解,还可以使用更智能的攻击以及基于规则的字典攻击。随着时间的推移,攻击也会变得更好。
  • @Anti-weakpasswords 感谢您的评论。我理解为什么用令人难忘的密码公开私钥是愚蠢的。但是,如果使用生成安全随机混合大小写字母数字密码的密码生成器(称为每个字符 6 位),那么 43 个字符的密码将基本上构成 256 位对称密钥,这无疑是对称密钥的黄金标准长度?如果我不能透露我的密码短语私钥,那么您不是在有效地告诉我 256 位对称密钥不够安全吗?
猜你喜欢
  • 2017-12-23
  • 2010-11-14
  • 1970-01-01
  • 2014-05-27
  • 2020-08-18
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 2013-12-04
相关资源
最近更新 更多