通过电子邮件传输 RSA 公钥是否安全?

信息安全 密钥管理 SSH
2021-08-21 14:27:05

我已经将我的 VPS 的 ssh 服务器设置为只接受基于密钥的识别:我禁用了基于密码的连接。

因此,我在家中使用在我的 VPS 上禁用密码之前生成的 RSA 密钥进行连接。当然,在那之前我已经将公钥复制到了~/.ssh/authorized文件中。

现在我想在工作中做同样的事情,生成一个新的密钥对(我已经读过生成一个新的密钥对显然更好,每个连接源一个)。我想最好的办法是从我的工作场所生成密钥。但后来我面临将公钥从我的工作场所转移到 VPS 的问题。

由于我禁用了基于密码的连接,我将无法直接从工作中转移它。

我可以在返回工作场所之前重新启用密码验证。一旦我能够连接到我的 VPS,就可以从我的工作场所禁用它。

但是我想知道:通过电子邮件将公钥发送给自己是否安全?

2个回答

公钥是公开的,这意味着每个人都可以知道它而不会危及安全。那么,将其放入电子邮件中没有问题。

潜在的问题是主动攻击者在传输过程中修改电子邮件,用他的公钥替换您的公钥。为了保护自己免受此类攻击,请计算您将要通过电子邮件发送的文件的指纹(使用其上无处不在的md5sum实用程序),并将哈希值写在一张纸上(保存在钱包中)。回到家后,重新计算接收文件的哈希值,并将其与纸上的值进行比较。如果他们匹配,那么一切都很好。

MD5 可以很好地确保文件没有被更改。它(和 SHA)是“坏坏坏”的地方是用于散列密码。原因?MD5 和 SHA 设计得很快,这使得它们很容易被 GPU 暴力破解。对于密码,请使用慢速散列算法,例如 bcrypt,每个用户随机加盐。

在我的用例中,我正在向该国另一端的其他人授予访问权限。因此,在我得到他的公钥后,我会对其进行哈希处理并打电话给他,并通过电话阅读前 5 或 6 个字母。如果内容稍有改变,散列值就会完全不同,因此即使前 5 或 6 个字母也不匹配。