来自中央服务器的公钥分发

信息安全 公钥基础设施 密钥管理 中间人
2021-08-29 08:09:17

我正在尝试编写一个加密的通信程序。最初我在想我会使用公钥加密,然后我会将公钥保存在数据库中,用户可以在数据库中查询另一个用户的公钥来加密他们的消息。但是,如果我曾经向他们发送我的公钥而不是他们预期的收件人的公钥,这允许我阅读他们的消息。

如果他们从我控制的中央服务器获取公钥,是否可以进行前向保密?在我看来,如果你使用一些像 STS 这样的前向保密算法,我仍然可以向两个用户发送我的公钥,而他们也不会更聪明。

1个回答

没有受信任的第三方的帮助,不可能通过不受信任的渠道交换公钥。甚至 STS 都假设: a)提前交换了公钥或 b)证书用于帮助建立密钥信任(因此需要 CA、Web of Trust 或类似的东西)。在您的场景中,您充当受信任的第三方,向每个用户断言给定密钥属于他/她,并且您没有秘密执行中间人攻击(有时称为机构米特姆)。换句话说,你的假设是正确的。

我建议查看此答案以获取有关公钥信任主题的一些见解。恐怕我几乎没有什么可以建议您来改进现有模型的...