聊天系统架构:在哪里解密消息?
Chatting System Architecture: Where to decrypt the messages?
我正在设计一个使用加密的匿名聊天网站。我应该在客户端解密消息还是在服务器端解密消息?哪种方法更安全?我正在使用 Node.js + Socket.io 开发聊天系统。
例如:
用户A加密消息,将加密消息发送到服务器,服务器将加密消息发送给用户B,用户B解密消息(客户端解密)
或
用户B加密消息,将加密消息发送到服务器,服务器解密消息并将解密后的消息发送给用户B(服务器端解密)
在客户端解密消息。
您在评论中提到端到端加密是一项要求。这意味着服务器必须不可能解密消息。
引用 https://en.wikipedia.org/wiki/End-to-end_encryption:
End-to-end encryption (E2EE) is a system of communication where only the communicating users can read the messages.
[...]
In an E2EE system, encryption keys must only be known to the communicating parties.
我正在设计一个使用加密的匿名聊天网站。我应该在客户端解密消息还是在服务器端解密消息?哪种方法更安全?我正在使用 Node.js + Socket.io 开发聊天系统。
例如:
用户A加密消息,将加密消息发送到服务器,服务器将加密消息发送给用户B,用户B解密消息(客户端解密)
或
用户B加密消息,将加密消息发送到服务器,服务器解密消息并将解密后的消息发送给用户B(服务器端解密)
在客户端解密消息。
您在评论中提到端到端加密是一项要求。这意味着服务器必须不可能解密消息。
引用 https://en.wikipedia.org/wiki/End-to-end_encryption:
End-to-end encryption (E2EE) is a system of communication where only the communicating users can read the messages.
[...]
In an E2EE system, encryption keys must only be known to the communicating parties.