Encryption

加密消息傳遞 Web 應用程序設計

  • May 22, 2017

我正在使用 JS 實現一個加密的消息傳遞 Web 應用程序。撰寫消息時,會向使用者提供收件人的公鑰。還為每個收件人呈現一個正文欄位。使用者點擊送出後,原始消息會用收件人的公鑰加密,然後插入到各自的正文欄位中。

由於每個使用者都有自己的正文欄位(使用者之間的密文不同),因此惡意使用者可以為每個收件人編寫不同的消息。我應該如何解決這個問題?

在明文消息中包含發送者和接收者(您需要某種消息格式),並在加密之前對消息(包括發送者/接收者)進行簽名。這樣,攻擊者就無法更改或交換明文消息。您可能還需要為消息分配一些包含某種時間戳以避免重放攻擊。

您可以首先使用消息密鑰加密消息,然後使用接收者的各種公鑰加密該密鑰。請注意,加密方案不應落入明文/填充預言機攻擊,因為簽名應該在明文上,而不是密文上。

使用信號協議。它是 Signal 等應用程序使用的協議,並受到 Edward Snowden 等人的信任。

引用自:https://crypto.stackexchange.com/questions/47588