0

在一个应用程序中,我有一个网络服务器和客户端。 握手后,让我们说客户发送"userId sessionId SOME_COMMAND param param param"帮助设计一个安全的网络协议

我已经确定了客户端,并且相应地在服务器上检查了sessionId,因此身份不再是问题。

但我想阻止黑客修改邮件或创建一个错误的邮件,例如发送"userId sessionId SOME_COMMAND paramModified paramModified paramModified"

我想过使用一对私人/公共加密密钥,并在消息本身发送消息的散列。但是由于它在客户端程序中是自动的,我可能不得不在握手期间发送公钥。所以黑客可以简单地检索它并生成正确的散列。

我也可以使用复杂的加密种子或算法,但是我对黑客的经验告诉我他们会反编译任何东西。

所以底线是:我可以隐藏在服务器上运行的所有东西,但是我无法在客户端程序上隐藏任何东西。我想禁止修改客户端程序应该发送的消息。

我甚至不知道它是否可能。我接受任何建议。顺便说一下,我使用Java,但它不应该非常相关。谢谢。

回答

2

忘记它。像其他人一样使用SSL。你甚至还没有开始解决复杂问题。