GnuPG 对称加密是否容易受到密码暴力攻击?

GnuPG 对称加密是否容易受到密码暴力攻击?

手册这表明,当只需要访问明文时,对称加密是合适的(因此安全性不低于公钥加密?)。但根据帖子,由于gpg --symmetric只需要密码,攻击者只需要强制破解这个密码,而不是从中生成的完整 128/256 位密钥。

在我看来,正确的做法是实际拥有一个 128/256 位密钥文件,用于对称加密我的数据;该文件本身使用密码生成的密钥进行对称加密,就像保护私钥一样。这将要求攻击者暴力破解完整的对称密钥 - 即使他们获得了我的密钥文件,他们仍然必须暴力破解我的密码。

gpg支持这种用法吗?我对这种情况的理解有缺陷吗?有什么理由认为这不是一个有效的用例吗?

--

或者换句话说:

问题是,假设密码保护就足够了 - 但基本上我的问题是,如果我不相信自己能记住一个好的 256 位密码怎么办?我可以像使用私钥一样使用对称密钥文件吗?显然,我实际上可以使用我的私钥,但手册建议在这种情况下对称加密是惯用的选择。

答案1

在 OpenPGP 中,有两种方法可以从密码中导出对称(会话)密钥:直接使用密码导出密钥,或生成一个随机密钥,该密钥本身使用生成的密钥进行加密。然而,在这两种情况下,对称密钥始终与密文一起存储,并且对称密钥不能拆分,否则会失去与 OpenPGP 格式的兼容性。最后,无论使用哪种密钥存储方式,密钥都可以通过密码强行破解。

不过,OpenPGP 通过生成要进行哈希处理的大量输入(对哈希输入多次迭代密码短语)使暴力破解密码短语变得困难。这样,暴力破解密码短语的成本要高得多。来自RFC 4880,OpenPGP,3.7.1.3。迭代和加盐的 S2K

这包括盐和八位字节计数。盐与密码短语相结合,并将结果值重复散列。这进一步增加了攻击者尝试字典攻击所必须做的工作量。

在 GnuPG 中,重复密码的次数(以及一些其他选项)可以使用--s2k-*选项进行调整

相关内容