【发布时间】:2016-11-30 06:04:00
【问题描述】:
我正在尝试通过 libsodium 为应用程序设置客户端/服务器通信。到目前为止,我计划使用硬编码的公钥分发应用程序。服务器将保留其秘密密钥,而不会共享它。这应该让用户加密消息并将它们发送到服务器,密钥在那里解密消息。
如果服务器上的密钥被泄露(我不确定如何泄露,但以防万一)如何将新的公钥分发给所有客户端?有没有一种方法可以在不需要分发新公钥的情况下生成新的密钥?比如:
make_new_secret( secret_buffer, previous_public );
我希望有一个非常简单的解决方案,不需要复杂的算法来安全地分发新的公钥。如果必须在制作新公钥的同时制作新的私钥,可以使用哪些算法将公钥从服务器安全地分发到客户端?
其他信息(请随意跳过):
我们可以阅读here,其中 Glenn Fiedler(libyojimbo 的作者,使用 libsodium)谈到了“只需滚动一个新的私钥”的想法。
如果有办法重用旧公钥并使用 libsodium 创建新私钥,我很乐意阅读它。我已经浏览了文档,但还没有看到任何功能。所以我担心我可能不得不深入研究更复杂的算法来安全地分发新的公钥。
我已经查看了Diffie Hellman,但似乎需要双方从一个共同的“颜色”开始。所以我想我的问题是关于达成新的商定起始颜色。
【问题讨论】:
标签: encryption encryption-asymmetric libsodium