在应用程序中,我有一个网络服务器和客户端。
握手后,让我们说客户端发送"userId sessionId SOME_COMMAND param param param"
。
我已经识别出客户端,并且相应地在服务器上检查了sessionId,因此身份不再是问题。
但我想阻止黑客修改邮件或创建错误信息,例如发送"userId sessionId SOME_COMMAND paramModified paramModified paramModified"
。
我考虑过使用一对私有/公共加密密钥,并在邮件本身中发送消息的哈希值。但由于它在客户端程序中自动化,我可能必须在握手期间发送公钥。所以黑客可以简单地检索它并生成适当的哈希值。
我也可以使用复杂的加密种子或算法,但我对黑客的经验告诉我他们会反编译任何内容。
所以底线是:我可以隐藏服务器上运行的所有内容,但我无法隐藏客户端程序上的任何内容。我想禁止修改客户端程序应该发送的消息。
我甚至不知道是否可能。我对任何建议持开放态度。顺便说一下,我正在使用Java,尽管它不应该非常相关。感谢。
答案 0 :(得分:2)
算了。像其他人一样使用SSL。有些复杂问题你甚至都没有开始解决。