为什么公钥会有密码?

信息安全 gnupg 不对称
2021-08-26 17:21:41

上周我写信给我的银行,问了一个一般性问题。今天我收到一封电子邮件,邀请我加入他们的“安全电子邮件(PGP)系统”很明显,我必须加入才能阅读他们对我的问题的回答。

您收到了一封加密电子邮件:
发件人:$CST1,邮箱
主题:您的养老基金查询 Ref CF-123456
这是您第一次收到来自 Lloyds Banking Group 的加密电子邮件,因此您需要设置密码(也称为作为密码)来访问这封电子邮件以及您以后从我们那里收到的任何加密电子邮件。劳埃德银行集团非常重视网络安全。

不情愿地,我按照链接注册,发明了一个帐户密码。我通过电子邮件适时收到了带有密码的 PDF,其中包含对我的问题的答复。

出于好奇,我探索了站点的其余部分,它似乎运行“Symantec Web Email Protection”。在设置页面上,我看到它提供了银行如何加密给我的消息的选择;可以作为带密码的 PDF 文档或使用公钥加密

我有一个 OpenPGP 密钥或数字 ID/证书(X.509,S/MIME),我想用它来保护我与站点 [原文如此] 交换的消息。

进入下一页:

如果您已经有密钥或证书,您可以上传它,我们会将您的消息加密到其中。

您可以上传以下任何内容:PGP 密钥 (.asc)、X.509 证书(.pem、.crt、.cer)或 PKCS#12 文件(.p12、.pfx)。

可选:如果您的密钥文件有关联的密码,请输入。

最后一行让我吃惊。我在 OpenSSH 和 GPG 中使用了公钥加密。据我了解,私钥可以有密码,但不能有公钥。密码的目的是保护您计算机上的密钥;像私钥一样,它应该保密。

为什么公钥会有密码?如果您与您的通讯员共享密码,那么密码的意义何在?

3个回答

认为他们只是试图以最糟糕的方式变得用户友好。PKCS#12 文件(.p12.pfx)用于密钥——公共部分和私有部分——并且私有部分将被加密。银行永远不需要,也不应该看到私钥!因此,他们甚至不应该接受这样的文件——只是X.509证书(仅包含公钥)使用 S/MIME或有时是.derPGP.cer公钥当然,文件可以包含任何内容,但我们希望用户没有愚蠢到导出他们的私钥) - 绝对不应该要求输入密码。.pem.crt.asc.pub.asc

银行需要密码的任何内容,这意味着用户上传了错误的文件。公钥没有,也不需要密码短语。这大概就是为什么该字段是可选的 - 任何正确使用表单的人都不会在他们上传的文件上拥有密码,因为他们将上传一个公钥(仅) - 但它仍然绝对是银行的糟糕设计。

话虽如此,他们完全支持安全电子邮件。我的银行仍然认为(微不足道的窃听)传真机和(容易被盗的)蜗牛邮件是安全远程通信的高度。

他们在文档中描述的系统不是使用 PGP 的标准方式。他们在途中使用了一些额外的 PDF 加密,因此在不确切知道他们使用的每一步的情况下,很难分辨他们在那里谈论的是哪个“相关密码”。

我认为它们并不意味着您的公钥文件的密码,而是您必须在他们在那里使用的这个复杂的 PDF 加密过程中创建的其他一些密钥文件

另一种解释可能是,一些非常没有经验的用户使用他们的 GPG 程序并将他们的私钥和公钥对导出到一个文件中,并将整个文件发送到银行。尽管这是某人的私钥可能发生的最糟糕的事情,但如果该密钥仅由该银行创建和使用,它仍然是无害的。那么也许在这种情况下,银行只能打开知道密码的密钥对来提取公钥?
注意:如果他们在不通知用户他们现在可以知道他们的私钥的情况下这样做,我会更换银行;-)

他们的文档中没有任何地方提到私钥与公钥,所以我立即怀疑。根据我的经验,许多人对这种差异感到非常困惑(例如,“所以我将私钥发送给您,以便您可以私下加密给我,对吗?”)。我不知道任何 PGP 密钥在公钥上有密码。

所以我怀疑有些用户正在发送他们的私钥,而文档的作者无法打开它们,所以开始询问密码,但不知道它们是不同的。