我試圖通過libsodium爲應用程序設置客戶端/服務器通信。到目前爲止,我打算用硬編碼的公鑰分發應用程序。服務器將保留其密鑰而不用共享密鑰。這應該讓用戶加密消息並將它們發送到服務器,在該服務器中密鑰解密消息。私鑰受損,如何分配新的公鑰?通過非對稱密鑰加密的客戶端服務器模型
如果服務器上的密鑰被泄露(我不確定如何,但以防萬一)如何分配新的公鑰給所有客戶端?有沒有辦法生成新的密鑰而不需要分配新的公鑰?就像:
make_new_secret(secret_buffer, previous_public);
我希望有一個非常簡單的解決方案,不需要複雜的算法來安全地發放新的公鑰。如果在創建新的公鑰時必須完成新的私鑰,那麼可以使用什麼算法將公鑰從服務器安全地分發給客戶端?
附加信息(隨意跳過):
我們可以讀here其中格倫·菲德勒(libyojimbo的作者,它使用libsodium)談的想法「只是推出一個新的私鑰」 。
如果有一種方法可以重新使用舊的公鑰並使用libsodium創建一個新的私鑰,我很樂意閱讀它。我瀏覽過這些文檔,但還沒有看到有這樣的功能。所以我擔心我可能不得不鑽研更復雜的算法來安全地分發新的公鑰。
我已經簽出Diffie Hellman,但它似乎要求雙方都從一個共同的「顏色」開始。所以我想我的問題是關於達成新的商定的起始顏色。
好的,很高興知道這是一個真正具有挑戰性的話題。我的用例是通過Steam發佈的遊戲。因此,在這種情況下,向用戶重新分配新的二進制文件實際上不成問題。所以這是有道理的! 在我的情況下,我爲NAT-puncthrough設置了一個代理服務器,就像一個STUN服務器,但是有一個自定義協議。 – Cecil
要清楚:我只是想保護類似STUN的服務器本身,並且一直在閱讀加密。無論如何,謝謝你的答案! – Cecil