公开存储GPG的4096位RSA SSH私钥是否可以接受?

时间:2016-02-09 08:08:18

标签: security encryption ssh ssh-keys gnupg

考虑您希望备份SSH密钥对的情况。

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

选择B:使用GPG(对称)使用31个字符的随机混合大小写字母数字密码加密id_rsa文件,将密码以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密钥本身具有空密码。谢谢!

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

(编辑2:我也想到,如果选择B令人满意,选择B将是一个不仅存储SSH密钥对而且还存储常规非对称GPG密钥对的好方法。)

1 个答案:

答案 0 :(得分:1)

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

请注意,这仅影响私钥,这意味着公钥仍可用于较旧的SSH服务器版本。

有关详细信息,请参阅此处: http://www.tedunangst.com/flak/post/new-openssh-key-format-and-bcrypt-pbkdf

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

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