Encryption
加密消息傳遞 Web 應用程序設計
我正在使用 JS 實現一個加密的消息傳遞 Web 應用程序。撰寫消息時,會向使用者提供收件人的公鑰。還為每個收件人呈現一個正文欄位。使用者點擊送出後,原始消息會用收件人的公鑰加密,然後插入到各自的正文欄位中。
由於每個使用者都有自己的正文欄位(使用者之間的密文不同),因此惡意使用者可以為每個收件人編寫不同的消息。我應該如何解決這個問題?
在明文消息中包含發送者和接收者(您需要某種消息格式),並在加密之前對消息(包括發送者/接收者)進行簽名。這樣,攻擊者就無法更改或交換明文消息。您可能還需要為消息分配一些包含某種時間戳以避免重放攻擊。
您可以首先使用消息密鑰加密消息,然後使用接收者的各種公鑰加密該密鑰。請注意,加密方案不應落入明文/填充預言機攻擊,因為簽名應該在明文上,而不是密文上。
使用信號協議。它是 Signal 等應用程序使用的協議,並受到 Edward Snowden 等人的信任。