2015-07-09 145 views
0

我目前正在设计使用套接字从服务器到多个客户端进行通信的基本Java程序。我想客户是没有修改过,但是,防止对用户尝试使用该软件不是它是如何打算。我使用的是MD5校验考虑并将其发送到服务器,以它什么校验应该是比较,但是修改的客户可以简单地发送一个不正确的校验和假冒服务器以为客户端是不变。验证客户端与服务器

简单地说,我将如何去以这样的方式验证客户端,该修改的客户端无法伪造是未经修饰的?

(注:这是从security stackexchange问题交叉贴,由于建议它张贴在这里)

回答

0

这是一个非常大的问题,简单的答案是,你不能保证客户端代码未被修改,特别是不在“基本”程序中。

您的服务器不应该依赖于处理客户的信任,而是处理在其结束所有访问控制,验证和这样的。

一种可能会减慢或阻止可能想要修改代码的人的方法是要求同时描述散列和签名,这会使其更令人讨厌 - 但不幸的是,您无法验证客户端绝对是100%未修改的。

+0

通过签名,你的意思是文件的签名?由于这是用Java设计的,因此文件签名/幻数始终为CA FE BA BE。如果你在谈论另一种签名,那是什么? – DonkeyCore

相关问题